This course covers the software engineering fundamentals. Topics include requirement elicitation, design evaluation, collaborative system implementation, change management, testing and quality assurance, all while instilling ethical and professional behaviors. The course includes the utilization of tools and the development of a class project.
Fall 2023: CS6500: SE for ML
This course explores the challenges and state-of-the-art techniques to build ML applications utilizing sound SE principles. The course includes extensive paper reading and analysis, a number of presentations, and an applied project.
This course explores state-of-the-art automated analysis techniques and their application. Topics include dynamic and static program analysis techniques, test generation, fault localization and debugging, model inferencing, and model checking. The course includes the utilization of tools and the development of a class project that builds and improves on existing techniques.
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 basic approaches to cope with those challenges. You will learn abstractions, architectures, libraries, verification and validation approaches, simulation, and frameworks and tools to perform robot activities like motion, navigation, perception, planning, and interaction. The expectation is that his course opens up new career options in robotics for computer science students.
This course explores state-of-the-art automated analysis techniques and their application. Topics include dynamic and static program analysis techniques, test generation, fault localization and debugging, model inferencing, and model checking. The course includes the utilization of tools and the development of a class project that builds and improves on existing techniques.
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 basic approaches to cope with those challenges. You will learn abstractions, architectures, libraries, verification and validation approaches, simulation, and frameworks and tools to perform robot activities like motion, navigation, perception, planning, and interaction. The expectation is that his course opens up new career options in robotics for computer science students.
Fall 2020: Program Analysis and its Applications
Covid-19 Adjustments (subject to change): this class will be online, mostly with synchronous lectures and labs.
This course explores state-of-the-art automated analysis techniques and their application. Topics include dynamic and static program analysis techniques, test generation, fault localization and debugging, model inferencing, and model checking. The course includes the utilization of tools and the development of a class project that builds and improves on existing techniques.
Spring 2020: Robotics for Software Engineers
Covid-19 Adjustments (subject to change): check course website for revised schedule and expectations.
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 basic approaches to cope with those challenges. You learn to use abstractions, architectures, libraries, verification and validation approaches, simulation, and frameworks and tools to perform robot activities like motion, navigation, perception, planning, and interaction. The expectation is that his course opens up new career options in robotics for computer science students.
Fall 2019: Analysis of Software Engineering Artifacts
This course explores state-of-the-art automated techniques that make the analysis of various software artifacts, from models to code, cost-effective. Topics include dynamic and static program analysis techniques, test generation, fault localization and debugging, model inferencing, and model checking. The course includes the utilization of the latest research tools and the development of a class project that builds and improves on existing techniques.
Spring 2019: Software Engineering for Robotics
This was the first offering of this course covering specialized software engineering approaches, techniques, and tools for the development of robotic systems. Topics included domain-specific architectures and design principles, modeling robot and environmental states, abstractions for mapping, localization, and navigation, planning, control structures and properties, filtering mechanisms for sensors and actuators, and analysis, verification, and simulation for dependability.