Teaching portfolio

Contents:

Courses (with Web page links)
Student evaluations
Educational software
Assignments
Written material

Courses

Links are to Web pages built for the various courses.

Spring 2004: CSci 210 Layers of architecture, languages, and applications (CSB|SJU)
Core 101 First-Year Symposium (CSB|SJU)
Fall 2003: CSci 150 Introduction to the science of computing (CSB|SJU)
Core 100 First-Year Symposium (CSB|SJU)
Spring 2003: CSci 210 Layers of architecture, languages, and applications (CSB|SJU)
CSci 340 Programming languages (CSB|SJU)
Fall 2002: CSci 150 Introduction to the science of computing (CSB|SJU)
CSci 210 Layers of architecture, languages, and applications (CSB|SJU)
Summer 2002: Computer science core (PGSS)
Machine learning elective (PGSS)
Computer science team projects - Un-Mouse, fingerprint authentication (PGSS)
Spring 2002: CSci 160 Problem Solving, Programming, and Computers (CSB|SJU)
Fall 2001: CSci 160 Problem Solving, Programming, and Computers (CSB|SJU)
CSci 350 Operating systems (CSB|SJU)
Summer 2001: Computer science core (PGSS)
Machine learning elective (PGSS)
Spring 2001: CSci 150 Introduction to the science of computing (CSB|SJU)
CSci 340 Programming languages (CSB|SJU)
CSci 341 Compiler theory (CSB|SJU)
January 2001: CSci 276 Artificial intelligence (CSB|SJU)
Fall 2000: CSci 150 Introduction to the science of computing (CSB|SJU)
Summer 2000: Computer science core (PGSS)
Summer 1999: Computer science core (PGSS)
Spring 1999: 15-251 Great theoretical ideas (CMU)
Led recitation, helped management, graded papers
Fall 1998: 15-451 Algorithms (CMU)
Helped management, graded papers, helped students
Summer 1998: Computer science core (PGSS)
Fall 1997: 15-211 A, B (CMU)
Led recitation, helped students, graded papers
Summer 1997: Computer science core (PGSS)
Spring 1996: 15-211 A, B (CMU)
Led recitation, helped students, graded papers

Student evaluations

I'm not saying that these evaluation comments are exemplary. But they're not embarrassing, and I want to be completely open about what students have thought of my teaching.

CSCI 210 (Computing systems), CSB|SJU Fall 2002
CSCI 150 (Introductory survey), CSB|SJU Fall 2002
CSCI 160 (Java programming), CSB|SJU Spring 2002
CSCI 160 (Java programming), CSB|SJU Fall 2001
CSCI 350 (Operating systems), CSB|SJU Fall 2001
Computer science survey, PGSS Summer 2001
Machine learning elective, PGSS Summer 2001
CSCI 150 (Introductory survey), CSB|SJU Spring 2001
CSCI 340 (Programming languages), CSB|SJU Spring 2001
Computer science survey (numerical results), PGSS Summer 2000
15-251 (Great theoretical ideas), CMU Spring 1999

Educational software

Logisim, Fall 2001
This Java application is a graphical system for designing and simulating logic circuits. At CSB|SJU, we use it in our introductory survey courses and in our computer architecture course.

Automaton simulator, Spring 2001
This Java application is a graphical system for designing and simulating finite automata and Turing machines. We use it in our introductory survey course for majors.

Assignments

CSCI 160 lab manual, Fall 2001
At CSB|SJU, I was assigned to teach our first-semester programming course soon after we switched to Java. I ended up developing a completely new set of laboratory assignments for students.

PGSS CS survey assignments, Summer 2001
These are the assignments that I've developed for my PGSS survey course. They represent a collection of novel and fun introductory programming assignments.

15-251 Assignment 9, Spring 1999 (PDF, 7 pages)
As a TA at Carnegie Mellon, the professor suggested a programming assignment where students could learn about Polya enumeration. This is what I came up with.

Written materials

``Intel x86 Assembly Language in Minix'', Fall 2001 (HTML, PDF, 12 pages)
Having decided to try studying Minix in our Operating Systems course, I had to teach my students enough of the Intel assembly language in order to read the Minix base kernel.

A survey of machine learning, Summer 2001 (PDF, 38 pages)
In Summer 2001, I developed a short machine learning course for PGSS students. This set of notes describes the topics I covered in some detail. It was based on an earlier version in my January 2001 course on Artificial Intelligence aimed at first-years.

``The PostScript programming language'', Spring 2001 (PDF, 8 pages)
In Spring 2001, I was assigned to teach a Programming Languages class. I decided to cover PostScript as an example of a nontraditional imperative language, and this necessitated a reference to the programming features of PostScript.

``An introduction to ML'', Spring 2001 (PDF, 27 pages)
Until Spring 2001, CSB|SJU's introductory survey course used ML as a first programming language. There weren't any good resources introducing ML at this level, so I wrote this handout for my Spring 2001 class. (I don't particularly recommend trying ML as a first language, by the way.)

Surveying the field of computing, Summer 1999 (HTML link, 142 pages)
I've taught a computer science survey at PGSS for five years, and each time I've used my own accompanying text. This is the third edition, which students have found quite useful during their studies.