Syllabus

Instructor


Sarah Sebo
Sarah Sebo (she/her/hers)
You can call me by my first name.
sarahsebo@uchicago.edu
personal website

Instructional TAs


Lauren Wright
Lauren Wright (she/her/hers)
llwright@uchicago.edu

Haley Breslin
Haley Breslin (she/her/hers)
hbreslin@uchicago.edu

Hardware TA


Willa Yang
Willa Yang (she/her/hers)
yunqiy@uchicago.edu

Class Meetings


Regular Class Time: Tuesdays and Thursdays, 2:00pm - 3:20pm in CSIL 2

Lab Time:

Course Resources


Course Description


This course gives students a hands-on introduction to robot programming covering topics including sensing in real-world environments, sensory-motor control, state estimation, localization, forward/inverse kinematics, vision, and reinforcement learning. This course will be centered around 3 mini projects exploring central concepts to robot programming and 1 final project whose topic is chosen by the students. Each of these mini projects will involve students programming real, physical robots interacting with the real world. The use of physical robots and real-world environments is essential in order for students to 1) see the result of their programs ‘come to life’ in a physical environment and 2) gain experience facing and overcoming the challenges of programming robots (e.g., sensor noise, edge cases due to environment variability, physical constraints of the robot and environment).

Learning Objectives


  1. You will be exposed to many of the core topics in robotics (sensing in real-world environments, sensory-motor control, state estimation, localization, forward/inverse kinematics, vision, learning). You will engage with these topics in class meetings and through the mini projects.
  2. You will gain experience programming real, physical robots in real-world environments using the Robot Operating System (ROS) both during class and for the mini projects.
  3. You will explore a topic within robotics that is of interest to you (and your teammates) through an open-ended final course project.
  4. You will grow your teaming skills by working on projects and class activities in small collaborative groups.

Course Communication


CMSC 20630 vs. CMSC 30630


If you are enrolled in CMSC 30630, your experience will be the same as that of students taking CMSC 20630, with the exception that you will be required to incorporate an element of robotics research into your final project. You will be expected to read robotics research papers and identify an algorithm or method from the research literature that you will implement as part of your final project and seek to improve in some way. You will also be expected to write a short (2-3 page) summary of the research paper(s) you read and how the algorithm/method you implemented fits into the broader context of robotics research. You will submit this summary along with your final project deliverables.

Grading


The grading in this course is based on performance in the four class projects, completion of class homeworks and labs, and participation in the course meetings. This course is NOT graded on a curve.

Project Grading

You can find details about how the specific components of each project will be assessed on the individual web pages for each project.

All of the collaborative projects (the particle filter localization project, the Q-learning project, and the final project) have a portion of the project's grade derived from an Individual Contribution and Teaming assessment. This will be determined through your responses to the partner contributions survey.

Completion of Lab Assignments and Class Meeting Exercises/Homeworks

For a majority of our labs and class meetings, you will begin exercises in lab/class that you are expected to complete for homework and submit for a grade. These submissions will be graded not for accuracy, but for effortful completion. You are expected to complete each exercise/assignment to the best of your ability. Even if your answers are not correct, you will receive full credit for making every effort to complete it to the best of your ability. Grading of each exercise within these submissions will follow:

Details about each of these submissions can be found on the individual class meeting and lab pages that you can access via the schedule page.

Class & Lab Participation

Class meetings and lab sessions will involve many hands-on activities, discussions, and project work time. You are expected to come to every class meeting prepared and ready to engage. You will receive full marks for your participation grade if you attend at least 95% of our course meetings (class meetings + lab sessions). Of course if you are unable to attend class for an excused absence (sickness, conference travel for PhD students, etc.), please reach out to the course staff to let us know, these excused absences will not count against your participation grade.

Students will be considered as late if they arrive to class or lab more than 10 minutes after the class/lab starts. Three late arrivals will be considered the same as one class/lab absence.

Flexibility

The course grading is flexible to the following exceptions without penalty:

Beyond these exceptions, if your circumstances require additional flexibility, please reach out to me.

Late Assignments

A late assignment is one that does not provide the requested deliverable in the requested format by the stated deadline. Late assignments will be docked 10% of the total grade for each 24 hour period, up to 3 days, that they are late. After three days, the assignment will receive a zero.

The only exceptions to this policy are listed in the 'Flexibility' section above and in case of emergency. If you experience an emergency, please take care of the situation at hand, and afterwards please reach out to me so that we can discuss a best path forward.

Use of Generative AI


The main objective of this class is to teach you foundational robotics algorithms. In this class, we deeply get to know these algorithms by implementing them in code through the class exercises, labs, and course projects. Similar to how you were taught long division by hand before being given a calculator to understand how division works, this class will teach you robotics algorithms "by hand" through your coding of these algorithms WITHOUT using genAI to generate your course deliverables or do all the "thinking" for you (e.g., debugging).

Therefore, in this course, our approach is to prohibit genAI use to generate code and English write-ups as well as to debug your code. However, we do permit the use of genAI as a reference (similar to Google or StackOverflow) and to edit/improve already-generated English writing. Specifically:

Policies


Academic Integrity

In this course, we abide by the University of Chicago’s Policy on Academic Honesty and Plagiarism. If you violate this policy (depending on the severity of the offense) you risk being dismissed from this course. All cases will be referred to the Dean of Students office, which may impose further penalties, including suspension and expulsion. If you have any questions about whether an activity or written work would constitute cheating or plagiarizing, please ask.

With respect to this course, I expect that you will not copy anyone else's code (either within the class or from sources online) nor generate code or English write-ups using genAI (as detailed above). For the assignments that are to be completed in pairs or in small teams, you may of course look at your team members' code and help each other develop your programs. For communications with others in the course, excluding team members for assignments, I expect you to refrain from looking at one another's code. If you do seek help from your peers, I suggest discussing your issues more generally, posting questions on Slack, or reach out to the teaching team.

Course Staff Code of Conduct

Course staff in this class are required to abide by this Course Staff Code of Conduct. We’ve written this code of conduct not because we expect bad behavior from our staff, but because we believe a clear code of conduct is an important piece in creating inclusive spaces, particularly in CS. We share this code of conduct with you (the students) so you know the expectations we have set for our staff and, while we expect and hope they will scrupulously follow this code of conduct, you should let us know if you witness or experience a code of conduct violation. This will allow us to continue to improve the student experience in this class, and to prevent any issues from reocurring.

Please report any code of conduct violations to Sarah Sebo, via e-mail (sarahsebo@uchicago.edu). If you would prefer to speak with someone who is not affiliated with this class, please contact Ravi Chugh (rchugh@cs.uchicago.edu), Director of Undergraduate Studies. All reports that do not involve sexual misconduct will be treated confidentially, and your identity will not be shared with any of the involved parties. If you share a report of sexual misconduct that are subject to Title IX with either course staff or the Director of Undergraduate studies, we will report the incident with the UChicago Title IX Coordinator (since we are mandatory reporters), beyond which we will treat the report confidentially.

Inclusive Classroom

I stand with the University of Chicago in my dedication to "creating an environment where people of different backgrounds feel valued and where their ideas and contributions can flourish" (see UChicago’s Diversity Commitment Statement). I strive to make this classroom environment one where the diverse backgrounds and perspectives of each individual are valued and included for the benefit of us all, including gender identity, sexuality, disability, generational status, socioeconomic status, ethnicity, race, religion, national origin, and culture. I expect that all class related interactions will be conducted with mutual respect, open communication, and non-discrimination. If you have any suggestions for how we can better promote an inclusive and open environment, please reach out to me.

Accommodation

The University of Chicago and I are committed to ensuring equitable access to academic programs and services. Students with disabilities who have been approved for the use of academic accommodations by Student Disability Services (SDS) and need a reasonable accommodation(s) to participate fully in this course should follow the procedures established by SDS for using accommodations. If you have a disability accommodation, please provide me with a copy of your accommodation determination letter from Student Disability Services as soon as possible. I'm also more than happy to meet with you to discuss any of your access needs for this course after you have completed the SDS procedures for requesting accommodations.

Sexual Misconduct

The University of Chicago is "committed to taking necessary action to stop, prevent, and remedy instances of sexual misconduct" (see the University of Chicago’s website for the Office for Sexual Misconduct Prevention and Support). Title IX prohibits discrimination on the basis of sex, including sexual assault, sexual abuse, sexual harassment, dating violence, domestic violence, and stalking. Sexual misconduct is unacceptable at the University of Chicago, including any interactions that occur related to this course.

If you would like to speak confidentially about an incident of sexual misconduct, want more information about filing a report, or have questions about school policies and procedures, please contact our Title IX Coordinator. In certain situations, the University may have an institutional obligation to respond to a report of sexual misconduct. Additionally, as a faculty member, I am required by Title IX and the University of Chicago to report incidents of sexual misconduct, even if I am requested to keep the information confidential.

Wellness

As you pursue your education, your health and overall wellbeing is extremely important. Do your best to maintain a healthy lifestyle this quarter by eating well, exercising, getting enough sleep, and taking time to relax. Despite our best efforts, all of us benefit from support at times. Asking for support when a problem is small can help keep it from growing larger, but there is no wrong time to ask for help. If you or someone you know could benefit from mental health services, I strongly recommend that you reach out to UChicago Student Wellness, whose services do not come at any additional cost to students. Additionally, If a personal emergency arises that may impact your work in this course, please alert me so that the appropriate arrangements can be made.

Acknowledgments


This course would not be what it is today without the help of UChicago CS Techstaff (especially Colin Hudler and Justin Laughlin), who have enabled students to set up environments on their computer or in CSIL for programming the turtlebots. This course has also been made possible through the work and assistance of many UChicago undergraduate students and TAs who have assembled and maintained our turtlebots, designed and implemented course exercises and projects, and helped to update the course curriculum. I specifically want to thank Jason Lin, Stephanie Kim, Kendrick Xie, and Danny Lingen who spent time during summer internships or the academic year upgrading and updating robots and course curriculum. I also thank prior course TAs who have each improved the delivery and implementation of this course: Pouya Mahdi Gholami, Yves Shum, Alex Zhang, Valerie Zhao, David Wu, Kenneth Humphries, Lauren Wright, Teddy Ayalew, Timmy Lin, Haley Breslin, and Willa Yang. The design and implementation of this course was greatly shaped by Paul Ruvolo and his A Computational Introduction to Robotics course taught at Olin College of Engineering (where I did my undergrad). The policies outlined in this syllabus was informed and adapted from those of Henny Admoni, Ravi Chugh, Blase Ur, and Marshini Chetty.