Engin 101 credit

Robotics 102 satisfies the prerequisite requirement for EECS 280. The introductory programming requirement for Enginnering majors (e.g., Engin 101, Engin 151) can be satisfied by Robotics 102 for the following majors: BME, CS-Engin, CS-LSA, NAME, and Robotics. This course is the second offering of Robotics 102 that is part of the new Michigan Robotics Undergraduate Program.

Learning Objectives & Course Pathways

Robotics 102 is a robotics-friendly pathway into the computing disciplines and engineering more broadly.

Robotics 102 is about learning computer programming for the C++ and Python languages in a way that builds understanding of artificial intelligence and its algorithmic foundations. The course uses the application of autonomous robot navigation for students to think through problems computationally as graphs and graph algorithms. Similar in aims to Engineering 101, Robotics 102 prepares students for further courses in computer science, such as Data Structures (EECS 280), and the use of computing across engineering disciplines. This course also provides introductory coverage of topics in artificial intelligence such that students understand the general approaches to AI by putting them into practice on real robots. In complement with Robotics 101 (Computational Linear Algebra), this introductory course builds into further study of Robotics and AI by undergraduates, including those for mobile robotics, robot perception, autonomous robotics, computer vision, and machine learning.


Robotics 102 has no prerequisites. Students are expected to be fluent in algebra and willing to think algorithmically.

Course Meetings: Flipped Classroom

Robotics 102 is taught using a flipped classroom hybrid format. All lectures will be pre-recorded and available online through this course website. In-person course lecture meetings will be used for brief (but required) course activities, question-and-answer discussions, and additional office hours for interactive help with course projects. There will also be occasional field trips to see interesting robots. In-person lab sections will be dedicated to topics for course projects, primarily for coding and robot projects. Students seeking help during office hours must watch all lectures that have been assigned up to the current date. Everyone in Robotics 102 must comply with the public health policies of the University of Michigan.


Similar to Engineering 101, all technical information that you need for Robotics 102 will be presented in lectures and lab. However, if you’d like to look at a more traditional textbook, one option is the Bielajew C++ Book used as an optional reference by Engineering 101. Be aware that this textbook does NOT provide a one-to-one correlation to how C++ is taught in this course. So, use this as a resource only.

Projects & Grading

Robotics 102 will assign 5 programming projects, 4 quizzes, and a number of class activities. Each project has been decomposed into a collection of features, each of which is worth a specified number of points. Robotics 102 project features are graded as "checked" (completed) or "due" (incomplete). Prior to its due date, the grading status of each feature will be in the "pending" state.

Individual final grades are assigned based on the sum of points earned from coursework (detailed in subsections below). The timing and due dates for course projects and activities will be announced on an ongoing basis. The official due date of a project is listed with its project description. Due dates listed in the course schedule are tentative and subject to change. All project work must be checked by the final grading deadline to receive credit.

Each fully completed project is weighted as 15 points. The weight of an particular class activity will be specified with that activity. Each question on a quiz will be weighted as one point.

Based on this sum of points from coursework, an overall grade for the course is earned as follows:

  • An A- grade in the course is guaranteed if graded coursework sums to 93 points or above,
  • A B- grade in the course is guaranteed if graded coursework sums to 83 points or above,
  • A C grade in the course is guaranteed if graded coursework sums to 73 points or above.

The instructor reserves the option to assign appropriate course grades with plus or minus modifiers.

Asynchronous/In-class Activities

Each activity will be worth 1 point, graded as "checked" (completed) or "due" (incomplete). Points will be awarded up to a maximum of 8 points total. Activities will be completed and submitted through Replit. The assignment deadline will be posted with its description.

Advanced Extensions

Students have the opportunity to earn up to 4 additional points through an advanced extension of a course project. Advanced extensions are due by the course final grading deadline (December 9, 2022) and do not need to be completed for the deadlines of each assignment.

Grading Breakdown

Points for ROB 102 are divided as follows, for a total of 100 points. In addition, up to 4 advanced extension points can be earned.

Description Points
  • Project 0: 15 points
  • Project 1: 15 points
  • Project 2: 15 points
  • Project 3: 15 points
  • Project 4: 15 points
Quizzes (4 x 3 points each) 12
In-class activities (8 x 1 point each) 8
Participation 5
Advanced extensions (optional) 4
100 ( +4 )

Project Submission & Regrading

Git repositories will be used for project implementation, version control, and submission for grading. We will be using Github Classroom to generate and manage student repositories. You will submit your project by updating the main branch of your repository and creating a tag for your submission. Updates to the main branch and tags must be committed and pushed prior to the due date for each assignment for any consideration of full credit. Your implementation will be checked out and executed by the course staff. Through your repository, you will be notified by the course staff whether your implementation of assignment features is sufficient to receive credit.

Late Policy

Do not submit projects and assignments late. The course staff reserves the right to not grade late submissions. The course instructor reserves the right to decline late submissions and/or adjust partial credit on regraded assignments.

If granted by the course instructor, late submissions for projects and activities can be graded for partial credit, with the following guidelines.

  • Submissions pushed within two weeks past the project deadline will be graded for 80% credit.
  • Submissions pushed within four weeks of the project deadline will be graded for 60% credit.
  • Submissions pushed at any time before the semester project submission deadline (December 9, 2022) will be considered for 50% credit.
As a reminder, the course instructor reserves the right to decline late submissions and/or adjust partial credit on regraded assignments.

Regrading Policy

The regrading policy allows for submission and regrading of projects and activities up through the final grading of projects, which is December 9 for the Fall 2022 Semester. This regrading policy will grant full credit for submissions made before the corresponding project deadline. If a feature of a graded project is returned as not completed (or "DUE"), your code can be updated for consideration at 80% credit. This code update must submitted within two weeks from when the originally graded project or activity was returned. Regrades of projects updated beyond this two week window can receive at most 60% credit. The course staff will allow one regrade for each grading iteration.

Completed Features Policy

All checked features must continue to function properly in your repository up through the final grading deadline (December 9, 2022). Checked features that do not function properly for subsequent projects will be treated as a new submission and subject to the regrading policy.

Final Grading

All grading will be finalized on December 9, 2022. Regrading of specific assignments can be done upon request during office hours. No regrading will be done after grades are finalized.


Repositories for your project code will be generated using GitHub Classroom assignments. A link to accept the assignment will be available in the description of each project. Accepting the assignment will create a new repository with your GitHub username appended to the name. It will be initialized with the provided template code for the assignment. You and the course instructors will both have read / write access to this repository. GitHub accounts are free to create and use.

There are many different tutorials for learning how to use git repositories. For those new to version control, we realize git has a significant startup overhead and learning curve, but it is definitely worth the effort. This course will provide materials for getting started with git and using appropriately for course projects. A brief tutorial is available on the course website. If you are looking for more resources, the Pro Git book provides an in-depth description of git and version control. As different people often learn through different styles, the Git Magic tutorial has also proved quite useful when a different perspective is needed. git: the simple guide has often been an accessible quick start resource.

We expect students to use these repositories for collaborative development as well as project submission. It is the responsibility of each student group to ensure their repository adheres to the Collaboration Policy and submission standards for each assignment. Submission standards and examples will be described for each assignment as needed.

IMPORTANT: Do not modify the directory structure in the template code. Repositories that do not follow the directory structure will not be graded.

Code Maintenance Policy and Branching

This section outlines expectations for maintenance of source code repositories used by students for submission of their work in this course. Repositories that do not maintain these standards will not be graded at the discretion of the course staff.

Code submitted for projects in this course must reside in the main branch of your repository. The directory structure provided in the stencil must not be modified.

The main branch must always maintain a working (or stable) version of your code for this course. Code in the main branch can be analyzed at any time with respect to any assignment whose due date has passed. Improperly functioning code on the main branch can affect the grading of an assignment (even after the assignment due date) up to the assignment of final grades.

The main branch must always be in compliance with the Michigan Honor Code and Michigan Honor License, as described below in the course Collaboration Policy. To be considered for grading, a commit of code to your main branch must be signed with your name and the instructor name at the bottom of the file named LICENSE with an unmodified version of the Michigan Honor License. Without a properly asserted license file, a code commit to your repository will be considered an incomplete submission and will be ineligible for grading.

If advanced extension features have been implemented and are ready for grading, such features must be listed in the file "advanced_extensions.txt" in the top level directory of the main. Advanced extension features not listed in this file may not be graded at the discretion of the course staff.


Students are encouraged to update their repository often with the help of branching. Branching spawns a copy of code in your main branch into a new branch for development, and then merging integrates these changes back into main once they are complete. For example, to revise your work for resubmittion, you might create a my-resubmission branch while it is under development. This will keep your main branch stable. Once you are confident in your implementation, you can merge your my-resubmission branch back into the main branch. This configuration allows your work to be continually updated and built upon such that versions are tracked and grading interruptions are minimized.

Collaboration Policy

This collaboration policy covers all course material and assignments unless otherwise stated. All submitted assignments for this course must adhere to the Michigan Honor License (the 3-Clause BSD License plus an attribution clause and an academic integrity clauses).

Course material, concepts, and documentation may be discussed with anyone. Discussion during quizzes or examinations is not allowed with anyone other than a member of the course staff. Assignments may be discussed with the other students at the conceptual level. Discussions may make use of a whiteboard or paper. Discussions with others (or people outside of your assigned project group) cannot include writing or debugging code on a computer or collaborative analysis of source code. You may take notes away from these discussions, provided these notes do not include any source code.

The code for your implementation may not be shown to anyone outside of your assigned project group, including granting access to repositories or careless lack of protection. For example, you do not need to hide the screen of your computer from anyone, but you should not attempt to show anyone your code. When you are done using any robot device such that another group may use it, you must remove all code you have put onto the device. You may not share your code with others outside of your group. At any time, you may show others the implemented program running on a device or simulator, but you may not discuss specific debugging details about your code while doing so.

This policy applies to collaboration during the current semester and any past or future instantiations of this course. Although course concepts are intended for general use, your implementation for this course must remain private after the completion of the course. It is expressly prohibited to share any code previously written and graded for this course with students currently enrolled in this course. Similarly, it is expressly prohibited for any students currently enrolled in this course to refer to any code previously written and graded for this course.

IMPORTANT: To acknowledge compliance with this collaboration policy, append your name to the file "LICENSE" in the main directory of your repository with the following text. This appending action is your attestation of your compliance with the Michigan Honor License and the Michigan Honor Code statement:

"I have neither given nor received unauthorized aid on this course project implementation, nor have I concealed any violations of the Honor Code."

This attestation of the honor code will be considered updated with the current date and time of each commit to your repository. Repository commits that do not include this attestation of the honor code will not be graded at the discretion of the course instructor.

Should you fail to abide by this collaboration policy, you will receive no credit for this course. The University of Michigan reserves the right to pursue any means necessary to ensure compliance. This includes, but is not limited to prosecution through The College of Engineering Honor Council, which can result in your suspension or expulsion from the University of Michigan. Please refer to the Engineering Honor Council for additional information.

Student Wellness & Equal Opportunity

Commitment to equal opportunity

We ask that all students to treat each other with respect. As indicated in the General Standards of Conduct for Engineering Students, this course is committed to a policy of equal opportunity for all persons and does not discriminate on the basis of race, color, national origin, age, marital status, sex, sexual orientation, gender identity, gender expression, disability, religion, height, weight, or veteran status. Please feel free to contact the course staff with any problem, concern, or suggestion. The University of Michigan Statement of Student Rights and Responsibilities provides greater detail about expected behavior and conflict resolution in our community of scholarship.

Accommodations for Students with Disabilities

If you believe an accommodation is needed for a disability, please let the course instructor know at your earliest convenience. Some aspects of this course, including the assignments, the in-class activities, and the way the course is usually taught, may be modified to facilitate your participation and progress. As soon as you make us aware of your needs, the course staff can work with the Services for Students with Disabilities (SSD, 734-763-3000) office to help us determine appropriate academic accommodations. SSD typically recommends accommodations through a Verified Individualized Services and Accommodations (VISA) form. Any information you provide is private and confidential and will be treated as such. For special accommodations for any academic evaluation (exam, quiz, project), the course staff will need to receive the necessary paperwork issued from the SSD office by the Add/Drop deadline, September 19, 2022.

Student mental health and well being

The University of Michigan is committed to advancing the mental health and wellbeing of its students. If you or someone you know is feeling overwhelmed, depressed, and/or in need of support, services are available. For help, please contact one of the many resources offered by the University that are committed helping students through challenging situations, including: U-M Psychiatric Emergency (734-996-4747, 24-hour), Counseling and Psychological Services (CAPS, 734-764-8312, 24-hour), and the C.A.R.E. Center on North Campus. You may also consult University Health Service (UHS, 734-764-8320) as well as its services for alcohol or drug concerns. There is also a more comprehensive listing of mental health resources available on and off campus.