Courses being currently taught are housed at rockalypse.org.
Teaching
Allegheny College
I 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
I 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
Living 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
As 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.