The two-year Computer Programming Diploma program prepares you for a career in software development. The program also specializes in program development strategies (using object-oriented modelling), database design and database administration.

Use leading industry software products such as Oracle and CASE tools. Learn about programming languages such as Java, COBOL, SQL and PHP. Study object-oriented analysis and design, operating systems and coding in integrated environments, and learn how to debug, test, and maintain codes.

In your final semester, participate in a software development project working with external clients to gain real-world experience in the programming field.

Start Term Availability
Fall 2023
Open
Spring 2024
Open
Level: 01
Course NameCodeHours
Name: Introduction to Computer Programming + -
Code: CST8110
Hours: 75

Possessing the fundamentals of logic, problem-solving and programming language structure provides a solid foundation for further study in the field. Students develop introductory knowledge of computer programming with emphasis on problem analysis and design, using algorithms, pseudocode, flowcharts, UML Class Diagrams and testing, with the Java programming language used as a means to implement problem solution designs. Through an introduction to the Java programming language students use sequential structures, selection structures, repetition structures, variables, constants, methods, constructors, one-dimensional arrays, object-oriented programming, classes, objects, abstraction, encapsulation, inputs, outputs, coding conventions and documentation. Theory is reinforced with application by means of practical laboratory assessments.

CST811075
Name: Computer Essentials + -
Code: CST8101
Hours: 60

Maintaining a computer, using operating system and productivity software, and expressing related environmental and sustainability concerns, is an important part of working with Information Technology. Students explain computer hardware, and use operating system software to maintain, utilize, and secure a computer. Students practice the use of spreadsheet software to solve problems, use formulas, and visualize data with charts. Students discuss computer hardware and software with regards to financial and environmental sustainability. Theory is reinforced with application by means of practical laboratory assessments, including using virtualization software to install guest operating systems onto a host computer.

CST810160
Name: Introduction to Database + -
Code: CST8215
Hours: 75

Databases are used to store data and are a core component of many information technology systems. Students learn the fundamentals of relational databases design using Entity Relation Diagrams (ERDs), and use Structured Query Language (SQL) to create, modify and query a database. Students design and create databases that are maintainable, secure and adaptable to change in business requirements, using normalization. Students become familiar with the functions of a Database Management System (DBMS) and its components in comparison with legacy systems and alternative information storage mechanisms.

CST821575
Name: Achieving Success in Changing Environments + -
Code: CST8300
Hours: 45

Rapid changes in technology have created personal and employment choices that challenge each of us to find our place as contributing citizens in the emerging society. Life in the 21st century presents significant opportunities, but it also creates potential hazards and ethical problems that demand responsible solutions. Students explore the possibilities ahead, assess their own aptitudes and strengths, and apply critical thinking and decision-making tools to help resolve some of the important issues in our complex society with its competing interests.

CST830045
Name: Communications I + -
Code: ENL1813
Hours: 60

Communication remains an essential skill sought by employers, regardless of discipline or field of study. Using a practical, vocation-oriented approach, students focus on meeting the requirements of effective communication. Through a combination of lectures, exercises, and independent learning, students practice writing, speaking, reading, listening, locating and documenting information, and using technology to communicate professionally. Students develop and strengthen communication skills that contribute to success in both educational and
workplace environments.

ENL181360
Name: Technical Mathematics for Computer Science + -
Code: MAT8001
Hours: 60

The study of algebraic and transcendental functions is an essential prerequisite to Calculus. Students manipulate algebraic expressions, solve algebraic equations and linear systems and learn the properties of and graph algebraic and transcendental functions. Students investigate computer number systems in addition to Boolean algebra and logic to help solve problems involving computer systems. Students also study the addition and subtraction of vectors using vector components. Delivered in a modular format, this course is equivalent to the completion of all of the following math modules MAT8100 - A, B, C, D, E, F, and L.

MAT800160
Level: 02
Course NameCodeHours
Name: Database Systems + -
Code: CST2355
Hours: 60

Database systems can automate data processing tasks as well as tie into the security of information technology systems. Students acquire practical experience using market-leading object-relational database management systems like Oracle and MySQL. Students obtain hands-on experience with advanced engineering modeling tools along with SQL, SQL scripts and programming with Oracle's PL/SQL blocks. Database concepts covered include advanced SQL, case structures, rollup and cube operations, metadata manipulation, data storage and retrieval, security and transaction control and data warehousing.

Prerequisites: CST8215

CST235560
Name: Operating System Fundamentals (GNU/Linux) + -
Code: CST8102
Hours: 75

Operating systems form the backbone of information technology systems coordinating the interaction between hardware and software. Students explore the basic concepts and components of Operating Systems (OS), and how they function and interact with hardware and software components. Students examine the details of operating system structures, process management, storage management, installation, configuration, and administration both in theory and through practical assignments based on the GNU/Linux operating system. Lab work is designed to implement the theory by developing skills using the powerful GNU/Linux command-line tools and utilities.

Prerequisites: CST8116 and CST8118

CST810275
Name: Object Oriented Programming (Java) + -
Code: CST8284
Hours: 75

Working in the field of information technology as a programmer requires a firm
understanding of Object-Oriented Programming (OOP) concepts. Students explore
object-oriented programming methodology using the Java programming language.
Object oriented concepts, such as encapsulation, inheritance, abstraction and
polymorphism are covered and reinforced with practical applications. Students
explore the basics of data structures and algorithms as well as basic Graphical
User Interface (GUI) programming.

Prerequisites: CST8116

CST828475
Name: Web Programming + -
Code: CST8285
Hours: 60

The World Wide Web (WWW) has become an integrated part of everyday life. Students develop basic skills of web programming, website design and implementation. JavaScript, HTML5, and PHP are used to explore web-based solutions to problems of increasing interactivity and complexity. Lectures are reinforced by practical assignments that encourage students to construct and maintain their own websites.

Prerequisites: CST8116

CST828560
Name: Technical Communication for Engineering Technologies + -
Code: ENL2019
Hours: 45

The ability to communicate effectively in a technically-oriented interdisciplinary workplace is a foundational skill in an innovation-driven economy. Students are exposed to exercises and assignments designed to foster independent and collaborative critical thinking, research, writing, visual communication and presentation skills related to technical topics.

Prerequisites: ENL1813

ENL201945
Name: General Education Elective
Code: GED0336
Hours: 45
GED033645
Level: 03
Course NameCodeHours
Name: Systems Analysis and Design + -
Code: CST2234
Hours: 60

Complex information technology systems require extensive planning and design. Guided by industry standard software engineering methodologies, students gain hands-on experience with case studies used to develop systems from inception through elaboration, construction and transition phases. Object-oriented design, modeling tools and techniques are used to produce system specifications. Project management principles are also used within team developed projects. Software methodologies discussed include the Systems Development Life Cycle (SDLC), agile approach, Rational Unified Process (RUP)and Rapid Application Development (RAD).

Prerequisites: CST8215 and CST8284 and ENL2019

CST223460
Name: Mobile Graphical Interface Programming + -
Code: CST2335
Hours: 60

Mobile devices play an instrumental part of everyday life, thus requiring knowledge of mobile graphical user interface development. Students explore graphical user interface programming in a mobile Android environment. Students learn how to program applications using the latest Android development tools. Topics include application architecture, interface design, network communication, and database integration.

Prerequisites: CST8215 and CST8284

CST233560
Name: Network Programming + -
Code: CST8109
Hours: 75

Software programming in today's environment requires detailed knowledge of the underlying network topology, its implementation and programming support functions. Gaining an appreciation and perspective of this technology is imperative to developing good network programming applications. Students explore topics include the basic structure, design and layered communications models, with an emphasis on data communications, TCP/IP protocol suite, socket programming and multi-threading concepts. Labs include practical exercises in basic networking and using socket programming, along with multi-threading, in an environment rich with common networking tools for diagnosing and troubleshooting typical network programming problems.

Prerequisites: CST8116 and MAT8001

CST810975
Name: Object Oriented Programming with Design Patterns + -
Code: CST8228
Hours: 75

Design patterns are programming architecture solutions to common challenges faced in software implementation. Students implement best practices of object-oriented program development with software design patterns. Students also apply Unified Modeling Language (UML) program specifications in the Java programming language. SQL through JDBC technology is used embedded for developing and using "data access objects". Course topics include refactoring, domain modelling, JDBC and multithreaded servlet programming. Students develop proficiency in creating, testing, debugging, deploying and documenting programs and servlets through practical application.

Prerequisites: CST8215 and CST8284

CST822875
Name: Professional Elective (choose 1)
Name: Business Programming + -
Code: CST8283
Hours: 60

Information systems built using the COBOL programming language support important institutions such as government services and the banking sectors. Students create COBOL programs in a business environment using structured methodology in the latest visual programming environment. Topics include output design, logic design tools, structured, top-down and modular coding, testing and debugging and documentation. Students examine interactive, file-based, and database processing of data related to business problems. Arrays, indexed files, database access and sub-programs are explored.

Prerequisites: CST8116

CST828360
Name: Business Intelligence and Data Analytics + -
Code: CST8390
Hours: 60

Business Intelligence (BI) can be broadly defined as a set of applications, infrastructure, and best practices that integrate and transform raw data into actionable information used for planning, monitoring and analyzing processes. The foundation underlying this process is the Data Analytics that explore the data, identify the relationships and patterns in a meaningful way. Students examine the components and best practices of BI technology, and how it guides operational to strategic business decisions in the context of real-world
applications. Data analytics techniques are used to derive insight using

Prerequisites: CST8116 and CST8215 and CST8285 and MAT8001

CST839060
Level: 04
Course NameCodeHours
Name: Advanced Database Topics + -
Code: CST8276
Hours: 75

Database administration is an important role, in particular for deployed information technology systems. Teams and individuals explore advanced database topics including database administration (using Oracle), data governance, globalization, security and advances in database technology. Topic coverage includes business intelligence, data warehouses, data visualization, big data, NoSQL and graph databases. Database administration tasks requiring knowledge of database architecture are examined: relational vs. non-relational models, security, performance, database distribution, database sharing, backup and recovery.

Prerequisites: CST2355 and CST8109

CST827675
Name: Enterprise Application Programming + -
Code: CST8277
Hours: 75

Enterprise applications connect clients to services that are based on data stored in database management systems. With a focus on the IT Enterprise, students examine the application enterprise environment using and extending the technologies learned in previous courses. Students examine the commonly used enterprise systems development technologies such as Java/Jakarta Enterprise Edition, cloud computing, security and the corporate database repository.

Prerequisites: CST8109 and CST8288

CST827775
Name: Programming Language Research Project + -
Code: CST8333
Hours: 60

Enterprise applications connect clients to services that are based on data stored in database management systems. With a focus on the IT Enterprise, students examine the application enterprise environment using and extending the technologies learned in previous courses. Students examine the commonly used enterprise systems development technologies such as Java/Jakarta Enterprise Edition, cloud computing, security and the corporate database repository.

Prerequisites: CST8109 and CST8288

CST833360
Name: Software Development Project + -
Code: CST8334
Hours: 60

Industry recognizes the value of graduates possessing real-world software development experience. Following the agile software engineering methodology, teams work with clients to analyze business needs, determine computer system requirements, model system designs, build prototypes, test code and deliver final products. Project management techniques are used to monitor progress and organize tasks. Students participate in interviews, technical reviews, presentations and the preparation of technical reports. The culmination of the course is a final presentation and technical review, followed by the delivery of the finished product.

Prerequisites: CST2234 and CST2335 and CST8109 and CST8285 and CST8288 and ENL2019K

CST833460
Name: General Education Elective
Code: GED0214
Hours: 45
GED021445