My primary teaching duties are introductory programming, data structures, systems programming, and ethics and professional issues. In addition to these types of classes, I am also interested in teaching systems programming, operating systems, distributed and parallel computing, cloud computing, programming languages, compilers, and web services.