I teach courses in programming, algorithms and data structures, computer architecture and operating systems. The following are some of the courses I taught in the recent past.
ECE106 - Programming Fundamentals. A first-year undergraduate engineering introduction to object-oriented programming in C++.
ECE552 - Computer Architecture. An upper-level undergraduate treatment of computer architecture and processor design.
ECE540 - Optimizing Compilers. An upper-level undergraduate introduction to compiler optimization and compiler back-end design.
CSC190 - Algorithms and Data Structures. A first-year undergraduate introduction to the analysis of algorithms and data structures.
ECE1754 - Compilation Techniques for Parallel Processors. An upper-level seminar course on parallelizing compilers.
ECE1747 - Parallel Programming. A first-year graduate introduction to programming parallel systems.