Perceiving and Responding
July 10 – 29, 2022
Computer Science is a rich academic field that studies the computational structures and processes that appear throughout the natural and human worlds. The SLAI Computer Science Program approaches computer science with a liberal arts perspective, looking more broadly than programming alone.
Students who attend the program will learn about finding computational solutions to two broad areas of interest: problems where the computer needs to perceive something about the world in which it exists, or alternatively problems where the computer needs to respond appropriately given a complex scenario. Participants will do this by attending classes, participating in hands-on lab activities, and working in small teams on projects directed by college faculty and mentored by undergraduate teaching assistants.
The program culminates with a research symposium where students share the results of their work with each other and the broader community.
Academic Credit Information
Summer Carls can earn Carleton course credits for successfully meeting faculty expectations and completing course requirements. Students will receive 6 Carleton credits (typically transfers as three semester credits) for successful completion of this program.
In addition to receiving written feedback about course performance from faculty, students will receive one of the following three possible grade designations: satisfactory (S), credit (Cr), or no credit (NC). Formal academic transcripts are available upon request for Summer Carl alumni and will reflect the name of the course and grade earned.
Of the multiple course topics listed on this page, Summer Carls will explore some topics in morning classes and one topic in an afternoon research group.
View SLAI’s Academic Structure Guide to learn more about how you can shape your program experience to fit your interests this summer.
Courses and Faculty:
Click on each topic below to view the course description and faculty information.
Robotics plays an important role in computing; it’s the way in which computers can make a physical difference in the world around them. Applications for robots include exploration, rescue operations, manufacturing, entertainment, making social connections, and so much more. Robots have also been the basis for much research in artificial intelligence.
This topic will be offered at two levels:
Research Section: “Creative Robot Programming”
(for beginners and students with limited programming experience)
This research section is specifically designed for students who are relatively new to programming. We’ll be first looking at getting robots to perform a variety of basic tasks, which might include performing choreographed dances, interacting with a person, finding objects of interest, and avoiding obstacles. We’ll be doing all of this using LEGO Spike Prime robots, and learning how to program them with either Scratch or Python, depending on expertise level of the student. We’ll then move to research projects where students will work on in teams, which might include designing a robot pet, making a robotic soccer player, navigating through a labyrinth, or any number of other potential possibilities. Students working on these projects will build and program robots that can decide on appropriate actions to achieve goals set by the students, and to do so in a changing physical environment.
Weeks 2 and 3 Class: “Robotics Algorithms”
In this course, our primary focus will be on understanding and implementing algorithms to solve a variety of robotics problems. The course will feature opportunities for students to work in teams on activities such as getting the robot to explore its world — by remote control or on its own — as well as learning how to solve problems for itself. We’ll look at particular concepts and designs such as hierarchical and reactive architectures, reinforcement learning techniques, finite state machines, and PID control. You’ll then be implementing those techniques and improving on them with LEGO Spike Prime robots and programming them in Python.
Dave Musicant is a professor of computer science at Carleton, where he has been since 2000. He received his Ph.D. in computer sciences from the University of Wisconsin-Madison in 2000. His research interests span across solving machine learning and data mining problems, collaborative human/computing systems, and computer science education. Dave regularly teaches Introduction to Computer Science, Data Structures, Artificial Intelligence, Database Systems, Programming Languages, Parallel and Distributed Computing, Data Mining, and “Art, Interactivity, and Robotics.”
Professor Musicant is the Director of the Summer Computer Science Program.