Teaching
I mainly teach graduate level coures in the MPCS and CAPP programs. These courses mainly range from programming courses, and computer systems courses.
Current Courses
I am currently teaching the following courses:
MPCS 52060: Parallel Programming (2018 -)
The goal of this course is to provide an introduction to the foundations of parallel programming and to consider the performance gains and trade-offs involved in implementing and designing parallel computing systems. Specifically, this course will place an emphasis on concepts related to parallel programming on multicore processors. Programming exercises and projects come from the domains of AI and machine learning, computer graphics, cryptocurrency technologies, and scientific visualization. All assignments are implemented using the Go programming language.
MPCS 51300: Python Programming (2018 -)
This course provides a thorough overview of the Python 3 language with an emphasis on writing idiomatic code in Python and object-oriented design patterns and is suitable for students with some prior programming experience. Students develop an understanding of the core features of the languages and gain exposure to commonly used standard-library and third-party modules. Students received exposure to areas where Python is heavily used such as web development, scientific computing, graphical user interfaces, data mining, and systems programming.
CAPP 30122: Computer Science with Applications II (2019 -)
This course is the second in a three-quarter sequence that teaches computational thinking and skills to students from a wide-variety of fields. Lectures cover topics in (1) data representation, (2) relational databases, (3) data cleaning and presentation, (4) shell scripting, (5) data structures, such as graphs, hash tables, and heaps. Applications and datasets from a wide variety of fields serve both as examples in lectures and as the basis for programming assignments. In recent offerings, students have written a course search engine and a system to do speaker identification.
Past Courses
I have also taught the following courses in past:
- MPCS 51400: Functional Programming (2017, 2018)
- MPCS 51036: Java Programming (2016, 2017)
- CMSC 15200: Introduction to Computer Science II (Summer 2013 & 2014)