Overview
The CPA 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 CPA 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 larger-scale applications. After gaining programming and problem-solving skills, students experience real-world work environments by participating in our third-year work placement program.
The CPA program is a three-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, web, mobile, and mainframe platforms. Students learn many programming languages, including C#, C++, PHP, MySQL, JavaScript, and Java, and are taught the skills to learn other languages. We are one of a handful of colleges in North America offering mainframe courses in COBOL, CICS, JCL and TSO.
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
- Mobile application development
- Systems design and analysis
- Database design and management
- Mainframe application programming
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.
N/A
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 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 offers a language-independent introduction to programming logic using structured and object-oriented principles. The course does not focus on any one particular language. It introduces programming concepts, such as structure, decision making, looping, arrays, and methods, and it enforces good style and logical thinking. The course also introduces object-oriented topics including classes, event-driven programming, exceptions, and UML.
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.
N/A
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 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 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 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 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.
This course introduces students to structured programming using Cobol. Students learn the importance of structured programming methodology to produce maintainable programs. Classes and programming assignments are designed to provide the students with a working knowledge of record processing, report production and data validation.
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 provides students with a general understanding of software quality assurance topics. Students learn static and dynamic testing, testing techniques and testing phases. Students apply these concepts through creating a final QA report. Students work in teams to participate in an Agile group project.
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.
In this course, students design, develop and deploy Java Web applications based on current Java Enterprise APIs (Application Program Interfaces) and frameworks. Topics in this course include Java Servlets, JSPs (JavaServer Pages), Enterprise JavaBeans, Dependency Injection, Java Persistence API, and Java Web Frameworks (such as JSF and Spring).
Change comes rapidly in the field of programming. This course provides students with the opportunity to explore emerging topics and trends, not covered in the 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 presentations.
In this course, students gain practical experience working in an information technology placement position. This course enables students to apply the skills and knowledge gained from the other courses in the program. Students remain under the guidance of a faculty member, and the actual work is supervised and assessed by a member of the placement organization.
In this course, student expand their skills in writing and maintaining COBOL programs. Using an IBM mainframe environment (zOS/TSO/ISPF), students develop batch processing applications that maintain random access data sets. Topics included are: COBOL sorts, Subroutines, multi-levels tables, indexed files as well as program maintenance.
In this course, students participate in the key phases of the Software Development Life Cycle (SDLC) of a small-scale software system. A variety of software development methodologies (e.g. Waterfall Method, Unified Process (UP), and Agile) are explored. During this course, students take on roles such as business clients, systems analysts and software designers. In these roles, students identify and document business requirements. develop software models and create integrated system designs.
This course provides students with concepts and strategies for programming using CICS, a common software framework used by many financial institutions to support investsments, security brokerage and ATMs, in a mainframe environment. Basic subset of CICS command level COBOL programming is emphasized. Major enhancements to an existing menu driven system are explored.
Prerequisite(s): COMP52 + COMP251
In this course, students continues to gain practical experience working in an information technology placement position. This course enables students to apply the skills and knowledge gained from the other courses given in the program. Students remain under the guidance of a faculty member, and the actual work is supervised and assessed by a member of the placement organization.
Prerequisite(s): COMP61
This course introduces the topic of on-line Web Services. In this course, students use a variety of programming languages, web frameworks, and development environments to design, build, test, and use Web Services and Web Service Clients. The course focuses on principles of the REST (Representational State Transfer) architectural style.
Prerequisite(s): COMP31 + COMP220
This course introduces mobile application development using the Android platform. In this course, students learn to use the Android integrated development environment and software development kit to create a variety of Android applications that can be run on a device emulator or on an Android tablet. This course emphasizes the process of design and implementation of web-enabled Android applications that function as clients that exchange data with on-line Web Services.
Prerequisite(s): COMP31
Requirements
Admission Requirements
Ontario Secondary School Diploma (OSSD) with the majority of Grade 11 and 12 courses at the C, U or M level including the following prerequisites:
- Grade 12 English at the C or U level
- Grade 11 Math at the C or U level
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 require their own Windows laptop computer:
- CPU: i5 minimum. i7 or AMD Ryzen recommended.
- RAM: 12GB RAM minimum. 16GB recommended.
- Hard drive: 256GB SSD minimum. 512GB recommended.
- Webcam and microphone (built-in or external).
- Operating System: Windows 10 (free upgrade available through SLC).
Students will use the laptop for lectures, labs, assessments, and coursework. Students cannot share laptops. St. Lawrence College will provide most or all software required for the program.
International students require a co-op work permit. Students are strongly encouraged to apply early due to processing times and tight timelines.
Placement
The CPA work placement is one of the main draws to our program. It has an excellent reputation in the community. Placement provides excellent experience on a resume as well as hands-on experience in the field. In third year, students spend 2 days per week on the job in an IT business environment. Placement agencies include: Ministry of Health, National Defense, Novari Health, Queen's University, Service Ontario and more. Many of these students are employed by their work placement during the summer months preceding third year, earning up to $22 per hour. In some cases, students have been offered employment at the end of their work placement.
Students attend a work placement fair in second year, where they meet employers and apply for placements. Ultimately, the student is responsible for securing their placement.
Questions:
Email: placements@sl.on.ca
Website: www.stlawrencecollege.ca/placement
Fees
2024-2025
Fees are estimates only. Tuition is based on two semesters.
Fees are estimates only. Tuition is based on two semesters.
Kingston
Our Kingston campus has seen significant renovation over the past few years, including a brand new Student Life and Innovation Centre that houses a new gymnasium, fitness centre, pub, and more.
Career Opportunities
The demand for CPA graduates is high in the Kingston area as well as in Canada and abroad. Most CPA graduates enter the workforce immediately after graduation. Graduates typically advance from junior level positions to senior level and management position over the first few years of their career.
Prospects for both employment and advancement in the Information Technology industry are excellent. The typical starting salary upon graduation is $50,000.
A career as a Computer Programmer Analyst can provide you with exciting and rewarding work in areas such as: computer programming, web development, systems development, data modeling, quality assurance, mobile computing, web services and database administration.
Our graduates are employed in both the public and private sectors such as education, healthcare, military, financial, research, industry, consulting, and many more.
Testimonials
Other Information
Programs at St. Lawrence College are delivered using a variety of instruction modes. Courses may be offered in the classroom or lab, entirely online, or in a hybrid mode which combines classroom sessions with online learning activities. Program delivery can be run weekdays, weekends or evenings. Upon registration, each full-time student is provided a St. Lawrence College email account which is used to communicate important information about program or course events.
Advanced Standing
Applicants with post-secondary credits may be eligible for direct entry to an upper level of the program (semester or year) depending on transfer credits. Select the applicable level when applying at ontariocolleges.ca and ensure that we receive your official post-secondary transcript for consideration. If you are unsure what level to apply for, please contact the program coordinator.
Program Contacts
Program Contact
Colin Graves
CGraves@sl.on.ca
Admissions Information
Click here to message Recruitment.
Credit Transfer Opportunities
- Bishop's University - BSc Computer Science
- McMaster University - Bachelor of Technology - Software Engineering Technology