| 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 | | | |
| | 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. |
| 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. |
| 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. |
| 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. |
| RPG544 | Business Application Using RPG | | | |
| | This course is oriented towards business application programming on the IBM AS/400. Students will design, code and test programs using modular techniques. Programming assignments include control breaks, sequential and random processing of files, interactive programming using subfiles and use of the AS/400 application development tools and utilities. The emphasis will be on procedural programming. |
| 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 | | | |
| | 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. |