| CCP555 | Cloud Computing for Programmers | | | |
| | This course is designed to prepare students with the knowledge and transferable skills required to assist in a successful career launch in the global business sector. In addition to exploring the skills and qualities essential to obtain a position in their chosen career, students will prepare a career development campaign which will consist of resumes and cover letters, practice interviews and follow-up techniques. The importance of ethics and etiquette in the workplace will also be discussed. Both traditional and on-line methodologies will be integrated throughout the course. |
| CVI620 | Computer Vision | | | |
| | As cameras are becoming a popular feature of standard PCs and mobile devices, it is important to be able to extract useful information from this data. This course covers simple computer vision concepts, such as capturing digital images and video, applying simple and arithmetic changes to images (e.g. crop, rotate, enhance color), and extracting information from images (e.g. finding or counting objects). Also, concepts such as tracking objects in a video sequence are introduced. Students will work on a project targeting a computer vision application such as face recognition, security systems, medical imaging, robotics, and others. |
| DBA625 | Database Administration | | | |
| | This course will review the purpose and responsibilities of the Database Administrator. The student will learn how the DBMS manages the data and controls such as recovery, locking and transaction logging and performance tuning. Through hands on Database Administration using Oracle, the student will practice much of the theory presented. |
| 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. |
| DBT544 | DB2 | | | |
| | This subject provides experience in embedding DB2 SQL statements in high level language business-oriented programs running on the IBM i operating system on an IBM Power system. Students will learn to use the SQL communication area to trap pre-defined DB2 errors in these types of programs as well as handling errors that occur in DB2 procedures. The ability to preserve transaction integrity in a multi-user DB environment using table and row locking and Commit/Rollback techniques will be taught. A variety of toolsets will be explored when interacting with the system. |
| DEN502 | Digital Entrepreneurship for Programmers | | | |
| | This course presents a unique opportunity for students to embrace creative thinking and ignite their entrepreneurial spirit, whether they are working within an organization or embarking on their own business ventures. Moreover, students will develop a comprehensive understanding of how to leverage and optimize Canadas exceptional innovation and entrepreneurship support ecosystem. Practical application is a key component as students create comprehensive business plans using the Business Model Canvas and report on the necessary steps and materials required to launch their new ventures. Through this process, students develop indispensable abilities to effectively market, finance, promote, and present their business ideas. The course places a strong emphasis on building digital communication skills, financial acumen, and presentation abilities. |
| DSA566 | Data Structures and Algorithms II | | | |
| | This survey course is a study of advance topics in data structures and algorithms. Students taking this course will learn advance techniques in analysis of algorithms including average case analysis and amortized analysis. Students will also learn advance techniques in algorithms design and optimization techniques. |
| ELA521 | Ethics, Law and Application Development | | | |
| | Students will learn how to read and interpret a contract to develop an application. Fair use, copyright and intellectual property rights will be explored. Ethics and professionalism in dealing with stakeholders, employees and contractors will be discussed. |
| 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 | | | |
| | Data-intensive and compute-intensive problems benefit from programming solutions that execute instructions in parallel. A variety of programming models are available for implementing parallel algorithms. Students study industry-standard parallel patterns and learn how to implement parallel algorithms on multi-processor accelerators, shared-memory systems and distributed-memory systems using these programming models. |
| 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 | | | |
| | This course covers the foundations of programming applications for mobile devices, with widely-used cross-platform developer kits. In contrast to platform-specific developer kits, a cross-platform kit enables a single code base to be compatible with the most-used mobile device platforms. Students will write their apps by using one or more leading cross-platform kits. A wide range of mobile app development topics, including user interface programming techniques, data management, and network access will be covered. |
| 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. |
| SDR520 | Software Design for Robotics Applications | | | |
| | This course provides a technical foundation into the design and development of embedded software for robotic control. Students will be introduced to the terminology and design concepts for tele-operated and autonomously controlled robotic systems. Using an education-focused robotic device platform, students will learn about analog/digital sensors, and software design for low power micro-controller applications. |
| 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. |
| 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. |
| WEB524 | Web Programming Using ASP.NET | | | |
| | This course addresses the concepts, technical skills, and business knowledge required to develop data-driven web sites hosted on the Microsoft Web Platform. The course will focus on server-side ASP.NET programming technologies and the C# language. Students will also work with current and full-featured data access technologies, and interact with local and remote data stores. |
| WEB530 | Cross-platform App Development | | | |
| | In this course, learners will gain practical experience building native mobile applications using React Native, a cross-platform framework. |