ENGR 101 | University of Michigan

ENGR 101: Introduction to Computers and Programming

Using Computing to Solve Engineering Problems

Syllabus Fall 2023

Course Overview

Engineering 101 focuses on using your computer to solve engineering problems through computer programming. Many engineering problems involve repetition – getting data and doing the same calculations over and over again. Automating this process, using programming, saves time and minimizes errors in these calculations. Engineers have more and more data to work with, so developing computer programs is now a part of almost every modern engineering project.

One of the core concepts of the course is the concept of an algorithm: a well-defined set of steps that achieves a particular goal. Constructing an algorithm for a given purpose is fundamental in every engineering design task. Algorithms help us break down large, complex problems into smaller problems that we can solve separately and then weave back together to give us a final answer. In this course, you will learn how to create algorithms for solving engineering problems, and then how to write those algorithms in a programming language that the computer can understand.

There are literally hundreds of different computer programming languages. The choice of programming language depends on what you are trying to do and how you are trying to do it. In this course, we will use two different programming languages: MATLAB and C++. Essentially, the course is split into two half-semester “mini-courses”, each focusing on a different programming language. We will show how MATLAB is a good choice of language if you need to process numerical data and make graphs summarizing your analysis. We’ll then switch over to C++, a language that illuminates more of the inner workings of computer programs and is a good choice for coding algorithms that require complex control flow to make several decisions over time.

This course has an individual work component and a collaborative lab and project component. In the weekly homework, you will be introduced to the various skills and concepts you will use in this course via PrairieLearn. In lab, you will practice these skills, and then you will put them to use in the projects (some of which are partner optional). Homework consists of the weekly homework, lab assignments, projects, and lecture reflection forms. There are four assessments in the course, covering cumulative amounts of material as the semester goes on. Two assessments will be focused on MATLAB, and two will be focused on C++.

Our goal is that you leave this course with experience in logically breaking down a large problem into smaller problems that are more easily solved and with an appreciation for how critical computer programming is for all engineering disciplines.

All course content is accessible at or through our course website at engr101.org.


Here is contact information for all the course staff. If you have a technical question, please use the Piazza forum (see e-mail policy below). Otherwise, please do email us with any questions or concerns that you have about class. We’re very happy to set up one-on-one meetings. You can also reach all of the course staff at engr101staff (at) umich.edu.


Laura Alford laura.alford (at) umich.edu
Lesa Begley labegley (at) umich.edu

Course Coordinator

Theo Landman engr101coursecoordinator (at) umich.edu

Graduate Student Instructors (GSIs)

Alexios Avrassoglou alexiosa (at) umich.edu
Reid Backus rbackus (at) umich.edu
Isha Bhatt ibhatt (at) umich.edu
Eric Dubbert edubbert (at) umich.edu
Brendan Jackson brendjac (at) umich.edu
Roxana Martinez roxmtz (at) umich.edu
Meredith Thibeault thibeaum (at) umich.edu
Nick Tran nicktran (at) umich.edu

Instructional Aides (IAs)

Emily Abrams esabrams (at) umich.edu
Megan Beemer mrbeemer (at) umich.edu
Danny Colon dcolon (at) umich.edu
Lena Elkoussy lelk (at) umich.edu
Vijaya Kukutla vkukutla (at) umich.edu
Zachary Mathews zmathews (at) umich.edu
Meghan Mojica mojicam (at) umich.edu
Kailey Neubecker kneubeck (at) umich.edu
Alyssa O’Brien alyssaob (at) umich.edu
Divya Pothavajhyula divyabp (at) umich.edu
Nate Sochocki natesoch (at) umich.edu
Sai Vaka saivaka (at) umich.edu
Thomas Westman thwestma (at) umich.edu
Vivian Yuan vyuan (at) umich.edu

Email Policy

We do not answer technical questions via email. In order to save everyone time, we want all students to have the benefit of seeing each question and its answer, so please use Piazza instead (more information on Piazza is in the Online Tools section).

For anything other than technical questions, including advice on majors, student project teams, that you need to miss lab, etc., please do email us! We are always happy to talk. Your lab instructor (the GSI or IA who leads your lab) is your best first contact about anything at all. Each GSI and IA has time set aside in their job description for answering emails from students, so send them your questions, concerns, and ideas!

Do not send us emails asking “Can I get partial credit on this assignment even though the due date has passed?” or “I’m only X% away from an A-, is there anything I can do?”. We do not adjust grades based on requests from individual students, and it is inappropriate to ask.

Course Meeting Times (Lecture & Lab)

Lectures and labs will meet in-person. There will be no remote attendance option; however, lectures are recorded for later viewing. If you find yourself unable to attend in-person class for an extended period of time (e.g. several weeks or more), please email your lab instructor (GSI/IA) to let them know what is going on and we will work with you to come up with a plan that will allow you to complete work on time.

The general course “cadence” looks like this for each week:

Day of the Week Meeting Type Description Completion Required? Recorded?
Monday Asynchronous Homework learn new concepts/skills using an interactive, online platform Yes N/A
Tuesday Lecture work through a programming application using the concepts and skills you learned in the homework; project overviews and project planning Yes Yes
Wed/Thurs/Fri Lab hands on practice with new concepts/skills Yes No

Read on for more detailed descriptions of lectures, homework, and labs.

Weekly Homework & Lectures

We want to make the best use of your time spent in class. We have found that learning the core concepts of programming works best when you use an interactive, online platform. Therefore, we are going to use our lecture time a little differently than other large courses. Instead of having three hours of lecture each week to learn and practice course content, we have split that time into asynchronous homework done on your own and one in-person lecture per week.

Weekly homework consists of short videos and interactive work hosted on PrairieLearn, an online learning platform. This weekly homework will be done individually and asynchronously, though we encourage you to form study groups and work on the homework together with other students. Completion of the weekly homework is required for a grade. More information on logging into PrairieLearn will be provided separately from this syllabus. PrairieLearn homework assignments are due on Mondays so that everyone is ready for that week’s lecture and lab (labs run Wednesdays-Fridays). You can work ahead on the homeworks if you want to or if you know that you have a busy week coming up in your other classes.

Lectures are on Tuesdays and will give you additional exposure to, and practice with, the new concepts you just learned in PrairieLearn. ENGR 101 is about “using computing to solve engineering problems”, and our lectures will give us the opportunity to look at an engineering problem and then work through how to use computing to solve that problem. This includes overviews of the projects and some project planning, so be extra sure to attend those lectures! There will be live coding, so bring your computer if you have one so you can follow along with your instructor. The lectures are recorded, and you will need to complete a reflection form by the due date to receive credit for “attending” the lecture, whether you attended in-person or watched the recording. You may attend whichever lecture section works best with your schedule.


There will be a two-hour lab that will meet in-person. Your lab will meet at the posted time and location on Wolverine Access. Labs are your time to practice the concepts you learned in PrairieLearn through hands-on programming. Labs are also a time when you can get to know other students in your class!

Lab Attendance Policy

Attendance at lab is required, and 10% of your lab grade is attendance.

You must arrive within 30 minutes of the start of your lab or you will be marked “late”. The first time you are marked late, you will still be given credit for completing the lab. If you are late to any subsequent labs, we will have to give you a zero for that lab’s attendance score.

If you know that you will need to miss part or all of lab for a scheduling/logistical issue (e.g. an exam for another class, an advising appointment, an interview for an internship, etc.), then please email your lab GSI/IA at least 24 hours prior to the start of your lab. Your lab GSI/IA will help you find a different lab section to attend that week.

If you have to completely miss lab for a given week (you don’t feel well, you have to travel out of town, etc.), please email your lab GSI/IA to let them know you won’t be there as a courtesy to your GSI/IA because your absence affects the lab groups they will be forming. You will be marked absent, so you will not receive the attendance points for that lab, but you can make up these missed points by completing some extra credit. You are still responsible for completing the lab worksheet on your own and turning it in by the due date.

Online Tools

We will be using a variety of online tools and platforms in ENGR 101. One of the most important skills good engineers have is the ability to find quality things (skills, items, tools, documentation, whatever is needed) and assemble them together to solve an engineering problem. We will model this skill by pulling together quality resources for you to use in ENGR 101. The course website will be your starting point for accessing these course resources.

We acknowledge that it is more than a bit absurd that we are using so many different online platforms for one course; we’re sorry about that. Each of these platforms does something specific that we need that the other platforms can’t do right now. We’re in the process of trying to re-envision different aspects of the course so that we can use fewer online platforms, but for now, this is what we got. Don’t forget – you can always just go to the course website and click on links!

Important Tip!

Using these online tools and resources almost always requires you to be signed in using your U-M Google Account. Our best piece of advice for managing your personal accounts and your U-M account is to use one browser for U-M things (e.g. Chrome, Firefox) and a different browser (e.g. Safari, Edge) for your personal things. Doing this will save you much frustration!

Course Website

The course website is at engr101.org. This is your starting point. The website shows everything going on in the course for the current week, contains a detailed schedule of topics, and has links to all other course resources.

A detailed schedule of topics – including assignment due dates and assessment dates – is available on the course website. Please check this before asking questions.

As you start to become more familiar with the resources, you might find that you want to organize them in different ways. Maybe you end up bookmarking the course google drive, or you leave a tab open for Piazza, or whatever you find works well for you.


PrairieLearn is the name of the platform that hosts our asynchronous weekly homework, the lecture reflections, and the assessments. Most weeks will have around three homework assignments due (remember that this course has replaced some of its lecture time with homework time, so that’s why it seems like there are “so many” homeworks due each week).

Canvas and Announcements

You can see a listing of course assignments and your grades on Canvas.

Make sure you are set up to receive course announcements on Canvas, since we will post critical information there.

Google Drive

We will place course material, such as lecture slides and lab worksheets, in our course google drive. There will be direct links to these materials on the course website, so you can just use those if you want to.


We will be using Piazza to host a course forum and asynchronous Q&A. You are encouraged to read this regularly and post technical questions as it will be a significant source of help on the projects.

Please search before posting to avoid re-asking questions that have already been answered.

It is important that you do NOT post your own solutions, project code, test cases, or output to the forum. If you have a question about any of these things, use a private post (visible only to instructors).

To help us help you faster, please follow the directions in the Piazza Welcome Post to update your display name to include your uniqname.

Course staff will answer questions on Piazza throughout the day from roughly 10am-10pm. You may expect relatively prompt answers to your questions, but not immediate responses from the course staff, so please plan accordingly. At 10pm, the course staff stop answering questions on Piazza for the day; any questions that come in overnight will be answered the following day. Of course, students are encouraged to answer each others’ questions! This is not a curved class, so help each other out!


The Autograder is a web-based tool that tests your program against a set of test cases. These test cases check to see if your program does what it is supposed to do and gives you feedback if your program doesn’t do what it is expected to do. All project code will be submitted to the Autograder, and we may use the Autograder for other exercises in lecture or lab.


Gradescope is an online platform that we will use for submitting lab worksheets. The lab worksheets are saved as .pdf files and submitted to Gradescope where a grader will check to see if you have completed the worksheet.


ECoach is a personal coaching system that allows you to receive personalized assistance in this large class, learn best practices, discover opportunities in areas of interest, and avoid common pitfalls. Here is a video that describes ECoach and shows what it looks like. In particular, we use ECoach to host the “corporate memory” of this course. In other words, this is where we store all of the tips and tricks that we’ve gathered from students over the years. It is also where the beginning/end of term surveys (which are worth extra credit) are located, extra programming resources, reach goals for projects, and assessment-taking tips. You can access ECoach from the course website; make sure you register for ECoach!

We often receive feedback from former students along the lines of “tell people to use ECoach sooner!

IMPORTANT: ECoach is a service operated by the University. We coordinate with them on content, but we don’t handle anything about the operation of ECoach. If you have any questions at all about ECoach, please email ecoach-support (at) umich.edu.

Lobster and MatCrab

Lobster and MatCrab are interactive visualization tools for C++ and MATLAB developed by Dr. James Juett in the EECS - Computer Science and Engineering Department here at U-M. Lobster and MatCrab are embedded in some of our PrairieLearn exercises, but you can also use them on your own!

Updating Your Name and Pronouns in U-M Online Tools

If you did not update your preferred name and pronouns during orientation, or if those descriptions of you have changed since then, we would greatly appreciate it if you take a minute to make sure this information is up to date for us.

Updating/setting preferred name and pronoun in Wolverine Access

Go to Student Business. Then select Campus Personal Information. The option to change your preferred name will be under Names. Then go to the tab Gender Identity to set your pronoun. Your preferred name and pronoun will now show up on our course roster and in Canvas, helping us to learn who you are faster!

Updating/setting pronoun in Zoom

When you log into U-M’s Zoom, Zoom will display the preferred name that you have listed in Wolverine Access. However, it currently won’t bring over your pronoun. To update/set your pronoun in zoom, go to umich.zoom.us and log in with your U-M Google account. Then go to Profile on the left-hand sidebar, and click Edit next to your name (see example below). Adding your picture and your pronouns will help your instructors (including us!) learn who you are faster!

screenshot from zoom

Recording your name in Canvas

You can record yourself saying your name in Canvas using NameCoach so that we know how to correctly pronounce your name. Here are instructions on how to record your name in NameCoach. Hearing your voices will help us to learn who you are faster, and we appreciate your taking the time to set all this stuff up!

Office Hours

Office hours are a core part of ENGR 101. Office hours are a chance to ask questions, get help with projects, and get to know the course staff. Office hours are listed on the course website. See the “Guide to Office Hours” on the website for more information about how to attend office hours. The best time to come to office hours is right after a project is released!

The professors will also hold office hours. Please see the schedule on the course website.

Programming Environment

For this course, you may work on your own computer or log in to your UM CAEN computing account (either remotely or in-person in a CAEN computer lab). Everyone enrolled in the College of Engineering or is registered for ENGR 101 should receive a CAEN account no later than the first day of classes. If you do not have a CAEN account please see: http://caen.engin.umich.edu/accounts/obtain.

We will provide instructions for installing and configuring MATLAB and VS Code (for C++ programming) separately from this syllabus. Note: we officially support MATLAB and VS Code for code development. For programs written in C++, you are free to develop on any platform you like, but you may use only ANSI/ISO standard C++11, and are responsible for any differences between your preferred platform and the grading platform. We will grade all your C++ programs on an autograder system running in a Linux environment and they must compile (where applicable) and run correctly in this environment.

Textbooks (Optional, Reference Only)

All technical information that you need for this class will be presented in the weekly homework and in lecture/lab. However, if you’d like to look at a more traditional textbook, here are a couple you can use. Be aware that these are NOT a one-to-one correlation to how we teach MATLAB and C++ in this course. So, use these as resources only.

MATLAB : A Practical Introduction to Programming and Problem Solving, 3rd Edition, Stormy Attaway, 2013 (ISBN: 0124058760). Available (free for UM students) online at: http://www.sciencedirect.com.proxy.lib.umich.edu/science/book/9780124058767

Bielajew C++ Book


All assignments are due at 11:59pm (NOT 11:59:59pm) Eastern Time Zone (Ann Arbor time) on the due date. For late submissions, please see the Deadlines & Late Submission Policy section.

The next sections give a high level overview of the different assignment types.


Core course content will be delivered asynchronously as weekly homework on the PrairieLearn online platform. PrairieLearn work is due on Mondays, and there will be 1-4 assignments due each week, depending on where we’re at in the semester (some weeks will not have homework due). Each assignment should take approximately one hour to complete, and this work is balanced with the other work that is going on in the course at the time. The weekly homework will be linked on the course website.


Lectures will have a lecture reflection associated with them. You will need to attend (or watch the recording) of the lectures, and complete the lecture reflection to receive credit. The lectures will be a mixture of things: the first day of class “welcome to ENGR 101” lecture, technical demo sessions led by the instructors, talks by people from industry, and debugging practice. The weekly agendas on the course website will have the information for each lecture.


Labs will meet once a week at their times posted on Wolverine Access. Labs meet in a CAEN lab in the basement of Pierpont Commons on North Campus. You will work in a group of four to collaboratively complete the lab exercises. Your lab instructor (one of our excellent GSIs or IAs) will lead the lab and be available throughout the lab period to answer questions, clarify concepts, and periodically check in with your group to make sure you are staying on track.

Each lab assignment will be divided up into points for attendance, completing the lab worksheet and submitting it to Gradescope, and correctly implementing any programs or exercises that are submitted to the Autograder or PrairieLearn.

Each student must submit their own copy of the lab worksheet and code files to receive credit. This way, we make sure that everyone has a copy of the lab worksheet and code, so that you can use that code in future exercises or projects!


Projects are a major component of this course. Project documentation (also known as “specifications” or “specs”) will be released as we go through the semester. You are responsible for reading all project documentation.

We have found through many years of teaching experience that the most common reason for poor project performance is not starting early enough. Plan to do some work on the project every day and try to have it finished a few days ahead of the due date, because many unexpected problems arise during testing, and you never know how long it will take to debug them. In addition, office hours can become very crowded right before the deadline, and you may not be able to book a one-on-one appointment to ask debugging questions.

The second most common reason for not doing well on the projects is not asking for help when you need it. We offer help in office hours and on Piazza. When you come to office hours, please be ready to provide access to your code and try to come ready with questions or a sense of where you are getting stuck. Another good way to get help is to post a question to Piazza. Remember, if you find that you are stuck on a piece of your project for an undue amount of time, please see us!

One major goal of this course is for you to learn to test and debug your own programs because this is a critical skill in the real world. Throughout the class, we will practice testing and debugging strategies so you can learn what types of errors to look for and how to correct them. As you gain experience, we will expect you to do more and more testing and debugging on your own before you come to us for help. This way, you can more effectively use office hours (which, remember, get pretty busy) because you can explicitly show us testing and debugging techniques you have already tried – and what the results were – and we can give better advice as to what’s still not correct.

Finally, always make multiple backup copies of your work! If you somehow lose your work, it is your responsibility. We highly suggest using some kind of cloud-based approach (such as Google Drive or Dropbox at U-M) which can automatically sync your local files with those on a server that is automatically backed up itself by the service.

Project Submission Policy

All project code must be submitted to the ENGR 101 Autograder at autograder.io. Additional project deliverables may be submitted to Gradescope. Each project specification will include detailed instructions as to how the project files should be named and where to submit deliverables to.

In addition to “turning in” your code for grading, submitting to the autograder also allows you to receive some early feedback from the autograder about your score. You are allowed a limited number of submissions per day. Waiting until the last minute to turn in your project is a surefire way to fail a project. Submit early, submit often.

All projects must be submitted by 11:59pm (NOT 11:59:59pm) on the due date for full credit, unless otherwise noted. The autograder will automatically stop accepting submissions at 11:59pm. Any submissions that have been accepted by the autograder and are awaiting grading will still be processed as normal. For late submissions, a separate assignment for the project will be opened up on the Autograder sometime the next day.

To determine your final grade for a project, we select your submission with the highest score when run against the test cases for the project. If several submissions are tied for the same score, we use the most recently submitted. We also use the code from the selected submission for manual style grading, which contributes a portion of the overall project grade.

Project Partnerships

For all projects, you have the option of working in a partnership with another student in the course.

Partnerships must be registered with the autograder before you can submit your work. If you choose to work alone, you must also register that choice on the autograder. Once recorded on the autograder, you cannot change your decision for that project.

Students who are repeating ENGR 101 will complete projects without a partner this time through the course. This policy is meant to encourage deeper individual learning leading to a firm foundation of computing skills that will serve you well in your future courses and career.

Guidelines for Project Partnerships

Form your partnership early during the project – we recommend forming your partnership at least one week prior to the due date. Don’t partner with someone who has already written most of the code, or vice versa. You won’t get as much out of the project, and this is not the point of partnering on a project. One partner must issue the invitation on the Autograder by clicking the “Send Group Invitation” button. The other partner then needs to log in to the Autograder, go to the correct project, and accept the invitation. The partner needs to accept the invitation prior to the deadline for the project. The ENGR 101 Staff will not add partnerships to the Autograder once the deadline for the project has passed. No exceptions.

Plan your strategy for completing the project. Talk about your expected workflow. When will you meet? Do you plan to attend office hours? Do you prefer to work during the day, at night, or on the weekends? When are your internal deadlines for having different parts of the project done?

Work on all parts of the project together, so that each partner gains experience with each of the concepts involved. This will be valuable practice for assessments. It’s also helpful to have someone to bounce ideas off of and two pairs of eyes on the code to avoid bugs.

Do NOT split the work in half and work separately. This may harm your or your partner’s understanding of parts of the project. You also have no control over your partner’s contribution.


There will be four assessments in ENGR 101. Each assessment will cover the topics used so far in the course. If the topics have only been covered by PrairieLearn work (and not projects yet), then the assessment will cover those topics in a little bit lighter way; we can think of this as a “Level 1” understanding of the topics. If the topics have been covered in a project that is due before the assessment, then the assessment will cover those topics in the same detail as the projects; we can think of this as a “Level 2” understanding of the topics. Here’s a table that compares the two levels:

Level 1 Questions Level 2 Questions
in the learning cycle?
This type of assessment question enables you to demonstrate that you have learned a particular skill or concept before you are asked to use it in the context of a project. This type of assessment question enables you to demonstrate how to apply skills and knowledge in more complex ways after you have used them in the context of a project.
are they designed to assess?
These questions will help you gauge how well you can demonstrate individual knowledge and skills you will need in the course, and give you a chance to identify topics that may require additional practice. These questions let you show deeper levels of understanding and procedural knowledge by strategically combining multiple concepts and/or skills to solve real-world coding problems.

Assessments will be hosted on the online platform PrairieLearn. More information about assessments and PrairieLearn will be provided separately from this syllabus. Key things to know about the assessments:

Extra Credit

There are several opportunities to earn up to 1% of your total grade in extra credit. In other words, if you earned an 89% before applying extra credit, and you did all of the extra credit, your final grade would be 89% + 1% = 90%.

There will be several ECoach activities that are “incentivized” throughout the semester. You will receive emails from ECoach when these activities are available for you to do. There will also be activities offered through the Computing CARES program. All of these will be announced on the course website when they become available.


Your grade in this class is determined by your performance on the assignments in the course. We use a “threshold grading” scheme, in which points are assigned based on your understanding of course concepts and ability to apply those concepts to solve engineering problems.

In threshold grading, grades are not curved: your grade depends solely on your own work, regardless of the performance of your peers. Our goal in teaching this class is to provide each student with all the resources necessary to show competency in the course material and therefore earn an A.

Course Grade Breakdown

The following tables show how each component is weighted with respect to your final grade, and how numerical grades correspond to letter grades:

Assignment Group Points Per Assignment Number of Assignments Percentage of Final Grade
Homework (varies, but around 20-30) 20 10%
Lectures 20 13 10%
Labs 40 13 20%
Projects see below 4 30%
Assessments see below 4 30%

No assignments are dropped. Please see the Deadlines & Late Submissions section for details on submitting assignments late.

The projects for the course scale up in effort and complexity and have differing amounts of points:

Project Points
1 80
2 110
3 110
4 110

The assessments for the course are “leveled” and have differing amounts of points:

Assessment Points
1 80
2 100
3 80
4 100

See the Assessments section for more detail.

You can see this grading scheme in Canvas. If you have any questions about how grades will be calculated, please post to Piazza.

Final letter grades are calculated according to the following table (grades are NOT rounded up):

Numerical Grade (%) Letter Grade
98 ≤ % ≤ 100 A+
93 ≤ % < 98 A
90 ≤ % < 93 A-
87 ≤ % < 90 B+
83 ≤ % < 87 B
80 ≤ % < 83 B-
77 ≤ % < 80 C+
73 ≤ % < 77 C
70 ≤ % < 73 C-
67 ≤ % < 70 D+
63 ≤ % < 67 D
60 ≤ % < 63 D-
% < 60 E

Deadlines & Late Submissions

This course has many interrelated assignments, and the concepts and skills in the course build upon each other. However, we recognize that being able to submit assignments a day or two late can be helpful in supporting your own time management choices. We know that ENGR 101 is not your only time commitment this semester!

You can earn up to full credit on all assignments if you submit the assignment prior to its posted deadline. However, you can still earn the majority of most assignments’ points as long as you submit it before the assignment’s late submission deadline.

How Late Submissions Work

The majority of assignments are eligible for a 1-2 day grace period for late submissions. Here are some important things to know regarding late submissions:

Here is a summary of the grade caps before and after the deadlines for the various assignments:

Original Deadline
Late Submission Deadline
Assignment Day Due Grade Cap
Before Deadline
Day Due Grade Cap
Before Deadline
Homework Monday 100% The next day (Tuesday) 95%
Lecture Reflections Saturday 100% The following Monday 95%
Lab Attendance day of your lab 100% N/A N/A No lab attendance points awarded for missing lab.
Lab Worksheet Saturday 100% The following Tuesday 100%
Projects Tuesday 100% The following Tuesday
(one week grace period)
~93% The actual percentage will be determined by the number of points assigned to the test cases, but it will be around this number. Project 4 has a shorter grace period because it is due at the end of the semester; see the course website for details.
Assessments Thursday 100% for first take The following Thursday
(one week grace period)
93% for first take
90% for retake
You can retake an assessment even if your first take was after the deadline.
Extra Credit Saturday 100% N/A N/A Extra Credit is not eligible for late submissions.

Anticipated Conflicts

If you have something that will impact your ability to do ENGR 101 work for more than a couple of days, such as a multi-day religious holiday, planned medical procedure, or University-affiliated athletic event, please let your lab GSI/IA know ahead of time. It is likely that you will be able to manage your work around this commitment just fine, but it’s always helpful for us to know what’s going on!

If your planned conflict impacts your ability to complete assignments by the late submission deadline, then please fill out the Extension Request form on the course website. We will evaluate your situation and see what action is appropriate to take. Please note that most of our assignments are available for several days to multiple weeks prior to their deadline to allow you to manage your own time and complete work by the deadline. Inabilty to manage your time is not a sufficient reason for an extension.

Medical/Personal Emergencies

If you experience a medical or personal emergency, please tell your lab GSI/IA! It’s good to know that something major has happened so we don’t wonder when you don’t show up to lab. If your emergency is severe enough that it will impact your ability to complete assignments by the late submission deadline, then please fill out the Extension Request form on the course website. We will evaluate your situation and see what action is appropriate to take.

Grade Return Policy

Our goal is to return all graded assignments to you within one week. However, sometimes things happen and we might get behind a little bit (we are busy, too!). You will be notified by Canvas when grades are posted. Do not post to Piazza asking when grades will be out unless it has been 3 weeks since the assignment was due.

Regrade Policy

While we work hard to grade accurately, we sometimes make mistakes. If you believe we graded an assignment of yours incorrectly (whether it be a lab, exercise, assessment, project, etc…), you may submit a regrade request no later than one week after the graded work is originally returned to you. We will then regrade your entire assignment, which can cause your grade to go up, but it can also go down.

Regrade requests must be submitted via the form on the course website. Regrade requests will NOT be accepted via email. Depending on the type of the assignment, further action may be required on your part.

Acceptable Collaboration and the Honor Code

Learning from your peers, and learning as you teach them, is an excellent way to become comfortable with the computing skills we cover in ENGR 101. However, we also want you to be able to accurately self-assess where you are at in your own skill level. In other words, can you actually do this stuff? Here, we describe the collaboration that is allowed and encouraged in ENGR 101, the collaboration that is not allowed, and our process for reporting collaboration that is not allowed.

Encouraged Collaboration

We want students to learn from and with each other, and we encourage you to collaborate. We also want to encourage you to reach out and get help when you need it. You are encouraged to:

To clarify the last item, we are giving you permission to look at another student’s code to help them understand what is going on with their code. You are not allowed to tell them what to write for their code, and you are not allowed to copy their work to use in your own solution.

If you are at all unsure whether your collaboration is allowed, please contact the course staff via Piazza, Office Hours, or email before you do anything. We will help you determine if what you’re thinking of doing is in the spirit of collaboration for ENGR 101.

Honor Code Violations

The following are considered honor code violations and are primarily applicable to projects and assessments:

You are still responsible for following these rules even after finishing the course. Students may be nervous about being reported for coincidental similarities between their code and others, but we only report clear cases of academic misconduct (e.g. when there is overwhelming evidence code was copied from another student or online source). You will not be reported for:

If you are retaking the course, you may reuse your own code, presuming it was wholly written by you and/or your partner and not derived from another source, following all the rules outlined here. It is possible for instructors to miss an honor code violation in a previous term, but catch and report it when the code is reused on a course retake.

Students who are repeating ENGR 101 will complete projects without a partner this time through the course. You may reuse your own code from a previous semester, presuming it was wholly written by you and/or your partner in that previous semester and not derived from another source, following all the rules outlined here. It is possible for instructors to miss an honor code violation in a previous term, but catch and report it when the code is reused on a course retake.

If you have any questions as to what is allowed, please talk to an instructor right away.

The Honor Council Process

We report suspected violations to the Engineering Honor Council. To identify violations, we use both manual inspection and automated software to compare submissions. The Honor Council determines whether a violation of academic standards has occurred, as well as any sanctions.

Here’s what you can expect if you are reported for an honor council violation:

Advice for Avoiding the Temptation to Cheat

We understand that honor code violations usually occur when a student is struggling with the course or dealing with external challenges that prevent them from finishing work on their own. This is why we have decided to allow late submissions for all assignments with just a small penalty (you can still get an A on the assignment!). If you find yourself tempted to cheat on an assignment, especially a project, remind yourself that you have plenty of time to actually complete that assignment.

Remember: our goal is that you learn this course material and these computing skills. We have deadlines to keep you on pace so that you don’t have the entire course to do in a couple of weeks at the end of the semester. But if you need to submit some things a little late because you are adjusting your schedule to accommodate other classes and commitments? Awesome, go for it. We’d much rather you take the time to do the work correctly, and come in to talk with us if you need help, than copy someone’s code to try to meet a deadline.

Why We Are Not Allowing Generative AI In This Course

Generative AI is a technology that has the potential to be a very useful tool in computing. But like any tool, you need to know enough of the basics to be able to use it correctly and ethically. We can’t help you in office hours if you bring us Generative AI-created code that you don’t understand. We are there to help you, not your code.

This is an introductory computing course, and we want you to learn the basics of computing so that later on you will be able to leverage the capabilities of platforms like U-M GPT or Github Copilot to create your computer programs. We encourage you to learn more about U-M’s Generative AI Guidance, including the biases inherent in Generative AI and how to protect your data when using these tools.

Accommodations for Students with Disabilities

If you need accommodations for a disability, we are happy to work with you. Some aspects of this course may be modified to facilitate your participation and progress. As soon as you make us aware of your needs, we can work with the Services for Students with Disabilities (SSD) office to help us determine appropriate academic accommodations. SSD (734-763-3000; http://ssd.umich.edu) typically recommends accommodations through a Verified Individualized Services and Accommodations (VISA) form that SSD will upload to the Accommodate online platform which then notifies us of the needed accommodations. Any information you provide is private and confidential and will be treated as such.

Diversity, Equity, and Inclusion

The University of Michigan is committed to student learning and the development of the whole student in a diverse and multicultural campus community. We seek to engender a diverse community that is accessible, safe, and inclusive. We value a community that appreciates and learns from our similarities and differences. We pledge our commitment to support the success of all community members. If you experience anything, directly or indirectly, that goes against this commitment, please talk to your instructor, GSI, an IA… anyone that you feel comfortable talking to. We want to know! We try hard not to knowingly do or say something that will cause harm or stress to you. Many of us are constantly going to workshops and reading papers about how to have the most inclusive classroom that we can have. But we are human and sometimes we mess up! If we do, we sincerely hope you will come talk to one of us so that we can see things from your point of view, and we can learn how to improve our class for the next semester.

Resources for Student Support and Physical/Mental Health

U-M is an enormous place. This sometimes means that it’s tough to figure out where you can go to get help. This is a list of some places that make a good starting point if you’re needing help for physical or mental health. Please reach out to your lab GSI or IA as well! We are always happy to talk and get you started with one of these places if that’s what you decide you’d like to do.


UHS uhs.umich.edu

When you get sick, don’t come to class! Email your GSI/IA that you’ll be out, then go to UHS and see a doctor. When you’re ready to return to class, tell your GSI/IA and we’ll get you caught back up.


MESA mesa.umich.edu

Supports matters concerning race and ethnicity; MESA engages the campus community and transforms the student experience to build inclusive spaces and equitable opportunities for all.


SPECTRUM CENTER spectrumcenter.umich.edu

Supports matters concerning sex and gender identity.



Supports matters concerning access and support.



Supports matters concerning the need for counseling/psychological services.


STUDENT LEGAL SERVICE studentlegalservices.umich.edu

Supports matters concerning the need for legal services/advice.



Supports matters concerning a crime, or civil rights complaints.


CENTER FOR CAMPUS INVOLVEMENT campusinvolvement.umich.edu

Supports matters concerning on engagement of the Ann Arbor community and university community.


GINSBERG CENTER ginsberg.umich.edu

Supports matters concerning community service learning and civic engagement.



Supports matters concerning assault and survivor support services.


The following is a list of resources put together by the office of the Associate Dean for Undergraduate Education (ADUE). There is some duplication with the above listed resources, but we didn’t want to lose anything by trying to combine it with the list above. We will update this list of resources throughout the semester if we get an updated list sent to us.


Mental Health Support:

Academic Support:

Technical Support:

International Students:

Student Organizations & Leadership:

Career Resources:

Students with concerns that do not fall in any of the above categories should contact the Office of Student Affairs (coe-studentaffairs@umich.edu).