I have a great passion for teaching computer science, mathematics, and combinations thereof. Here are some courses I've been involved with along with a few artifacts.
SI 486D: Randomness and Computation
Spring 2013.
This elective course looks at the role random numbers play in improving
computational processes. Covered topics range from random number generation to
randomized data structures and algorithms as well as randomized complexity theory.
SI 335: Computer Algorithms
Spring 2013, Spring 2012.
Third-year course on algorithm design and analysis.
SI 413: Programming Languages
Fall 2012, Fall 2011.
A fourth-year course introducing functional programming, general principles
of programming language design, interpreters, and compilers.
IC 220: Computer Architecture and Organization
Spring 2012.
Second-year course introducing logic design, memory hierarchy, assembly language,
and the like.
CS 240: Data Structures and Data Management
Instructor, Winter 2010 and Spring 2011.
Second-year course for computer science majors covering the "greatest
hits" of data structures and algorithms, along with basic complexity
analysis.
I co-taught this course with
Reza Dorrigiv.
Some course materials I produced:
lecture modules and
assignments.
CS 135: Designing Functional Programs
Instructor, Fall 2008.
First-year course for computer science majors and keen mathematics students
covering introductory programming techniques using Scheme.
Co-taught with 4 other instructors/professors in the department.
CS 341: Algorithms
Teaching Assistant, Winter 2009.
Third-year course for computer science students on advanced topics in
algorithms, focusing especially on graph algorithms, recursive analysis,
and introductory complexity theory.
CS 487/687: Introduction to Symbolic Computation
Teaching Assistant,
Winter 2008.
Undergrad/grad course covering the algorithms for the main problems in the
field: arithmetic on polynomials and integers, "fast" methods, primality
testing, polynomial factorization, dense and sparse linear algebra, etc.
My tutorial on using Maple.
Two
lectures on multivariate polynomials
(PDF) (from 2009).
CS 135: Designing Functional Programs
Instructional Apprentice, Fall 2007.
Fall 2007
First-semester intro computer science course taught in Scheme.
CS 135 Tutorials designed by me.
CS 136: Elementary Algorithm Design and Data Abstraction
Instructional Apprentice,
Spring 2007
Second-semester intro computer science course taught in Scheme and Java.
CS 136 Tutorials designed by me.
CS 134: Principles of Computer Science
Instructional Apprentice in Winter 2007, Teaching Assistant in Fall 2006.
Second-semester intro computer science course taught in Java.
CISC 181: Introduction to Computer Science
Honors section:
Spring '06
Second-semester intro computer science course taught in C++.
Two labs I wrote:
on computing factorials and
on exceptions in C++ (cached)
CISC 105: General Computer Science
Honors section:
Fall '05
First-semester intro computer science course taught in C.
MATH 245: An Introduction to Proof Spring '06, Fall '05