| APD545 | Application Development | | | |
| | This subject will introduce students to creating a desktop application. Students will create an object oriented application that will allow users to enter data, validate it, and process it according to specifications provided. Application data will be stored in a relational database and updated by the program. Students will be exposed to MVC (model, view, controller) design principles, concurrency, and threading. |
| CCP555 | Cloud Computing for Programmers | | | |
| DBA625 | Database Administration | | | |
| DBS501 | Stored Procedures Using Oracles PL/SQL | | | |
| | This subject uses Oracles PL/SQL language to code PL/SQL blocks, procedures, functions, packages, and database triggers for applications developed using Oracle relational databases. |
| DEN502 | Digital Entrepreneurship for Programmers | | | |
| ELA521 | Ethics, Law and Application Development | | | |
| GAM531 | Game Engine Foundations | | | |
| | Graphics accelerators provide developers with powerful tools for displaying visual information. This course teaches students the mathematical and structural concepts required to develop 3D gaming and simulation engines and how to implement these concepts using the DirectX and OpenGL low-level APIs. |
| GAM536 | Game Content Creation | | | |
| | In game development, 3D modelling tools are used to generate graphical content such as models and animations. This course will explore how content is created both interactively and through coding. Students will learn to create and alter 3D content using both means.
|
| GAM537 | Game Development Fundamentals | | | |
| | High level game engines have become popular in recent years as they allow developers to focus on designing a game and leaving much of the low level computing to the game engine. This subject will teach students the principles of game design and give them the opportunity to create a game using an existing game engine. They will learn how to create/modify environmental effects, camera perspectives, AI behaviours and game types. |
| GPU621 | Parallel Algorithms and Programming Techniques | | | |
| MAP523 | Mobile App Development - iOS | | | |
| | This course covers the foundations of programming applications for the Apple iOS operating system. Students will learn and become proficient with the development tool environment, and create graphical end-user iOS applications that follow the MVC design pattern. Students will write their programs in the Swift and Objective-C languages, using the object-oriented Cocoa framework. A wide range of iOS development topics, including user interface programming techniques, data management, and network access will be covered. |
| MAP524 | Mobile App Development - Android | | | |
| | This course covers the foundations of programming applications for the Android operating system. Students will learn and become proficient with the Eclipse development tool environment, and create graphical end-user Android applications that follow the mobile design pattern. Students will write their programs by using the Java language and runtime platform. A wide range of Android development topics, including user interface programming techniques, data management, and network access will be covered. |
| MAP526 | Mobile App Development - Cross Platform | | | |
| OSD600 | Open Source Development | | | |
| | This course introduces students to the technological, social, and pragmatic aspects of developing open source software through direct involvement in a real open source project/projects. Students will learn to use the tools, techniques, and strategies of OS developers. This is a project-based programming course. The particular open source project(s) to be studied will vary with each offering and be announced at the beginning of the semester. |
| OSD700 | Open Source Development Project | | | |
| | This course builds on the skills and knowledge developed in OSD600 by having the student take a partially developed open source project to completion. The student must have an open source project in progress, along with a faculty mentor and coordinator approval, in order to enroll. The student will learn what is necessary to take a working program and polish, refactor, and improve it on the way to making 1.0 product release. |
| RPG544 | Business Application Using RPG | | | |
| SPO600 | Software Portability and Optimization | | | |
| | This course introduces students to the dual challenges of porting software to run on new architectures and optimizing software performance. Students will learn to identify and replace architecture-specific code segments, benchmark software performance, and alter software to increase performance. This is a project-based course, and students will work within an established Open Source community to port and/or optimize an existing program. The particular open source community or communities to be studied will vary with each offering and be announced at the beginning of the semester. |
| SYD466 | Software Analysis and Design - II | | | |
| | This course develops students abilities to define system requirements for a medium to large scale business. Students follow a case study from the introduction of a Request for Proposal (RFP) through the required analysis to produce an effective response to the RFP. Importance of problem definition and Stakeholder requirements are emphasized. Students will use OO design techniques to produce artifacts. The course concludes with a presentation to the customer, detailing how the student will solve the business problem. |
| UIX544 | Introduction to UI/UX Design | | | |
| | UI/ UX design plays an essential role in building a successful product. In this course, students will learn fundamentals of UI and UX design. Basic principles of User Interface (UI) design, interaction models and laws, differentiation of interaction styles, and different user interface paradigms will be covered in the first half of the course. The second half of this course covers a series of methods and tools for User Experience (UX) design, such as research, analysis, design, and evaluation. Practical topics will be explored and experimented in UI/UX design. Project-based exercises will help students gain transferable insights into real world complex problems. |
| UNX511 | UNIX Systems Programming | | | |
| | UNIX, the operating system of choice for much of the Internet, is the most versatile non-platform-specific, general-purpose computing environment available. This subject explores UNIX at a technical level. The primary focus will be system and network programming using C. Students will also learn advanced scripting techniques and the use of development tools and utilities. |
| WEB422 | Web Programming for Apps and Services | | | |
| | This is the third course in the web programming course sequence. Students learn to design and create moderately complex web applications and services that can be deployed at scale. The JavaScript language is used, with widely-used and powerful tools and frameworks. The major topic themes of this course include a study of the patterns for app and service development, using frameworks that enable rich and functional browser apps, working with robust and scalable data storage platforms, and deployment methodologies. |
| WEB524 | Web Programming Using ASP.NET | | | |
| WEB530 | Cross-platform App Development | | | |