Mic's Classes

I mostly teach Computer Science, usually with a mathematical emphasis. Here are some general links for my students:

Current Classes

Spring 2008: (NOTE: these links won't work for the first week or so)
CS323: Data Structures and Algorithms, MWF 11:45am-12:35pm, W302
(This course was previously know as CS253.) This is a core course for CS majors. We continue the study of data structures and algorithms, initiated in CS171. Topics include hashing, balanced search trees, tries, and graph algorithms. Prerequisites are CS171 and CS224. The main programming language is Java.
We'll use the CS171 textbook by Goodrich and Tamassia, plus a Sedgewick text on graph algorithms.
CS526: Algorithms, MWF 2:00pm to 2:50pm, W303
A graduate level algorithms course. We first review major forms of algorithmic design and analysis, and then go on to do some more modern case studies. This course may involve some programming, but it is largely analysis.
For the review portion of the course we'll use Algorithms by Dasgupta, Papadimitriou, and Vazirani. After that, we'll be reading papers and other sources.

Recent Classes

Fall 2007:
CS224: Mathematical Foundations of Computer Science
A mathematical course for CS majors. We emphasize computational elements of discrete math, including loop invariants, circuits, big-Oh analysis, and automata.
Our text is Lipschutz and Lipson's Discrete Mathematics, of the Schaum's outline series.
CS171: Introduction to Computer Science II
A continuation of CS170, where we implement and analyze many basic data structures and algorithms. We emphasize object-oriented Java designs, but also consider some lower-level issues using C.
This semester we are using a new text, Data Structures and Algorithms in Java (4th ed.) by Goodrich and Tamassia. Students also need a C language reference, such as Kernighan and Pike's The C Programming Language (2nd ed).
Spring 2007:
CS153: Computing for Bioinformatics
The course introduces computer science concepts that are relevant to bioinformatics, with a focus on problems involving sequence data and clustering. Topics will include Perl programming, algorithms, and web services. (This course does not cover much biology, nor does it survey many practical tools of bioinformatics.)
This course satisfies part II.A of the GER. There is no prerequisite.
CS253: Data Structures and Algorithms
A core CS major course, we continue the study of data structures and algorithms initiated in CS171. Topics include hashing, balanced search trees, tries, and graph algorithms. Prerequisites are CS171 and CS224. The main programming language is Java.
Fall 2006:
CS224: Mathematical Foundation for CS
CS171: Introduction to Computer Science II
A continuation of CS170, where we implement and analyze many basic data structures and algorithms. We emphasize object-oriented Java designs, but also consider some lower-level issues using C.
Our text is Sedgewick's Algorithms in Java (Parts 1-4) (3rd ed). (also used in CS253). I also recommend a C language reference, such as Kernighan and Pike's The C Programming Language (2nd ed).
Spring 2006:
CS190: Freshman Seminar in Bioinformatics
A seminar discussing recent examples of computational problem-solving in biology.
CS424/CS524: Theory of Computing
This course introduces standard theoretical models of computation and resource limits.
Fall 2005:
CS224: Math Foundations for CS
A CS majors course. Discrete math, including CS elements like loops, circuits, and automata.
CS584: Algorithms
A topical graduate course. This semester the topic is bioinformatic algorithms.
Older course materials may still be available, contact me for details.

Home. Comments?    Last Modified: 16 Jan 2008