Teaching

Advanced Computer Systems (COMP-513)

Offered: Fall '23


This is an updated version of the old Principles of Computer Systems COMP-596 course, which is no longer offered. If you already took COMP-596, you cannot sign up for COMP-513.


In this course, we identify the core principles in systems design and learn how to solve problems in computing using ideas, techniques, and algorithms from operating systems, networks, databases, and computer architecture. The basic courses on these topics teach how the individual parts of systems work. ACS picks up where those courses leave off and focuses on how the pieces come together to form useful, efficient systems.



Credits: 4.

Pre-requisites: COMP-310 or ECSE-427.

Syllabus (link).

Graduate School Fundamentals (COMP-604)

Offered: Fall '23, Winter '23


The goal of the course is to introduce students to fundamental skills every graduate student in computer science requires. This includes skills in research and communication with a focus on the culture and research in computer science, including graduate student orientation, research integrity and ethics, equity, diversity and inclusion, science communication for a general audience, elevator pitches, science writing for a general audience, finding/reading the literature, and peer review. The course will also introduce different career paths graduate students in computer science pursue and how to structure one’s graduate studies according to these paths. A secondary goal of this course is to encourage community building among our graduate students, across different areas of computer science. 

Every week we will invite different McGill SOCS faculty to speak on the topics above, either lecture-style or through interactive panel discussions.



Credits: 1.

Pre-requisites: none.

Syllabus (link).

Operating Systems (COMP-310/ECSE-427)

Offered: Winter '23, Winter '22, Winter '21


This is an introductory course in Operating Systems (OS). In this course, students study the theoretical and practical aspects of modern OS.  This includes the basic structure of an OS, as well as algorithms and techniques used to design and implement different components of an OS (e.g., processes,  inter-process communication, scheduling, memory management, paging, and storage management).


Credits: 3.

Pre-requisites: COMP-273 or ECSE-324.

Syllabus (link).


Principles of Computer Systems (COMP-596)

Offered: Fall '22, Fall '21


In this course, we identify some of the core principles in systems design and learn how to solve problems in computing using ideas, techniques, and algorithms from operating systems, networks, databases, and computer architecture. The basic courses on these topics teach how the individual parts of systems work. POCS picks up where those courses leave off and focuses on how the pieces come together to form useful, efficient systems.



Credits: 3.

Pre-requisites: COMP-310 or ECSE-427.

Syllabus (link).