Courses

Semester Long Courses

This course is designed as a companion to mentored research and industry projects in computer science that enable students to apply their learning in real-world contexts. While the course staff can provide general support for projects, they may not have the technical expertise to support all projects in depth. Therefore, for Spring 2024, students are expected to have arranged for a mentored project during the course registration period and will need to present their project topic in the first class. For example, a student could be working on a research project mentored by a professor or helping a local company develop a web interface to their product mentored by a company software engineer. Mentors must commit to meeting with students at least every other week. The course will be run through a mix of lecture and group work led by the course instructor as well as guest instructors from both industry and academia. Lectures cover a variety of applied computing topics designed to complement student projects and engage students with often underexplored considerations for effective and sustainable real-world projects. Students are evaluated both by their mentor on their project progress as well as by the course staff and peers on written deliverables and presentations.
Many stages of state-of-the-art robotics pipelines rely on the solutions of underlying optimization algorithms. Unfortunately, many of these approaches rely on simplifications and conservative approximations in order to reduce their computational complexity and support online operation. At the same time, parallelism has been used to significantly increase the throughput of computationally expensive algorithms across the field of computer science. And, with the widespread adoption of parallel computing platforms such as GPUs, it is natural to consider whether these architectures can benefit robotics researchers interested in solving computationally constrained problems online. This course will provide students with an introduction to both parallel programming on GPUs as well as numerical optimization. It will then dive into the intersection of those fields through case studies of recent state-of-the-art research and culminate in a team-based final project.
This course is designed as a companion to mentored research and industry projects in computer science that enable students to apply their learning in real-world contexts. While the course staff can provide general support for projects, they may not have the technical expertise to support all projects in depth. Therefore, for Spring 2024, students are expected to have arranged for a mentored project during the course registration period and will need to present their project topic in the first class. For example, a student could be working on a research project mentored by a professor or helping a local company develop a web interface to their product mentored by a company software engineer. Mentors must commit to meeting with students at least every other week. The course will be run through a mix of lecture and group work led by the course instructor as well as guest instructors from both industry and academia. Lectures cover a variety of applied computing topics designed to complement student projects and engage students with often underexplored considerations for effective and sustainable real-world projects. Students are evaluated both by their mentor on their project progress as well as by the course staff and peers on written deliverables and presentations.

COMS-BC3159-SP24: Parallel Optimization for Robotics

Instructor of Record Spring 2024

Many stages of state-of-the-art robotics pipelines rely on the solutions of underlying optimization algorithms. Unfortunately, many of these approaches rely on simplifications and conservative approximations in order to reduce their computational complexity and support online operation. At the same time, parallelism has been used to significantly increase the throughput of computationally expensive algorithms across the field of computer science. And, with the widespread adoption of parallel computing platforms such as GPUs, it is natural to consider whether these architectures can benefit robotics researchers interested in solving computationally constrained problems online. This course will provide students with an introduction to both parallel programming on GPUs as well as numerical optimization. It will then dive into the intersection of those fields through case studies of recent state-of-the-art research and culminate in a team-based final project.

COMS-BC3997-SP23: Projects in Computer Science

Instructor of Record Spring 2023

This course is designed to explore topics and skills needed for the successful completion of large computer science projects. This will be done through a mix of lecture and group work led by both the course instructor as well as guest instructors from both industry and academia. Students will exercise their development of these skills by applying them in the context of a project. For Spring 2023, students are expected to bring a project to the course. The course staff will be able to provide general support for projects but may not have the technical expertise to support projects in depth. As such, these projects will ideally already have a (technical) mentor or client sponsor who can support the student. To document their projects and begin to build their personal portfolio, students will (learn how to and) develop a website, report, and presentation about both the final result of their project as well as the journey taken.

COMS-BC3159-SP23: Parallel Optimization for Robotics

Instructor of Record Spring 2023

Many stages of state-of-the-art robotics pipelines rely on the solutions of underlying optimization algorithms. Unfortunately, many of these approaches rely on simplifications and conservative approximations in order to reduce their computational complexity and support online operation. At the same time, parallelism has been used to significantly increase the throughput of computationally expensive algorithms across the field of computer science. And, with the widespread adoption of parallel computing platforms such as GPUs, it is natural to consider whether these architectures can benefit robotics researchers interested in solving computationally constrained problems online. This course will provide students with an introduction to both parallel programming on CPUs and GPUs as well as optimization algorithms for robotics applications. It will then dive into the intersection of those fields through case studies of recent state-of-the-art research and culminate in a team-based final project.
Robots are cyber-physical systems – leveraging computational intelligence to sense and interact with the real world. As such, robotics is a very diverse, cross-disciplinary field. This introductory course exposes learners to the vast opportunities and challenges posed by the interdisciplinary nature of robotics. While grounded and focused in computation this course also explores hands-on electromechanical and ethical topics that are an integral part of a real-world robotic system. Topics will include: a survey of the algorithmic robotics pipeline (perception, mapping, localization, planning, control, and learning), an introduction to cyber-physical system design, and responsible AI. The course will culminate in a team-based final project.

Harvard CS249r: Tiny Machine Learning (TinyML)

Head Teaching Fellow (Head TA) Fall 2020
Derek Bok Center Distinction in Teaching Award

An introductory course on Applied AI at the intersection of Machine Learning and Embedded IoT Devices. We provide background on both topics and then dive into the unique challenges faced at that intersection point with hands-on assignments using TensorFlow, Google Colab, and Arduino.

Harvard CS249r: Special Topics in Edge Computing - Autonomous Machines

Head Teaching Fellow (Head TA) Fall 2019
Derek Bok Center Distinction in Teaching Award

Modern embedded systems are intelligent devices that involve complex hardware and software to perform a multitude of cognitive functions collaboratively. Designing such systems requires us to have deep understanding of the target application domains, as well as an appreciation for the coupling between the hardware and the software subsystems.This course is structured around building “systems” for Autonomous Machines (cars, drones, ground robots, manipulators, etc.). For example, we will discuss what are all the hardware and software components that are involved in developing the intelligence required for an autonomous car?

Harvard CS 182: Introduction to Artificial Intelligence

Head Teaching Fellow (Head TA) Fall 2017, 2018
Derek Bok Center Distinction in Teaching Award

Artificial Intelligence (AI) is an exciting field that has enabled a wide range of cutting-edge tech-nology, from driverless cars to grandmaster-beating Go programs. The goal of this course is to introduce the ideas and techniques underlying the design of intelligent computer systems. Topics covered in this course are broadly be divided into 1) planning and search algorithms, 2) probabilistic reasoning and representations, and 3) machine learning (although, as you will see, it is impossible to separate these ideas so neatly).

MIT MAS.863 - How to Make Almost Anything

Teaching Assistant for the Harvard Section Fall 2017, 2018, 2019, 2021

This course provides a hands-on introduction to the resources for designing and fabricating smart systems, including CAD/CAM/CAE; NC machining, 3-D printing, injection molding, laser cutting; PCB layout and fabrication; sensors and actuators; analog instrumentation; embedded digital processing; wired and wireless communications. This course also puts emphasis on learning how to use the tools as well as understand how they work. By the end of the course you will know how to make… almost anything.

MOOCs

HarvardX: Tiny Machine Learning MOOC

Teaching Staff Lead Launched Fall 2020 - Winter 2022

In this exciting Professional Certificate program offered by Harvard University and Google TensorFlow, you will learn about the emerging field of Tiny Machine Learning (TinyML), its real-world applications, and the future possibilities of this transformative technology. TinyML is a cutting-edge field that brings the transformative power of machine learning (ML) to the performance-constrained and power-constrained domain of embedded systems. The program will emphasize hands-on experience and is a collaboration between expert faculty at Harvard’s John A. Paulson School of Engineering and Applied Sciences (SEAS) and innovative members of Google’s TensorFlow team.

Workshops / Summer Courses

SciTinyML-24 was a, five day, hands-on, virtual workshop exploring how embedded ML (tinyML) can impact the developing world through hands-on activities using embedded hardware devices and exploration of advanced topics. SciTinyML-24 was attend by TBD participants from TBD countries. This program was a collaboration led by the Abdus Salam International Centre for Theoretical Physics (ICTP), the Harvard John A. Paulson School of Engineering and Applied Sciences, Barnard College of Columbia University, Universidade Federal de Itajubá (UNIFEI), and TinyMLedu.
The objective of this workshop is to bring together researchers in the model-based manipulation community to present their work and review state-of-the art methods in the field. In conjunction, the workshop aims to facilitate discussions on the future of the field and ask several important questions: how can we synthesize model-based approaches and recent learning approaches into a coherent whole? Do we believe that there is structure we can leverage from the models that we use to better inform planning and control algorithms?
Robotics is pushing the limits of conventional computing. This is a call to action for researchers across academia and industry: we must leverage nontraditional computing hardware (e.g., custom accelerator ASICs, FPGAs, and GPUs) and navigate enormous design spaces spanning across algorithms, hardware, and physical robot parameters in order to design new high performance systems enabling critical tasks in robotics. This workshop aims to gather pioneers and innovators working at the intersection of robotics and computer architecture, and to provide an introduction to this exciting emerging field to the computer architecture community.
SciTinyML-23 was a, five day, hands-on, virtual workshop exploring how embedded ML (tinyML) can impact the developing world through hands-on activities using embedded hardware devices and exploration of advanced topics. SciTinyML-23 was attend by 418 participants from 76 countries. This program was a collaboration led by the Abdus Salam International Centre for Theoretical Physics (ICTP), the Harvard John A. Paulson School of Engineering and Applied Sciences, Barnard College of Columbia University, Universidade Federal de Itajubá (UNIFEI), and TinyMLedu.
EdgeMLUP-23 was an ICTP In-Person Meeting which brought together educators and researchers from around the globe (47 participants from 28 countries) to develop a roadmap for sustainable university programs in embedded machine learning including the development of a common modular curriculum. This program was a collaboration led by the Abdus Salam International Centre for Theoretical Physics (ICTP), the Harvard John A. Paulson School of Engineering and Applied Sciences, Barnard College of Columbia University, Universidade Federal de Itajubá (UNIFEI), and TinyMLedu with support from Edge Impulse, Arduino, Seeed Studio, Arm, and the TinyML Foundation.
Robotics is pushing the limits of conventional computing. This is a call to action for researchers across academia and industry: we must leverage nontraditional computing hardware (e.g., custom accelerator ASICs, FPGAs, and GPUs) and navigate enormous design spaces spanning across algorithms, hardware, and physical robot parameters in order to design new high performance systems enabling critical tasks in robotics. This workshop aims to gather pioneers and innovators working at the intersection of robotics and computer architecture, and to provide an introduction to this exciting emerging field to the computer architecture community.
SciTinyML-22 was a, five day, hands-on, virtual workshop exploring how embedded ML (tinyML) can impact the developing world through hands-on activities using embedded hardware devices. SciTinyML-22 was run regionally with seperate workshops for Africa (187 participants from 29 countries), Asia, and Latin America. This program was a collaboration led by the Abdus Salam International Centre for Theoretical Physics (ICTP), the Harvard John A. Paulson School of Engineering and Applied Sciences, and TinyMLedu.
Mind the Gap: Opportunities and Challenges in the Transition Between Research and Industry is aimed at bridging the gap between academia and industry. For researchers, this workshop will help lift the curtain on the realities of academic to industry tech transfer. For industry experts, this workshop provides an opportunity to influence the direction of academic research. For both, we hope to provide an venue for integrated dialogue and identification of new potential collaborations.

EASI-22: Edge AI Summer Institute

A TinyMLedu Workshop

Lead Organizer Summer 2022

EASI-22 was a 3-day, hands-on workshop for high school teachers and students exploring real-world applications of artificial intelligence at the edge through hands-on examples of Tiny Machine Learning (TinyML). This program was a collaboration between Navajo Technical University, the Harvard John A. Paulson School of Engineering and Applied Sciences, and Barnard College, Columbia University.
SciTinyML-21 was a, five day, hands-on, virtual, global (216 participants from 48 countries) workshop exploring how embedded ML (tinyML) can impact the developing world through hands-on activities using the Edge Impulse cloud platform and a smartphone. This program was a collaboration between the Abdus Salam International Centre for Theoretical Physics (ICTP), the Harvard John A. Paulson School of Engineering and Applied Sciences, and TinyML4D.
CRESTLEX 3.0 was a first-of-its-kind, 4-day, hands-on workshop for high school teachers and students exploring real-world applications of artificial intelligence through hands-on examples of Tiny Machine Learning (TinyML). This program was a collaboration between Navajo Technical University, the Harvard John A. Paulson School of Engineering and Applied Sciences, Google, and Edge Impulse.

MIT Beaverworks Summer Institute: Autonomous RACECAR Grad Prix

Associate Instructor (TA) Summer 2016, 2017, 2018, 2019

Driverless vehicle technology has been growing at an exponential pace since the DARPA Grand and Urban Challenges pushed the state of the art to demonstrate what was already possible. Commercial interest and aggressive development are being driven by Google, Toyota, Tesla, Continental, Uber, Apple, NVidia, and many other companies. There is no single technology or “killer app” available to solve the myriad perception, understanding, localization, planning, and control problems required to achieve robust navigation in highly variable, extremely complex and dynamically changing environments. This summer, Beaver Works Summer Institute will offer nine teams of five students, each with its own MIT-designed RACECAR (Rapid Autonomous Complex Environment Competing Ackermann steeRing) robot, the opportunity to explore the broad spectrum of research in these areas, learn to collaborate, and demonstrate fast, autonomous navigation in a Mini Grand Prix to Move… Explore… Learn…Race!