Teaching

COMP 182 – Algorithmic Thinking

This is the Discrete Mathematics course in the Department of Computer Science at Rice. It is called Algorithmic Thinking because we emphasize the use of algorithms and math in real-world applications. During COVID and due to moving online for part of Spring 2020 and all of Spring 2021, I had to record videos for the course. These were not high-quality, professionally recorded videos; instead, I used my iPad to record them. They are not proofread carefully so they might include a few typos here and there. Whenever students pointed out a mistake in the videos, I fixed that. All remaining mistakes are mine. I have now posted the videos publicly on YouTube in case they can be of use to someone. They can be accessed at my YouTube channel, under the Discrete Mathematics playlist (61 videos).

COMP 382 – Analysis of Algorithms

I helped teach this course in Fall 2020, during Covid, and covered the first half of the materials, focused on data structures and algorithms.

Due to COVID, I recorded videos for the course. As above, these are not high-quality, professionally recorded videos. They are not proofread carefully, so they might include a few typos/mistakes here and there. Just in case the videos are of help to someone, they can be accessed at my YouTube channel, under the Data Structures and Algorithms playlist (36 videos).

COMP 481 – Automata, Formal Languages, and Computability

This course covers regular languages (automata, regular expressions, regular grammars, etc.), context-free languages (push-down automata, context-free grammars, etc.), recursive and recursively enumerable languages (Turing machines, etc.), computability (of languages and functions) and reductions, and elements of complexity theory.

COMP 571 – Bioinformatics: Sequence Analysis

This course covers topics in population genetics (Hardy-Weinberg, finite populations and genetic drift, population structure and gene flow, mutation, selection, and molecular evolution) and phylogenetics (sequence alignment, phylogenetic tree reconstruction, and phylogenomics).

COMP 572 – Bioinformatics: Network Analysis

This course covers topics in the analysis of topological and dynamic properties of transcriptional, signaling, and metabolic networks.

COMP 670 – Graduate Seminar on Computational Biology

This seminar covers advanced topics in computational biology; the theme changes from semester to another.