ENGR 101 | University of Michigan

ENGR 101: Introduction to Computers and Programming

Using Computing to Solve Engineering Problems

Syllabus Fall 2022

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 prep work, you will be introduced to the various skills and concepts you will use in this course via Runestone. 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 prep work, 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.

Staff

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.

Instructors

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

Admin

General Admin Email engin-fyp (at) umich.edu
Krista Quinn kristaqu (at) umich.edu
Olivia Doty odoty (at) umich.edu

Graduate Student Instructors (GSIs)

Isha Bhatt ibhatt (at) umich.edu
Tarek Bsat tbsat (at) umich.edu
Ryien Hosseini ryienh (at) umich.edu
Brendan Jackson brendjac (at) umich.edu
Harsh Jhaveri hjhaveri (at) umich.edu
Donovan Jewell jeweldon (at) umich.edu
Yvonne Lin yvonlin (at) umich.edu
Joey Shoyer jshoyer (at) umich.edu
Mary Silvio msilvio (at) umich.edu
Austin Ye austidye (at) umich.edu

Instructional Aides (IAs)

Megan Beemer mrbeemer (at) umich.edu
Seta Hagopian shagop (at) umich.edu
Jake Hume jakehume (at) umich.edu
Anish Kothapalli anishvk (at) umich.edu
Meghan Mojica mojicam (at) umich.edu
Alyssa O’Brien alyssaob (at) umich.edu
Laurel Saxe lsaxe (at) umich.edu
Luke Van Namen lvanname (at) umich.edu
Thomas Westman thwestma (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 Prep Work 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 Runestone; 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, prep work, and labs.

Weekly Prep Work & 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 prep work done on your own and one in-person lecture per week.

Weekly prep work consists of short videos and interactive work hosted on Runestone, an online learning platform. This weekly prep work will be done individually and asynchronously. Completion of the weekly prep work is required for a grade. More information on logging into Runestone will be provided separately from this syllabus. Runestone chapters are due on Mondays so that everyone is ready for that week’s lecture and lab (labs run Wednesdays-Fridays). The entire Runestone book is available to you from the beginning of class, though, so you can work ahead 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 Runestone. 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.

Note for Fall 2022

This semester we will be participating in a study about the effectiveness of Peer Instruction questions in large lectures. You will receive more information about this study, and a consent form to fill out, separately from this syllabus. Participation in the study is not required to receive credit for the Peer Instruction questions.

Active learning opportunities have always been part of our lectures in ENGR 101, but this will be the first time we will be using official Peer Instruction-type questions. These types of questions target common misunderstandings about course content. You can think of the questions along the lines of ENGR 101 Trivia Night! Two to three times per lecture, we’ll pause and do a multiple choice Peer Instruction question related to what we are doing. You first answer the question individually, then we show how many people voted for each answer. You can then discuss the answers with the people around you and answer again: maybe you keep your original answers, maybe you change it. Then, we look at the correct answer and talk about why the other answers are incorrect.

The lecture questions will be hosted on Runestone; you do not need an iClicker or any specialized device other than a computer or smartphone that can connect to the internet. If you need assistance obtaining a device to use for lecture, please contact one of the instructors.

Labs

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 Runestone through hands-on programming. Labs are also a time when you can get to know other students in your class!

Lab Attendance Policy

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 assignment.

If you know that you will need to miss part or all of lab for a legitimate reason (e.g. an exam for another class, an advising appointment, an interview for an internship, you are competing in a U-M sports competition/meet, 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 are sick or suspect you may have been recently exposed to someone who is contagious (with COVID, influenza, whatever), please email your lab GSI/IA to let them know you won’t be there. Then, fill out the “Excused Absence Request” form on the course website. We will excuse you from lab attendance for that week. This does not count as your lab drop. However, you are still responsible for completing the lab and turning it in before the last day of class.

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.

Runestone

Runestone is the name of the platform that hosts our asynchronous weekly prep work. Most weeks will have around three chapters of Runestone work due.

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.

Piazza

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!

Autograder

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

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.

PrairieLearn

PrairieLearn is an online assessment platform. We will use PrairieLearn for the assessments in ENGR 101 as well as the lecture reflection forms and possibly lecture or lab exercises.

ECoach

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 Runestone 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!

Here is an article that explains how to go about updating/setting your legal name beyond U-M.

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 prep work 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

Assignments

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.

Weekly Prep Work (Runestone)

Core course content will be delivered asynchronously as weekly prep work on the Runestone online platform. Runestone work is due on Mondays, and there will be 1-4 chapters due each week, depending on where we’re at in the semester (some weeks will not have prep work due). Each chapter 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 prep work will be linked on the course website.

Lectures

Lectures will have two components: the Peer Instruction questions during class, and the reflection form to fill out afterwards. You will need to attend (or watch the recording) of the lectures, and complete the peer instruction questions and reflection form 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

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

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.

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.

Assessments

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 Runestone 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
When
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.
What
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.

Grading

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 Number Dropped Percentage of Final Grade
Lectures 20 12 0 10%
Weekly Prep Work (Runestone) 20 21 0 10%
Labs 40 12 1* 20%
Projects see below 4 0 30%
Assessments see below 4 0 30%

* Labs 1 and 12 are not eligible to be dropped

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

ENGR 101 has an extremely flexible deadline policy. However, we strongly encourage you to stick to the posted due dates for assignments. This course has many interrelated assignments, and the concepts and skills in the course build upon each other. However, flexible deadlines are in place to support 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 most assignments if you submit the assignment prior to its posted deadline. However, you can still earn the majority of the assignment’s points as long as you submit it before 11:59pm on the last day of class for the semester. (Note: the last day of class is not the last day of final exams.)

Reasoning Behind the Flexible Deadlines Policy

This flexible deadline policy is informed by other courses, at U-M and at other institutions, implementing a similar approach to deadlines with great success. Flexible deadlines appear to reduce stress and improve the overall course experience for both students and instructional staff. Flexible deadlines also emphasize that all of the course is important. We feel it is better to have flexible deadlines than to inadvertently encourage students to, say, skip a lecture because two lecture assignments are dropped at the end of the course.

This policy is new for Fall 2022, though. So, if we get halfway through the semester and it’s going poorly, we’ll adjust the policy and let all students know via Canvas announcements. But we are confident that this is the best way forward for ENGR 101, and you!

Update to the flexible deadline policy

Oct. 4, 2022

Starting after Fall Break, Runestone assignments will have hard deadlines so that everyone stays on track with learning the core concepts and will be able to better participate in labs. See the Canvas announcement for more details. This syllabus has been updated to reflect this change.

How Late Submissions Work with Flexible Deadlines

The majority of assignments are eligible for late submissions. The only hard deadline is the last day of class; we will not accept any work at all after the last day of class as we will need to finalize grades at that point. 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:

Assignment Grade Cap
Before Deadline
Grade Cap
After Deadline
Notes
Runestone 100% 0% No longer eligible for flexible deadlines
Lecture Questions 100% N/A
Lecture Reflection Form 100% 95%
Labs 100% 90% No lab attendance points awarded for missing deadline; can earn up to full credit on the lab worksheet.
Projects 100% ~93% The actual percentage will be determined by the number of points assigned to the test cases, but it will be around this number
Assessments 100% for first take 93% for first take
90% for retake
You can retake an assessment even if your first take was after the deadline.
Extra Credit 100% N/A

The Danger of Flexible Deadlines – and How We Will Help You Avoid It

The one major drawback of flexible deadlines is that it can be tempting to push off these assignments in favor of assignments in other classes that do have hard deadlines. This might eventually put you behind on a lot of work for ENGR 101. This means that you will be confused in lecture, confused in lab, and overall more stressed out. Since that is not our intent with these flexible deadlines, we will help you make sure you stay on track in ENGR 101.

Each week, we pull grades from all of our online tools and push those grades to Canvas. While we do that, we generate a watchlist of students based on what everyone has submitted so far in the semester. If you are missing a number of assignments, have missed lab for a couple weeks in a row, or meet another of our criteria, we’ll know. Your lab GSI/IA will send you an email checking in to ask how you are doing, or they might just talk with you after lab if you’re there. We’ll talk with you to figure out what’s going on and help you revise your work plan for the week to get you back on track in ENGR 101.

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!

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 worry when you don’t show up to lab. It is likely that you’ll be able to get caught up on your own, but we can help adjust deadlines if needed.

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, c_an 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:

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.

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.

We have purposefully structured this course to provide a week of “buffer time” at the end of the semester so that students can get caught up on any outstanding assignments they still need to submit. Remember: our goal is that you learn this course material and these computing skills. The posted deadlines are a guide 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.

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.

COVID-19 Pandemic Statement

As they have throughout the past year and a half, policies around academic and public health are subject to change as this pandemic evolves. This course will follow all policies issued by the University, which are documented on the Campus Blueprint’s FAQ. These policies may change over the course of the term, so please review the Campus Blueprint’s FAQ for the most up to date information.

Individuals seeking to request an accommodation related to the face covering requirement under the Americans with Disabilities Act should contact the Office for Institutional Equity. If you are unable or unwilling to adhere to these safety measures while in a face-to-face class setting, you will be required to participate on a remote basis or to disenroll from the class. We also encourage you to review the Statement of Students Rights and Responsibilities, which includes a COVID-related addendum.

Finally, we want to emphasize that YOU as students are part of the solution, not part of the problem. We understand irresponsible actions of a few do not represent the character of students in general, and we reject rhetoric that places blame on students.

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.

DISABILITY SERVICES (SSD) ssd.umich.edu

Supports matters concerning access and support.

COUNSELING SERVICES (CAPS) caps.umich.edu

Supports matters concerning the need for counseling/psychological services.

STUDENT LEGAL SERVICE studentlegalservices.umich.edu

Supports matters concerning the need for legal services/advice.

DEPARTMENT OF PUBLIC SAFETY AND SECURITY (DPSS) dpss.umich.edu

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.

SEXUAL ASSAULT PREVENTION AND AWARENESS CENTER sapac.umich.edu

About: 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.

Funding:

Mental Health Support:

Academic Support:

Technical Support:

International Students:

General COVID-Related Information:

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 (at) umich.edu). Additionally, please keep an eye on the Campus Operations section of the College’s COVID site for updates and announcements.