Overview
The Computer Programming (CP) program follows an experiential learning approach to education by offering courses that parallel the software development practices used in the modern workplace. Throughout the program CP students apply concepts learned in the classroom to solve programming problems. They learn to work in project teams, in which they design, develop, and test applications.
The CP program is a two-year program in which students learn a wide variety of skills, ranging from basic programming practices, problem-solving, software design, critical thinking and application development. Over the duration of the program, students will learn to write programs for desktop and web. Students learn many programming languages, including C#, C++, PHP, MySQL, JavaScript, and Java, and are taught the skills to learn other languages. Students who are successful in Computer Programming are eligible to continue their studies in the Computer Programming and Analysis program offered at Kingston Campus with admission into the third year of the Advanced Diploma program.
Program Details
Program Highlights
The program provides you with skills in:
- Problem-solving and critical thinking
- Software / application development
- Operating systems
- Writing computer programs
- Intranet/internet applications
- GUI applications
- Web development
- Object-oriented programming
- 2D game development
- Database design and management
Program Outline
2024-2025
This course is designed to help students develop and practice the communication skills needed to succeed in college and workforce environments. Emphasis is placed on improving foundational communication strategies-reading, writing, listening, and speaking—and on developing research and critical thinking skills.
This course introduces students to the fundamental mathematical concepts relevant to applied computing. Students consolidate basic arithmetic and algebra skills (e.g., order of operations, percentages/fractions, polynomials). Further, students develop competency with core computing numbers systems (e.g., binary, octal, decimal, hexadecimal), symbolic logic (e.g., if/and/or/not statements), and probability/combinations. Rudimentary business math skills (e.g., present/future values, interest, etc.) as they pertain to applied computing careers are introduced.
This foundational course offers students an overview of essential data concepts within digital computing systems. Participants will delve into introductory data modeling ideas within the realm of relational databases. A detailed exploration of prominent data languages and formats, including HTML, YAML, and JSON, further enriches the learning experience.
This course provides an introduction to programming using the C and C++ language.The course introduces students to program development and prepares students to producing readable and maintainable programs following industry standards. Students will be introduced to using a Git repositories while completing assignments and labs. Topics covered include: variables, data types, assignment/arithmetic, input/output,repetition, selection, arrays and file output.
This course offers students an introduction to vital networking terminology, mediums, network interface cards (NIC), and an array of topologies and architectures. Through a blend of theoretical and practical approaches, students will delve into the fundamentals of simple network operations, Ethernet, protocols, and network operating systems. Discussions will further encompass Local Area Network (LAN) and Wide Area Network (WAN). The course aims to develop foundational networking skills, focusing on understanding protocols, network architecture, and essential troubleshooting techniques.
This course builds on previous course work in C++. Students design and develop programs that are easy to read and maintain. Students develop and apply testing and debugging strategies to ensure their programs meet stated specifications. Topics covered include: Structure charts, Boolean logic, functions, input files, and multi dimension arrays.
This course introduces the C# programming language as a tool for building desktop applications. Topics include C# syntax, objects, inheritance, graphical user interface components, events and event handling. Students apply knowledge of object-oriented programming, strategies in program design, and critical thinking skills in the computer lab to create desktop applications and develop transferrable programming skills.
This course provides an introduction to web development using HTML, CSS, and JavaScript. Students learn to use HTML to create web pages and to link multiple web pages together. Students also learn how to control the layout and style of web pages using Cascading Style Sheets (CSS) and to make web pages interactive using JavaScript. Students engage in a sequence of assignments designed to familiarize them with HTML, CSS, and JavaScript.
This introductory course explores web application development, encompassing both client-side and server-side scripting, focusing on the MVC (Model-View-Controller) architecture. Students learn to manipulate form data and interact with web pages on the client side, along with server communication. On the server side, the course covers data processing, database interactions, and responding to client requests. Key topics include HTTP/HTTPS protocols, RESTful API usage, and integrating SQL and NoSQL databases. The MVC model is emphasized to provide a structured framework for creating efficient, scalable web applications. This course equips students with essential skills for developing responsive web applications in line with current industry standards.
This course prepares students for a career in the information technology field. Students gain an understanding of various technical roles and their impact on the enterprise. Using an understanding of these roles, students learn to develop career plans. Job search, resume, and interview skills are taught with an emphasis on technology-related conventions. Students also develop the ability to operate as continuous learners, guiding their own development.
This course introduces students to PHP programming. It builds on the student's web programming skills to cover server side PHP programming. Students build projects using functions, string management, PHP/MySQL integration, and classes. Date and time manipulation is also covered.
This course introduces students to object-oriented design and programming. Expanding on the topics covered in previous courses, the students study pointers, structures, classes, class inheritance and linked lists. Concepts of data abstraction, friend functions, information hiding, polymorphism, dynamic allocation of memory and software reusability are taught.
This course advances the knowledge gained from earlier Web Development and Web Programming courses by focusing on developing complete web applications. It integrates previous learnings in database management, frontend, and backend development. Students will gain hands-on experience creating client- and server-side scripts, utilizing contemporary front-end framework stacks such as MERN, MEAN, MEVN, and PERN.
This course provides students with an introduction to game development principles and programming . Topics include animation, creating sprite objects, user interaction concepts, basic artificial intelligence concepts, game structures and basic game physics.
This course builds on structured query language using MySQL. This course focuses on database design implementing all table relationship types in an RDBMS. The students code MySQL statements to create databases and tables as well as code data manipulation statements. Students retrieve data across several tables using built-in functions, summary queries, and subqueries.
This course introduces students to Machine Learning principles and algorithms, such as, linear regression, decision tree, logistic regression, Support Vector Machines (SVM), and Navie Bayes. Students will learn how to implement these algorithms using Python-based frameworks, such as, TensorFlow, PyTorch, and scikit-learn.
This course builds on the student’s knowledge of object-oriented programming with C++ and C# by introducing the Java programming language. In this course, students develop their Java programming skills by building a variety of desktop applications. Topics include the Java Virtual Machine, Java command line tools, Java syntax and control structures, classes and packages, collections, generics, abstract classes and methods, interfaces, Java database connectivity, graphical user interfaces, and event handling.
This course introduces concepts of Database Management Systems and Database Design. In this course, students learn to design and implement a database that meets a set of business requirements. Topics include database normalization, indexing, prepared statements, functions and procedures, creating users, and granting and revoking privileges. This course focuses primarily on relational databases and SQL (Structured Query Language) and makes extensive use of the MySQL relational database management system (RDBMS).
This course offers a unique, hands-on simulation of real-world work placement, specifically designed for students nearing the completion of their computer programming studies. This course emphasizes the practical application of skills learned over previous semesters, with a special focus on Quality Assurance (QA) and Testing in software development. Students will engage in an immersive project-based experience, where they will conceive, design, and develop a comprehensive software project. This project will not only demonstrate their accumulated programming expertise but also their proficiency in critical areas of QA and software testing. Throughout the course, students will learn to apply best practices in identifying, diagnosing, and fixing software bugs, ensuring the reliability and functionality of their final project. This capstone experience is tailored to solidify their understanding and capabilities in computer programming, preparing them for successful careers in the tech industry.
This course introduces students to the fundamentals of cloud and centralized computing systems. Introduction students to Linux command line and Bash scripting allows students to gain hands-on experience deploying and managing cloud resources. Additionally, the course introduces the Z/OS operating system through TSO/ISPF, fostering a practical understanding of mainframe computing. Through lab exercises, students acquire the skills necessary to ensure they are well-prepared for the dynamic landscapes of cloud and centralized computing.
Change comes rapidly in the field of programming. This course provides students with the opportunity to explore emerging topics and trends, including security and ethical issues, not covered in the core CPA curriculum. Guest speakers introduce new topics, discuss work placement and bring real world experience into the classroom. Students further enhance their essential employability skills through research, group work and presentation.
Requirements
Admission Requirements
Ontario Secondary School Diploma (OSSD) or equivalent including the following prerequisites:
- Grade 12 English at the C, U or E level
- Grade 11 Math
For OSSD equivalency options, see Admission Requirements.
If you are missing prerequisite courses, enroll in the Career/College Prep program - free for Ontario residents who are 19 years or older.
- Are your transcripts from outside of Canada? Please visit Applying to SLC - With Your Transcripts for more information.
Other Requirements
Technical Requirements
Students are recommended to require their own Windows laptop computer:
- CPU: i5 minimum. i7 or AMD Ryzen is recommended.
- RAM: 12GB RAM minimum. 16GB is recommended.
- Hard drive: 256GB SSD minimum. 512GB is recommended.
- Webcam and microphone (built-in or external).
- Operating System: Windows 11
Fees
2024-2025
Fees are estimates only. Tuition is based on two semesters.
Fees are estimates only. Tuition is based on two semesters.
Cornwall
Enjoy waterfront views, modern health labs, a newly renovated library, and vibrant student spaces in our our Cornwall campus.
Career Opportunities
The demand for CP graduates is high in the Eastern Ontario area as well as in Canada and abroad. Most CP graduates enter the workforce immediately after graduation. Graduates typically advance from junior level positions to more senior level over their career.
Prospects for both employment and advancement in the Information Technology industry are excellent.
A career as a Computer Programmer area can provide you with exciting and rewarding work in areas such as: computer programming, web development, systems development, data modeling, quality assurance, mobile computing, game programming, serious game development, web services, database administration, and cybersecurity.
Our graduates are employed in both the public and private sectors such as education, healthcare, military, financial, research, industry, consulting, and many more.
Program Contacts
Program Contact
Ziad Ewais
cpcoordinator@sl.on.ca
Admissions Information
Click here to message Recruitment.