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.
- Write programs without AI tools to solve problems and facilitate computational work in computer science and in other disciplines.
- Explain certain key concepts of the field of AI and write programs related to these concepts.
- Apply understanding of fundamental computational techniques to critically evaluate, debug, and enhance AI-generated code as part of an efficient programming workflow.
- Use AI tools to more quickly apply software libraries to problems of interest.
- Explain key benefits and risks of using AI tools in software engineering.
Basic Course Information
The primary location for course resources is the course website. The course schedule, lecture slides, lab assignments, project specifications, and other resources are all available on the course website. Many materials require a @umich.edu login to access.
Contact the Staff
All of us on the EECS 183 team are happy to help you! Please see the Where to Go for Help page for details on how to contact us.
Important Dates
- Exam 1:
- Signup starts: Monday, September 14
- Exam dates: Monday, September 28 through Friday, October 2
- Exam 2:
- Signup starts: Thursday, October 8
- Exam dates: Thursday, October 22 through Wednesday, October 28
- Exam 3:
- Signup starts: Monday, November 2
- Exam dates: Monday, November 16 through Friday, November 20
- EECS 183 Showcase event: Tuesday, December 15 - times TBA
- No final exam
Since each exam is offered over a range of dates, we expect that in nearly all cases every student will be able to take the exam at some time within that range. If you know of a reason that will not be possible for you, you must request an alternative no later than the listed exam signup start day by filling out the Admin Form. Approval is not guaranteed, and we will need documentation of your need to consider your request.
For any exam period spanning a weekend, there are no Saturday or Sunday exam times.
Required Materials
You should have a laptop computer capable of using Visual Studio Code(opens in new tab). The setup tutorials will assume either Windows or Mac. If you have a Linux computer, you will probably not have any issues, but you may need to adapt some of the instructions. Also note that Information and Technology Services (ITS) has a laptop loaner program(opens in new tab).
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.
Lecture attendance will be graded by in-class low-stakes questions. Lab attendance will be taken by your lab instructor.
Exams will be held in person, and the Showcase event at the end of the semester will also be in person.
How the Course is Organized
Lectures
There are two lectures most weeks. Recordings of lectures will be available on Canvas. The location of lecture recordings on Canvas is dependent on the particular classroom’s recording capability; they are available in the “Media Gallery” section and/or in a “Lecture Recordings” section in the left sidebar.
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 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. Certain PrairieLearn assignments have an early extra credit deadline and a regular deadline. If you have full credit on the early deadline, you will earn +2% extra credit on that assignment. If you do not have full credit on the early deadline, then no extra credit will be awarded.
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 three written exams. Be sure to read the Exam Details page for more information.
Projects
There are three 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 three 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. There is no bonus for submissions less than 24 hours prior to the due time.
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–3 during the semester. (But not for the final project.) That is 3 days total for the semester, not 3 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 on the Partners Policies page.
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 us by filling out the Admin Form. 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 talk 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. Project 3 is 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. For project 3, you must both be in the Python version of the course. For final projects, you may partner with C++ students as well, but you must choose either a C++ project or a Python project that you all will work on together.
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, with a detailed specification similar as in 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.
Lateness and Drop-Lowest Policies
The late submission and drop policies for various tasks 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 |
|---|---|---|
| Lecture Attendance | No late submissions | 6 drops |
| Lab Attendance | No late submissions | 2 drops |
| Lab Assignments | No late submissions | No drops |
| zyBooks Readings (Pre) | No late submissions | 4 drops |
| PrairieLearn (Post) | No late submissions | 4 drops |
| Projects 1–3 | 3 “late days” to use throughout the semester | No drops |
| Final Project Core and Reach | No late submissions | No drops |
| Other Assignments | No late submissions | No drops |
If you have to miss something due to sickness, some other U-M activity, a family emergency, or any other reason, then that will use up one of your drops. There is no need to contact us about this, and there is no “excusing” of something missed beyond the drop policy above. For longer-lasting concerns, please contact us using the Admin Form.
Resources
Piazza
All students should register on Piazza, the course’s discussion forum. We do not answer technical questions via email.
Do not post source code on Piazza. Publicly posting error messages is allowed, but be sure to provide context of what you’ve tried as well. This 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 on the Office Hours page.
Canvas
We will be using Canvas to make announcements, posting grades, and for lecture recordings.
The location of lecture recordings on Canvas is dependent on the particular classroom’s recording capability; they are available in the “Media Gallery” section and/or in a “Lecture Recordings” section in the left sidebar.
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
Points Distribution
Final grades will be based on the total percentage earned during the course. The percentage breakdown follows:
| Item | Percentage |
|---|---|
| Assignments* | 1% |
| Lecture Attendance | 1% |
| ZyBooks Readings & Exercises (Pre) | 5% |
| PrairieLearn (Post) | 10% |
| Lab Assignments | 4% |
| Lab Attendance | 4% |
| Project 1 | 9% |
| Project 2 | 9% |
| Project 3 | 9% |
| Final Project | 12% |
| Exam 1 | 12% |
| Exam 2 | 12% |
| Exam 3 | 12% |
| Total | 100% |
*Assignments 1, 2, and 3 are surveys and other assignments that will be posted in the course schedule.
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 |
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 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, be sure to follow the Late Add Policy for how to request extensions on certain tasks.
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 know right away using the Admin Form. We will work with you to figure out a plan for moving forward. We will follow the University’s guidelines regarding documentation of medical and other unexpected events.
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.
- Acknowledge the ways everyone is being called upon to use a potentially new set of technology skills, and normalize the fact that everyone will have learning to do, though this will look different for different people.
- Take pair work or small group work seriously. Remember that your peers’ learning is partly dependent upon your engagement.
- Understand that we are bound to make mistakes in this space, as anyone does when approaching complex tasks or learning new skills. Strive to see your mistakes and others’ as valuable elements of the learning process.
- Understand that your words have effects on others. Speak with care.
- Understand that others will come to these discussions with different experiences from yours. Be careful about assumptions and generalizations you make based only on your own experience. Be open to hearing and learning from other perspectives.
- Recognize how your own social positionality (e.g., race, class, gender, sexuality, ability) informs your perspectives and reactions to your instructors and fellow students.
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 us so that we can find solutions together. For personal concerns, U-M offers the following resources:
- Counseling and Psychological Services (CAPS) - confidential; 734-764-8312; for after-hours urgent support, call and press 0; counseling, workshops, groups and more, counselors are embedded in some schools.
- Dean of Students Office - 734-764-7420; provides support services to students and manages critical incidents impacting students and the campus community
- Ginsberg Center for Community Service Learning - 734-763-3548; opportunities to engage as learners and leaders to create a better community and world
- Maize and Blue Cupboard (MBC) - 734-936-2794; Food pantry with groceries, kitchen and cooking supplies, personal and household items, and support
- Multi-ethnic Student Affairs (MESA) - 734-763-9044; diversity and social justice through the lens of race and ethnicity
- Office of Student Conflict Resolution - 734-936-6308; offers multiple pathways for resolving conflict
- Office of the Ombuds - 734-763-3545; students can raise questions and concerns about the functioning of the university.
- Student Accessibility and Accommodation Services (SAAS) - 734-763-3000; accommodations and access to students with disabilities
- Sexual Assault Prevention and Awareness Center (SAPAC) - confidential; 734-764-7771 or 24-hour crisis line 734-936-3333; addresses sexual assault, intimate partner violence, sexual harassment, and stalking
- Spectrum Center - 734-763-4186; support services for LGBTQ+ students
- Trotter Multicultural Center - 734-763-3670; intercultural engagement and inclusive leadership education initiatives
- University Health Service (UHS) - 734-764-8320; clinical services include nurse advice by phone, day or night
- Well-being Collective - searchable list of many more campus resources
- Wolverine Wellness - confidential; 734-763-1320; provides Wellness Coaching, Collegiate Recovery Program, and much more
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 provides a list of available resources(opens in new tab).
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 Student Accessibility and Accommodation Services(opens in new tab) (734-763-3000 or ssdoffice@umich.edu). For students who are connected with SAAS, accommodation requests can be made in the Accommodate system. If you have any questions or concerns please contact your SAAS Coordinator or visit the SAAS website(opens in new tab). SAAS considers aspects of the course design, course learning objects and the individual academic and course barriers experienced by the student. Further conversation with SAAS, instructors, and the student may be warranted to ensure an accessible course experience.
If you are in the process of working with the SAAS 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 SAAS 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.
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(opens in new tab) 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:
- ✔ Give or receive help in understanding course concepts covered in lecture or lab.
- ✔ Practice and study with other students to prepare for assessments or exams.
- ✔ Consult with other students to better understand project specifications.
- ✔ Discuss general design principles or ideas as they relate to projects.
- ✔ Help others understand compiler errors or how to debug parts of their code.
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 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, we will clarify the following definitions:
- AI: Any artificial intelligence tool, including chatbots (e.g., ChatGPT, U-M GPT, …), code generation tools (e.g., Claude Code, …), AI autocompletion, or any other generative AI tool. To clarify, all university-provided AI tools (e.g., U-M GPT) are included in this definition. There are no special “allowed” rules for university-provided AI tools.
- Graded Task: Any work you do that is submitted for a grade, including projects, labs, PrairieLearn exercises, zyBooks exercises, exams, in-class exercises, and any other graded work.
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:
- Studying course concepts, generating examples of a particular topic for studying - without providing an AI tool with any form of graded task description or graded task code
- Checking unique study examples you made yourself for correctness
- Generating additional practice exam questions or practice coding problems
- Spelling and grammar checkers
- Standard IDE features (like IntelliSense) that offer simple lists of available functions/methods in a given context, without generating full code snippets
Prohibited: The following uses of AI are always prohibited, unless explicitly stated otherwise for a particular graded task:
- Generating project code, test cases, or any other work to be submitted (with or without modifications)
- Code autocompletion tools
- All tools during exams
- Submitting generated content as your own work when contributing to group graded tasks
- Using AI to complete or check your work in graded tasks
- Pasting error messages or erroneous output into AI tools
- Disguising graded code as study examples in order to get feedback
Honor Code Violations
The following are considered Honor Code violations:
- ⊘ Violating the AI policy above.
- ⊘ Submitting others’ work as your own.
- ⊘ Copying or deriving portions of your code from others’ solutions. This includes solutions from any source, including AI-generated solutions.
- ⊘ Collaborating to write your code so that your solutions are identifiably similar.
- ⊘ Sharing your code with others to use as a resource when writing their code.
- ⊘ Receiving help from others to write your code.
- ⊘ Sharing test cases with others if they are turned in as part of your solution.
- ⊘ Sharing your code in any way, including making it publicly available in any form (e.g. a public GitHub repository or personal website).
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:
- Using starter code provided by course instructors.
- Having the same idea as someone else.
- Receiving similar help/guidance from the same course staff member in office hours.
- Helping another student understand compiler errors or debug part of their code. (You may NOT give/receive assistance with the process of writing the code originally.)
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:
- The instructors submit an official report to the Honor Council.
- 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.
- The course instructors play no role in determining the outcome of reported cases.
- 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:
- You receive an “I” (incomplete) grade until the case is resolved.
- Your grade is updated once the case is resolved. The “I” should not remain on your transcript.
Copyright and Intellectual Property Notice
© 2026 William Arthur and Steven Bogaerts. All rights reserved.
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).
- Student Use: These materials are provided solely for the educational use of students currently enrolled in this course at the University of Michigan - Ann Arbor. Students may not copy, reproduce, republish, or distribute these materials (in part or in full) to any public or private platform.
- External and Instructor Use: No part of these materials may be used, adapted, or distributed by external instructors or institutions without the explicit written permission of the author(s).
To request permission to use or adapt these materials for educational purposes, please contact the author(s).