Syllabus

Welcome! We look forward to working with you as we explore so many interesting ideas together. You will learn to apply computational thinking in a variety of contexts, using Python as the means of expression. While learning to program will be our focus, many of our examples will draw from AI and data science.

Who Should Take This Course?

This course is designed to be useful to a wide range of people. If you’re not planning on further CS study, that’s fine! You’ll gain vital experience in data handling and leveraging of software libraries, enhancing your adaptability to the computational demands of your primary discipline.

If you are planning to take EECS 280 and other CS courses next, that’s great too! You’ll get extensive practice in computational thinking, laying a strong foundation for EECS 280 and giving exposure to advanced CS topics.

Our assumption is that you have no prior programming experience! So if that’s you, you’re in the right place! You can do it, and you belong here.

If you’re one of the few that have a lot of prior programming experience, you might consider trying to test directly into EECS 280 instead. You’re definitely welcome to stay in this course too if you want – it likely has a lot to offer you as well.

As a result of taking this course, you will gain many abilities outlined below.

Basic Course Information

The primary location for course resources is https://eecs183.github.io/py183.org/. The course schedule, lecture slides, lab assignments, project specifications, and other resources are all available on the course website.

Important Dates

Required Materials

Contact the Staff

The table below summarizes the various ways in which you can contact the course staff, when to use each contact method, and how quickly you can expect a response. Note that the teaching staff do not respond to Canvas messages.

Method Best suited for Response time
Piazza Project questions without need to share code, course logistics, questions about lectures, labs, or assignments Within 12 hours
Admin form Illness, grading issues, other personal circumstance or emergency Within 1 business day
Office Hours Project questions where we need to look at your code, getting started with the projects, debugging, course content, struggling with the course, most anything! Immediate
Email Individual circumstances that do not fit the other communication methods. Sharing sensitive information that you don’t want to put in the Admin form. Within 3 business days

In-Person and Remote Learning

Lectures, labs, exams, and special events will be in-person. Attendance in lectures and labs will be part of your grade. Our experience is that students who attend in-person more often are able to form more connections with others in the course, learn more of the material, and do better on exams and projects. Office hours will be offered remotely and in person.

Exams will be held in person, and the Showcase event at the end of the semester will also be in person. If you have a special circumstance that prevents you from taking exams in person, please let us know using the Admin Form.

Attendance Grading

Attendance in lectures and labs is part of your final grade in the course. Lecture attendance will be graded by in-class low-stakes questions. Lab attendance will be taken by your lab instructor.

How the Course is Organized

Lectures

There are two lectures most weeks. Recordings of lectures will be available on Canvas.

zyBooks Readings and Activities

zyBooks is an interactive environment with several exercises to see how well you understand the material. You may attempt each exercise multiple times – it will tell you if you have solved the problem or not. It matters that your final answer is correct. This is for you to learn so we don’t care how many attempts it takes.

The required readings in zyBooks are listed on the Course Schedule and within zyBooks. You earn your score by completing the “Participation Activities” in the readings. Note: “Challenge Activities” within the reading are optional (but encouraged) and do not contribute to your score.

PrairieLearn

PrairieLearn is a practice tool, with exercises connected with each lecture. You have unlimited submissions for each PrairieLearn exercise before the deadline.

Labs

Lab meetings will give you the opportunity to practice the course material in a supportive environment and get personal attention from an instructor. Labs begin the first full week of classes (see the course schedule for details), according to the scheduled Wolverine Access time. Each lab contains an assignment with submission instructions. Labs may be completed in groups, and every student in the group is allowed to submit identical solutions for lab assignments.

Exams

There are two written exams. You are expected to take the exam the day it is administered. If you miss an exam, and a medical or personal emergency is not involved, you will receive a zero for that exam. If you anticipate an exam in another course or a religious holiday that conflicts with our exam day, you must notify the staff at least two weeks before the exam.

Projects

There are four regular projects during the semester, and one larger final project. Each project will require a substantial time commitment on your part. We strongly recommend that you plan out your time for each project, get started early, and set intermediate goals for yourself. Projects have suggested timelines to help you manage your schedule.

Due Times

Projects will be submitted to the autograder and are due 8:00 pm on the due date but will be accepted until 11:59 pm on the due date with no penalty.

Bonus Point Policy

For the four regular projects, if your last submission is 2 days (or more) before the due date, you will receive bonus points calculated at 5% of your “correctness” points - the score you see on the autograder. If your last submission is between 1 day and 2 days before the due date, you will receive bonus points calculated at 2.5% of your “correctness” points. For the purposes of bonus points, the deadline on each date is 11:59 pm.

For example, if the project is due Friday at 11:59 pm and your last submission is before Wednesday at 11:59 pm, you will earn 5% bonus points. If your last submission is after 11:59 pm Wednesday, but before 11:59 pm on Thursday, you will earn 2.5% bonus points. Style grades will not be included in the bonus point calculation.

Late Policy for Projects

Sometimes unexpected events make it difficult to submit a project on time. For this reason, each student will have a pool of 3 late days to be used for any of Project 1 - 4 during the semester. That is 3 days total for the semester, not three days per project. These late days should only be used to deal with unexpected problems such as illness or internet outage. Note that each student is responsible for tracking their own late days. The policy for partnerships and late days can be found in the Google Drive.

For late days, the deadline for project submission is 11:59 pm. For example, if a project is due on Friday at 11:59 pm, and your last submission on Saturday by 11:59 pm, that is one late day. Using a second late day would give you until Sunday at 11:59 pm to submit your last submission.

Extension Policy

To request an extension beyond the three free late days, you must discuss your situation with an instructor before the deadline. You may be asked to provide written documentation. If a family/personal emergency causes you to miss a significant number of days, please contact us using the Admin Form so we can meet with you to decide the best course of action. If you are having trouble understanding the material or starting a project, please come to office hours for help right away.

Collaboration Policy

Make sure to read the Honor Code section for information on what types of collaboration are encouraged and what types are not allowed. Projects 1 and 2 are assignments that must be completed individually. Projects 3 and 4 are expected to be completed either individually or within a partnership between two current students in the course. The final project is a group assignment to be completed in teams of four current students. You may partner with students from another lecture section, but you must all be in the Python version of the course.

Final Project

There will be a final project that you will complete in teams of four. You will be responsible for finding your own team, but we will have some help to connect anyone who needs to find a team. The Final Project has two phases: the Core, similar to one of the previous projects, and the Reach, where you extend the project along guidelines provided by instructors.

Other Assignments

There will be a few surveys and other assignments during the semester. They will be for a variety of reasons: to help us get to know you better, to tell us where you are having difficulties, how we can help you more, etc.

Late Policies

The late submission and drop policies for various assignments are summarized in the following table. Note that, for example, “2 drops” means we will drop your two (2) lowest scores within the category. These are implemented using Canvas and applied automatically - you do not need to request that a grade be dropped.

Assignment Type Late policy Drop Policy
Lab Assignments No late submissions No drops
zyBooks Readings No late submissions 4 drops
PrairieLearn No late submissions 4 drops
Projects 1 - 4 3 “late days” to use throughout the semester No drops
Lecture attendance No late submissions 6 drops
Lab attendance No late submissions 2 drops
Final Project Core and Reach No late submissions No drops
Other Assignments No late submissions No drops

Resources

Piazza

All students should register on Piazza, the course’s discussion forum, at piazza.com. We do not answer technical questions via email.

Do not post source code on Piazza. Publicly posting error messages is allowed, and can be a great way to get debugging help from your fellow students.

Office Hours

Office hours are opportunities for students to get individualized assistance from course instructors on projects, PrairieLearn exercises and understanding concepts. More details about office hours are at https://eecs183.github.io/py183.org/officehours.html

Canvas

We will be using Canvas to make announcements, posting grades, and for lecture recordings. We use Canvas announcements to communicate critical information about the course. It is your responsibility to ensure you are able to receive Canvas announcements. You should make sure that your Canvas settings for the course are set to email you when a new announcement is posted.

Grades

Taking the Course Pass/Fail

If you are taking this course Pass/Fail, you will need a grade of C-minus or better for LSA (see below for details on points and percentage grade for C-minus) in the course to achieve a passing grade. We will not notify you when you have enough points to pass.

Adding After First Week of Class

If you add the course after the first day of class, see this document for how to request extensions for work that was due before you joined.

Illness, and Other Significant Life Events

If you experience an unexpected event (e.g., illness, internet outage, family emergency) that is affecting your participation in the course, please let us right away using the Admin Form. We will work with you to figure out a plan for moving forward. We’ll be following the University’s guidelines regarding documentation of medical and other unexpected events.

Tentative Grade Distribution

Final grades will be based on the total percentage earned during the course. The tentative percentage breakdown is:

Item Percentage
Assignments (surveys and other things posted as “Assignments” in the course schedule) 1%
Lecture attendance 1%
ZyBooks readings & exercises 5%
PrairieLearn 5%
Lab assignments 5%
Lab attendance 5%
Final Project 13%
Exams (2, equally weighted) 30%
Projects 1-4 35%
Total 100%

Letter Grades

The number of points you earn will determine your final grade in the class based on a straight scale, as shown in the table below. We do not curve grades. We do not round scores to the closest percentage.

Incomplete grades are rarely given. If you are having problems in the course that interfere with your ability to complete the course, the instructors are here to help. Please contact staff at the admin form as soon as possible so we can determine the best course of action.

Score Range (in percentages) Grade
[100+ A+
[93, 100) A
[90, 93) A-
[87, 90) B+
[83, 87) B
[80, 83) B-
[77, 80) C+
[69, 77) C
[65, 69) C-
[60, 65) D
[0, 60) E

Commitment to a Culture of Respect & Student Support

Creating a Supportive Learning Community

A positive learning environment, whether in-person or online, requires all members of the course community to approach the course, and each other, with a respectful, inclusive, and supportive mindset. We are providing the following guidelines for respectful student behavior and interactions to help establish a supportive learning community within our course.

Commitment to Equal Opportunity

As indicated in the General Standards of Conduct for Engineering Students, we are committed to a policy of equal opportunity for all persons and do not discriminate on the basis of race, color, national origin, age, marital status, sex, sexual orientation, gender identity, gender expression, disability, religion, height, weight, or veteran status. Please feel free to contact us with any problem, concern, or suggestion. We ask that all students treat each other with respect.

Student Well-Being

Students may experience stressors that can impact both their academic experience and their personal well-being. These may include academic pressure and challenges associated with relationships, mental health, alcohol or other drugs, identities, finances, etc.

EECS 183 partners with Wolverine Wellness and will be reaching out to students with a wellness check-in survey during the semester. A Wellness Check-in Survey is included in our course and is intended to support student holistic well-being & reduce barriers to help-seeking.

If you are experiencing concerns, seeking help is a courageous thing to do for yourself and those who care about you. If the source of your stressors is academic, please contact me so that we can find solutions together. For personal concerns, U-M offers the following resources:

Discrimination and Harassment

Discrimination and harassment have no place at Michigan. If you encounter inappropriate behavior or misconduct, or if you are unsure if you have experienced such behavior, there are resources and contacts available for you. The EECS 183 faculty are here for you. The Computer Science division has a list of resources available here.

Accommodations for Students with Disabilities

The University of Michigan recognizes disability as an integral part of diversity and is committed to creating an inclusive and equitable educational environment for students with disabilities. Students who are experiencing a disability-related barrier should contact Services for Students with Disabilities (https://ssd.umich.edu/; 734-763-3000 or ssdoffice@umich.edu). For students who are connected with SSD, accommodation requests can be made in Accommodate. If you have any questions or concerns please contact your SSD Coordinator or visit SSD’s Current Student webpage. SSD considers aspects of the course design, course learning objects and the individual academic and course barriers experienced by the student. Further conversation with SSD, instructors, and the student may be warranted to ensure an accessible course experience.

If you are in the process of working with the SSD office regarding accommodations, but do not yet have official approval, please let us know. In some cases, we are able to provide accommodations ahead of receiving official approval, in consultation with the SSD office.

Recordings

Students may not record or distribute any class activity without written permission from the instructor, except as necessary as part of approved accommodations for students with disabilities. Any approved recordings may only be used for the student’s own private use.

Course lectures may be audio/video recorded and made available to other students in this course. As part of your participation in this course, you may be recorded. If you do not wish to be recorded, please contact us using the Admin Form the first week of class (or as soon as you enroll in the course, whichever is latest) to discuss alternative arrangements.

Research Disclosure

Your class work might be used for research purposes. For example, we may use anonymized student assignments to design algorithms or build tools to help programmers. Any student who wishes to opt out can contact the course staff (via the Admin Form) to do so at any time up to seven days after final grades have been issued. This has no impact on your grade in any manner.

Honor Code

What is the Honor Code?

The College of Engineering Honor Code outlines certain standards of ethical conduct for persons associated with the College of Engineering at the University of Michigan. As a student in EECS 183, you are expected to abide by the Honor Code, even though you may not be an Engineering student.

You need to know that the extent to which collaboration is allowed under the Honor Code varies by course, and by semester. It is critical that you understand the collaboration policies for each of your courses. What is allowable in one course may constitute an Honor Code violation in another course. The Honor Code policy for EECS 183 is outlined in the following sections.

Collaboration is Encouraged

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, you are permitted 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 the admin form (found earlier in this document) before you do anything. We will help you determine if what you’re thinking of doing is in the spirit of collaboration for EECS 183.

Generative AI Policy

EECS 183 is about learning to think like a computer and developing your own mental models for problem-solving. Using AI to generate code or otherwise complete course work bypasses the neural connections you need to build in your own brain. We want you to struggle with the logic, because that struggle is where the learning happens.

Definitions:

For this policy, I will clarify the following definitions:

Later in the semester, some course activities are specifically designed to be done with AI. Policies will be clearly communicated for those activities. In all other contexts, the following policy applies.

Allowed: Outside of the context of doing a graded task, the following uses of AI are allowed:

Prohibited: The following uses of AI are always prohibited, unless explicitly stated otherwise for a particular graded task:

Honor Code Violations

The following are considered Honor Code violations:

You remain 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 if it was entirely written by you and/or this semester’s 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.

Lab assignments may be completed in groups, and every student in the group is allowed to submit identical code for lab assignments. You must submit to receive credit for the lab.

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:

  1. The instructors submit an official report to the Honor Council.
  2. The Honor Council notifies you of the report, and explains the next steps of the process. You receive a copy of the report, including the evidence of the suspected violation.
  3. The course instructors play no role in determining the outcome of reported cases.
  4. The Honor Council notifies course instructors when your case is resolved. Any penalties they prescribe are applied to your grade. If you are found not responsible, your grade is unaffected.

If you have a pending Honor Council case at the end of the term:


© 2026 William Arthur and Steven Bogaerts.

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Creative Commons License

All materials provided for this course, including but not limited to labs, projects, notes, and starter code, are the copyrighted intellectual property of the author(s) listed in the copyright notice above. While these materials are licensed for public non-commercial use, this license does not grant you permission to post or republish your solutions to these assignments.

It is strictly prohibited to post, share, or otherwise distribute solution code (in part or in full) in any manner or on any platform, public or private, where it may be accessed by anyone other than the course staff. This includes, but is not limited to:

To do so is a violation of the university’s academic integrity policy and will be treated as such.

Asking questions by posting small code snippets to our private course discussion forum is not a violation of this policy.