Teaching

Courses being currently taught are housed at rockalypse.org.

Allegheny College

big-alleghenyI am currently in my second year at Allegheny College in the Department of Computer Science.

2009—2010

[INDS] Operation: Stick Figure Army

Worked with Stephanie Cost '10 and Sara Doan '10 on this CRAW-supported research. Developed tools for the production of 3D artifacts to support blind readers of modern textbooks.

[INDS] Operation: Stick Figure Army

Worked with Stephanie Cost '10 and Sara Doan '10 on this CRAW-supported research. Developed tools for the production of 3D artifacts to support blind readers of modern textbooks.

[CMPSC112] Data Structures and Algorithms

Using Drake's Data Structures and Algorithms in Java, students were supported by extensive use of video, so as to minimize lecture and maximize discussion and interaction time in-class.

[FS101] British Comedy in Translation

Developed and led this first-year seminar to introduce students to the fundamentals of writing and presentation by asking the question "What is funny?" in the context of British comedy through the ages. 

2008—2009

[INDS] 3D Printing @ Allegheny

Worked with Maja Sweeney '09 (Art). Maja led a group of volunteers in the building of a RepRap 3D printer. Project weblog available at baseplate.org.

[CMPSCI 220] Programming Languages

A half-depth, half-breadth introduction to languages. During the first half of the semester, we developed interpreters in Scheme using PLAI by Shriram Krishnamurthi. During the second half of the semester, I presented a history of interesting languages and "mini-labs" exploring these tools, while students worked on a final project exploring deeply a language of their choosing. Course homepage.

[CMPSCI 580] Junior Seminar

Led this third-year seminar leading into the Allegheny senior comprehensive. Course homepage.

[CMPSCI 190] Virtual Worlds, Real Robots

Developed and taught this unique pre-intro to computing. Used StarLogo:TNG to study distributed systems and little robots to explore computing in the context of the world around us. Lab based.

[CMPSCI 111]  Introduction to Computer Science I

Taught one section of our introduction to computing. Developed new materials to support introducing Java using Greenfoot, a Java-based microworld, as well as Objects First with Java. Lab based.


Franklin W. Olin College of Engineering

big-olinI had a marvelous, 1-year visit at Olin. Incredible colleagues and students.

2007—2008

[SCOPE] Senior Consulting Program
for Engineering

Mentored the aPriori team during this intense, year-long senior consulting experience. scope.olin.edu

[ENGR 3390] Robotics

Co-taught with Dave Barrett. A project-based introduction to sensing, perception, cognition, and actuation, as well as parallel architectures for robotic control.

[ENGR 3220] Human Factors and Interface Design

An introduction to the user-centric, interface design process. hfid.olin.edu

[ENGR 2510] Software Design

An introduction to incremental development, modular design, and testing in Scheme. Reflections on student feedback in the context of how the course will evolve.

[INDS] Independent Study

Worked with Nikki Lee on interface design and development for supporting communities of OLPC software developers.

[INDS] Independent Study

Worked with Michael Hughes on analysis of novice programming behavior using data collected in collaboration with researchers at the Ateneo de Manila University.

[INDS] Independent Study

Worked with Kevin Brettney on the design and development of a UAV controller board and accompanying control software.

(This was a busy year, yes.)

University of Kent

big-kentLiving abroad was a marvelous, five-year experience. I think many of my favorite teaching moments came from Cool Stuff in Computer Science.

2006—2007

[CO620] Research Project

Mentored J. Simpson on his project “A Native Transterpreter for the LEGO Mindstorms RCX.”

[CO631] Concurrency

Developed and delivered laboratory assignments on the theme of of concurrency and robotics using RoboDeb; laboratory materials available online.

[CO531] Software Engineering Practice

Delivered four guest lectures on practical aspects of software engineering, focusing on version control systems, source code management, and refactoring. Included practical examples in all cases.

2005—2006

[INDS] Independent Study

Worked with J. Simpson (2nd year). His project culminated in the publication of Mobile Robot Control: The Subsumption Architecture and occam-pi (PDF), for presentation at CPA 2006.

[CO631] Concurrency

Developed materials and presented laboratories regarding concurrency and robotics. RoboDeb and support documentation were a direct outcome of this work.

[CSCS] Cool Stuff in Computer Science

LEGO robotics, systems administration, programming languages and art, Greenfoot, and other topics as per student interest.

2004—2005

[CSCS] Cool Stuff in Computer Science

LEGO robotics, scripting languages, RPC, and building a small PDA-based robotics platform from scratch.

[CO137] A Java Programming Primer

As previous year; developed BlueJ Trails to support the teaching of this and CO138. Also employed by other instructors in CO320.

[CO138] Further Java Programming

Continuation of CO137.

2003—2004

[CSCS] Cool Stuff in Computer Science

Extracurricular sessions on LEGO robotics; second semester, a large group project attempting to develop an IRC bot network. Students were challenged; project was too difficult.

[CO137] A Java Programming Primer

Intensive introductory programming course for continuing students. Used Objects First with Java for course material.

[CO138] Further Java Programming

Continuation of CO137.

[CO313] Information Systems

Laboratory sessions.

2002—2003

[CO313] Information Systems

Laboratory sessions.

Indiana University Bloomington

big-iuAs a graduate student at Indiana, I had the good fortune of working with good colleagues in both CS and IST. The highlight was developing and delivering A290: Introduction to LEGO Robotics.

2001—2002

[A290] Introduction to LEGO Robotics

A course of my own creation (fun!). An entirely lab-based course. Students, working in teams, developed solutions to increasingly challenging tasks using the LEGO Mindstorms RCX. Writing and reflection were critical parts of the evaluation process.

[A110] Intro to Computing

Continued Vincent development.

2000—2001

[A290] Introduction to LEGO Robotics

A course of my own creation (fun!). An entirely lab-based course. Students, working in teams, developed solutions to increasingly challenging tasks using the LEGO Mindstorms RCX. Writing and reflection were critical parts of the evaluation process.

[A110] Intro to Computing

Continued Vincent development.

1999—2000

[A290] Introduction to LEGO Robotics

A course of my own creation (fun!). An entirely lab-based course. Students, working in teams, developed solutions to increasingly challenging tasks using the LEGO Mindstorms RCX. Writing and reflection were critical parts of the evaluation process.

[A110] Intro to Computing

Continued Vincent development.

1998—1999

[A110] Intro to Computing

Lab session leader; developed teaching and support materials. Developed Vincent, a course handin system still widely used in the IUB CS department, to support A110. Ran a prototype of A290 in A110 labs during Spring semester.

[Q515] Learning with LEGO Robots

Co-taught this course for practicing science teachers in secondary education.