200 Level courses at McGill represent the foundational basics of a subject. This is no different in the school of computer science. Most students taking a CS Major will be required to take almost all of these classes and minors will need to take the majority. See below for a tree of prerequisite courses.

COMP 202 Foundations of Programming 

Foundations of Programming is an introductory course in computer science that aims to teach the very basics of writing computer software. It focuses on Java fundamentals including syntax, types, logic flow, objects, conditionals, loops and very basic data structures like strings. This course is option for SOCS programs but is recommended for students who have no experience in computer science. Sample Syllabus


COMP 206 Introduction to Software Systems

Intro to software systems is an overview of programming in C, Python and scripting in Bash that helps to connect the different languages and what they are best suited for. Students will gain an overview of version control systems, debugging tools as well as task automation with bash. Sample Syllabus


COMP 250 Introduction to Computer Science

Introduction to computer science gives students the fundamental knowledge required in data structures, algorithm run time, and programming techniques. Material covered in this class includes binary number representation, tree and graph data structures, sorting and search algorithms, as well as runtime analysis. Sample Syllabus


Algorithms and data structures is the direct continuation of COMP250 and covers similar material in greater depth such as red black trees, greedy algorithms, complex data structures and dynamic programming. Note: there is also an honours variant of this class, COMP252. Sample Syllabus

COMP 251 Algorithms & Data Structures


Introduction to computer systems helps to relate the programming logic seen previously to the hardware it runs on. Students learn basic combinations and sequential circuit design, low level assembler programming as well as virtual memory and addressing schemes. Sample Syllabus

COMP 273 Introduction to Computer Systems


Discrete structures is an essential math class teaching students proof techniques and logical thinking. Material covered includes elementary number theory, combinatorics, logic, and basic graph theory. This class will soon be a co-requisit with COMP250. Sample Syllabus

MATH 240 Discrete Structures 1

Image courtesy of Prof. Langer.

Image courtesy of Prof. Langer.