ECE419, Winter 2026
University of Toronto
Instructor:
Ashvin Goel
Q: I really like this course. What are other software/hardware courses that complement this course?
A: Here are some related ECE and CS courses. Feel free to let us know if you think other courses are related.
Computer Systems Programming [ECE454]: Teaches how to write more efficient programs by describing what is going on "under the hood" of a computer system.
Computer Architecture [ECE552]: Dives deeper into instruction-level parallelism, data-level parallelism, thread-level parallelism, and memory hierarchy.
Computer Security [ECE568]: Describes the principles of building secure systems, including identifying security vulnerabilities and defending against exploits.
Computer Internetworking [ECE461]: Explains the architectures and protocols of the Internet. Shows how to configure Internet-based network environments. Note that ECE361 is no longer a prerequisite for this course.
Compilers & Interpreters [ECE467H1]: Focuses on the front-end of compiler design, including lexical analysis, parsing, semantic analysis, and intermediate code generation.
Compiler optimization [CSCD70]: Discusses the theoretical and practical aspects of building optimizing compilers that effectively exploit modern architectures.
Advanced Operating Systems [CSC469]: Explores the design of modern operating systems and large concurrent systems.
Parallel Programming [CSC367]: Similar to ECE454, but includes vector processing and parallel computing architectures.
Database System Technology [CSC443]: Discuses database systems in depth, including the transaction processing aspects of distributed systems.