Since beginning to teach in CS UMD in Summer 2016, I have been in charge of the following two courses:

  • CMSC250, Discrete Structures: A Discrete Mathematics course tuned for Computer Scientists. We cover elements of propositional and predicate logic, set theory, a lot of induction, combinatorics, relations and functions, countability.
  • CMS420, Advanced Data Structures: This course examines data structures beyond the “classic” lists, queues, stacks, binary trees. We cover self-balancing binary trees, several different hash tables, data structures for strings such as tries and the Huffman and LZW algorithms, spatial data structures like KD-Trees, QuadTrees, R-Trees, and elective subjects with time permitting (Binomial and Fibonacci queues, LSH, MinHash, “Up”-trees, etc. The idea of amortized complexity is introduced and different data structures are compared in very fine terms such as hidden constants in the “big-Oh” characterization, cache locality, distributed performance, hard vs soft deletion, tail-recursive implementations, etc


I also consider myself suitable for teaching courses on Intro to OOP, Algorithms, Machine Learning and Image Processing.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s