CMSC150 - Introduction to Computing

Students learn the fundamentals of computational thinking and apply it to solve problems using the Python programming language. Topics include basic concepts in computing, decision making, iteration, string processing, common data structures (e.g. lists, dictionaries), and object oriented programming. Students will also develop a semester-long project that builds their software building skills using common development tools and version control.

Semesters taught: Fall 2023, Spring 2024

CMSC322 - Software Engineering

Students learn the processes and tools to build high quality software systems. Topics include capturing customer requirements, Agile development processes, UML system modeling, architecture design, and desing patterns. Additionally, students learn how to collaborate with members of a software development team using modern version control and project management tools. A significant software project motivates the learning of the theoretical and practical concepts and provides students with the experience to join industry software teams.

Semester taught: Fall 2023

CMSC395 - Introduction to Autonomous Robotics

In this course, students will learn how to model robotic motion and develop algorithms that enable robots to maneuver autonomously in the world. We will explore this exciting field through four modules: modeling, control, perception, and learning. Topics include kinematic and dynamic modeling, navigation with reactive feedback controllers, path planning, sensor fusion and perception, and reinforcement learning. Students will apply these algorithms with small projects throughout the semester. This course will run in a workshop-style, where lecture and lab are integrated into each class session. Prior knowledge in differential equations and probability will be helpful, but not required.

Semester taught: Spring 2024

CMSC340 - Autonomous Robotic Teams (Independent Study)

I maintain an active research independent study that prepares students for summer research in the HIVE Lab. Students engage in closed- and open-ended projects to learn more about autonomous robotics as well as the technologies needed to collaborate with humans in dynamic environments.

Run every semester!

Back to teaching…