I am passionate about computer science and I strive to develop an inclusive learning environment where I can share my excitement for challenging ideas and problems, while being respectful of and responsive to student needs.

Portfolio. Statement, evals, materials.

Teaching Statement »

Solve a Maze via Search

An important aspect of an introductory AI course is exposure to the complexities and tradeoffs involved in deploying an application that integrates one or more intelligence techniques. This project assumes students have studied (un)informed search algorithms (e.g. via Pacman Projects), and guides them through the process of developing an image-based maze solver. The assignment begins by assuming a clean grid-based representation, and has students formulate maze-solving as a search problem. They are then tasked with applying basic computer-vision and image-processing techniques (via OpenCV) to convert an input image into the assumed problem representation, and then project the solved path onto the picture for the user to see. Throughout the project, students are pushed to visualize their work, verify incremental steps, and analyze tradeoffs between algorithmic performance and solution feasibility/quality. The assignment concludes with a variety of extensions, allowing students to pursue more challenging aspects that suit their interests.
  • Assignment Materials
    Published at EAAI 2018

An Introduction to Classification: A CS2 Object-Oriented Programming Project

Through a series of scaffolded steps, this CS2 project asks students to develop a flexible framework for evaluating classification algorithms. In each phase of the project, students are provided documentation, unit tests, and supporting compiled code. The focus is on object-oriented concepts, such that the application can "mix and match" any classification algorithm with any training/testing-pair evaluation dataset. The purpose of the project is for the students to apply principles of object-oriented programming to a relatively large-scale, real-world problem. Along the way students learn about basic machine learning concepts; issues and tradeoffs related to knowledge representation (e.g. the efficiency of sparse vs. dense feature vectors); and implement two basic supervised learning algorithms (1-NN, ZeroR), as well as a simple form of reservoir sampling.
  • Assignment Materials
    Published at EAAI 2016

Northeastern University, Boston

Course sites and evaluations
  • Spring 2018: Software Development
  • Spring 2018: Database Design
  • Spring 2018: Fundamentals of Computer Science 1
    Fall 2017: Database Management Systems
    Fall 2017: Data Mining Techniques/Unsupervised Machine Learning

Wentworth Institute of Technology, Boston

Course slides and evaluations
    Summer 2017: Introduction to Artificial Intelligence
    Spring 2017: Introduction to Artificial Intelligence
    Spring 2017: Computer Science II
    Fall 2016: Computer Science I
    Spring 2016: Introduction to Artificial Intelligence
    Spring 2016: Databases
    Fall 2015: Machine Learning
    Fall 2015: Computer Science I
    Spring 2015: Database Management Systems
    Spring 2015: Computer Science II
    Fall 2014: Database Applications
    Fall 2014: Computer Science I

EECS 280: Programming and Introductory Data Structures

Served as TA during Winter 2008 @ University of Michigan, Ann Arbor.
  • Discussion Slides
    Weekly guides
    Course Evaluations
    Section 11
    Course Evaluations
    Section 13

Guest Lectures/Talks for Undergraduates

  • Cognitive Architecture: An Approach to AGI
    6.S099: Artificial General Intelligence @ MIT, Boston
  • Artificial Intelligence
    Faculty Spotlight @ Wentworth Institute of Technology, Boston
  • Optimize!
    Mechanical Engineering Seminar Series @ Wentworth Institute of Technology, Boston
  • The Boundary Forest Algorithm for Fast Online Learning of Large Datasets
    WIT Talks @ Wentworth Institute of Technology, Boston
  • Machine Learning
    COMP 543 (Artificial Intelligence) @ Wentworth Institute of Technology, Boston
  • The Boundary Forest Algorithm for Fast Online Learning of High-Dimensional Data
    MATH 650 (Machine Learning) @ Wentworth Institute of Technology, Boston
  • Basics of Web Development
    EECS 497 (Capstone Project Course) @ University of Michigan, Ann Arbor
    The Soar Cognitive Architecture: Towards Human-Level Intelligence
    Undergraduate AI Lab (MSaiL) @ University of Michigan, Ann Arbor

Student Projects. Fun and learning.

Undergraduate Research @ Wentworth Institute of Technology, Boston

At Wentworth I worked with numerous students on research that led to published articles.
    Tologon Eshimkanov
    Automatic Score Keeper (ASK) for Cornhole via Computer Vision (AAAS-17)
    Tyler Frasca
    A Comparison of Supervised Learning Algorithms for Telerobotic Control using Electromyography Signals (AAAI-16)

Service Learning @ Wentworth Institute of Technology, Boston

At Wentworth I worked with numerous students on projects that balance traditional classroom experience with the rich lessons that come through external collaboration and community service.
  • Artur Janowiec
    GPA Calculator - allows students to quickly compute overall GPA based upon current classes and prior GPA.
    Tyler Gauch, Nasser Eledroos, Matthew Stoker
    ChemDB - allows a set of academic institutions to easily, effectively, and safely log and monitor chemical usage.

CS1 @ Wentworth Institute of Technology, Boston

COMP128/1000 is an introductory programming class in C++/Java. Several students have produced independent projects in such areas as [mobile] games, computer vision, embedded systems, and artificial intelligence.
    Conner Theberge
    Settlers - a game to oversee a group of settlers and command them
    James Desmond
    SmartDorm - provides a menu-driven system for RPi control
  • Jack Manning
    Air Rifle Target Score - uses OpenCV and novel algorithms to score pictures of targets
    Jared Conroy
    Afroman - a sidescroller, music rhythm game, and maze all in one exciting race against the clock (Windows)

LEAD Engineering @ University of Michigan, Ann Arbor

is a three-week residential summer program that brings under-represented K-12 students from around the US to take advanced engineering courses, develop leadership skills, and engage challenging projects from a variety of industry partners in 13 different departments.

I served as the head instructor in 2010, and lead an undergraduate student team to develop a curriculum for the computer science group: the students investigated the relationship between computer hardware, software, and energy consumption. In 2011 I was an assistant instructor and helped middle-school students develop Android apps.

  • Instructional Video
    Making a Homopolar Motor
  • LEAD Android Market
    Student App Inventor projects

SITE @ North Carolina State University, Raleigh

SITE was a residential summer program that brought high-school students to engage challenging engineering projects.

I served as a program instructor for the computer science camp in 2002: we developed and executed a curriculum whereby student groups learned film production software and produced their own movie, from capturing film, to audio mastering, to special effects.
  • Student Group Final Project
    Jedi Duel