Education Innovations for Engineering Safe Software

Our group also leads several efforts to push the boundaries of education, changing how traditional courses are delivered and developing courses that blend areas.

Discrete Math - A Constructive Approach

Discrete Math - A Constructive Approach

The overall aim of this course is to prepare you to use formal (mathematically precise) reasoning in your future studies and work in computer science. Areas of computer science in which such reasoning is essential include algorithms and data structures, the theory of computing, cryptography, computer security and privacy, and software engineering.

Professor: Kevin Sullivan

Compilers

Compilers

Course Goals:

  • To become knowledgeable of the foundational concepts underlying modern compiler optimization
  • To explore and understand the tradeoffs required when implementing scalable program analyses
  • To become familiar with a production-quality compiler system that you can use in your own research
Professor: Matthew Dwyer

Robotics for Software Engineers

Robotics for Software Engineers

Course Goal and Scope

Developing software for robot systems is challenging as they must sense, actuate, and represent the physical world. Sensing the physical world is usually noisy, actuating in and on the world is often inaccurate, and the knowledge and representation of the world is incomplete and uncertain. In this class we explore software engineering approaches to cope with those challenges. You will learn to use domain-specific abstractions, architectures, libraries, and validation approaches and tools to safely perform robot activities like motion, navigation, perception, planning, and interaction. The expectation is that this course will open up new career options in robotics for our students.

Professor: Sebastian Elbaum