Since September 2024, Quebec CEGEPs have officially added computer programming as a required course for science programs (science / pure science / health science). After a few years of this change settling in, many students have now taken the course. So how is it, really? In this article, I’ll share thoughts based on feedback from students around me and my own years of teaching programming — plus a few suggestions for future students. I’ll focus on Marianopolis College as an example; if students from other schools have similar experiences, I’d love to hear them.
Programming isn’t new — but making it mandatory is
Programming courses in CEGEP are not new. They existed for years as electives. In 2024 they suddenly became mandatory, which left many students with mixed feelings. Students who already learned some programming in high school often find the course easy — almost a “free grade.” For students who have never coded before, it’s a different story. Workloads are already heavy, and suddenly there’s an entirely new subject on top. The pressure is real.
That raises a fair question: why did Quebec make programming mandatory? Broadly speaking, programming has become a foundational skill, especially with the rapid growth of AI and big data. The goal of requiring it is to help students build a foundation before university and adapt to future needs. In theory, that makes sense — computing is everywhere, and knowing how to program helps in both study and work. In practice, things are more complicated. Starting from zero, many students may not develop real programming thinking in a single semester.
In general, beginners need at least 6 to 8 months to build a solid foundation. A CEGEP course lasts one semester at most. Students may leave without mastering even the basics. If they don’t continue learning or practicing afterward, that semester’s effort can fade quickly.
Is CEGEP the right time?
Personally, I think the CEGEP stage is a bit “late.” I’ve long believed programming should start either earlier or a little later.
If students begin in high school, academic pressure is usually lighter and there’s more time to build fundamentals. University is better for going deeper, with more specialized courses and more room to focus. CEGEP sits in an awkward middle: not early enough, not late enough, and often stressful for students with no prior experience. CEGEP learning is short and grade-driven. Every course affects university applications, and students are focused on earning a strong R-Score. Science students already take calculus, probability and statistics, linear algebra, physics, chemistry, and more — adding programming makes things even harder for those who arrive unprepared. The course matters, but placing it here may not deliver the ideal result.
If you’re a CEGEP science student, you may find this course demanding. If you’re interested in programming, treat it as a challenge and make the most of it. If you’ve never coded before, treat it as an introductory experience: focus on the basic ideas, then continue later if it clicks. Longer term, programming would be better introduced more widely in high school so students have time to build up. CEGEP courses could also be more differentiated — deeper for students who already have a foundation, and more supportive for true beginners.
The shortage of computer science teachers
Looking at Marianopolis College’s programming instructors in 2024, there’s an interesting pattern: several are not full-time computer science teachers, but math or science teachers teaching on the side.
That reflects a wider Quebec issue — a shortage of computer science teachers. Even though curriculum reform was announced years ago, many CEGEPs still lack enough dedicated CS faculty and rely on teachers from other subjects. Teaching programming well requires a solid professional background; instructors without that training often struggle to deliver the same quality. This also helps explain why high-school programming remains uncommon in Quebec: not enough specialist teachers, and content that can be challenging for mixed student levels. As a result, many high schools never offer programming, or only touch it lightly as enrichment. Students then arrive at CEGEP without a real foundation.
What’s in the CEGEP programming course
Let’s look at the content.
At Marianopolis (MP), the required course 420-SN1-RE Programming in Science is based on the earlier elective 420-LCU-05 Computer Programming, but in substance it is closer to McGill’s COMP 204 Computer Programming for Life Sciences. The topics include:
- Topics 1–3: foundational computing concepts
- Topics 4–15: Python, expressions and types, statements, collections, conditionals, loops, functions, file I/O, and more
- Topics 16–18: extensions focused on common data tools such as matplotlib, pandas, and numpy

This is very similar to McGill COMP 204. Students should focus on Topics 4–15: those are the core programming concepts and the main material for the final exam. MP also offers an Enrichment Component — essentially an advanced track. Beyond the standard topics, it can include recursion, OOP, graphical programming, and more. Students who want that track must pass a qualifying test.
Final exam and grading
Here’s how the 2024 grading looked. The final exam carries the largest weight and covers Topics 4–15. Topics 16–18 show up mainly in the lab test; Topics 1–3 appear in quizzes and the midterm. The final includes multiple choice, short answer (read a program and write its output), and coding on paper. Paper coding is the biggest piece: students must write code by hand, without a computer or AI tools. That means day-to-day study has to emphasize real detail. Relying too heavily on Google or GPT to generate code becomes a problem once those tools disappear in the exam room.
