Skip to main content

Courses in 2024-25

In the 2024-25 academic year, I will be teaching Computer Architecture (CSC368H1S). This is a brand new course that I proposed to our department’s undergraduate affairs committee last Fall (2023). In many ways, the course is the “sequel” to CSC258H1 (Computer Organization), where you learned how a processor works. CSC368H1 builds on this knowledge to discuss modern processor designs and their trade-offs.

The course’s calendar description gives a list of topics that are internet-search friendly:

An introduction to computer architecture and how to evaluate the performance of workloads running on processor architectures. Topics include statically and dynamically scheduling instructions in a processor pipeline; speculative execution through branch prediction; hardware cache organizations, their policies, and prefetching; multi-core processors, cache coherence, and synchronization primitives. Additional topics may include other relevant architectures, such as GPUs or domain specific accelerators.

What you learn in computer architecture complements our other systems courses very well, especially Operating Systems (CSC369H1) and Parallel Programming (CSC367H1). By enrolling and completing this course, you should have a solid picture of not only how modern computer systems work, but how and why they work well. I can’t wait to see 125 of you in the first offering of CSC368H1!