Michigan EECS 183: Elementary Programming Concepts
EECS 183 is Michigan's intro programming course for students with little or no coding experience, taught in C++ and Python. It's the standard entry point into the CS sequence for students who aren't ready to jump straight into EECS 280, and it ends with an open-ended final team project.
Fennie is independent and not affiliated with University of Michigan. This is an unofficial study guide.
Build my EECS 183 study planWhat makes it hard
The material starts gentle but ramps fast — by the time loops, functions, and classes stack up, students who fell behind on the early projects struggle to recover. The autograded projects have strict specs, and the final group project demands real time management in the last month of the semester.
What you'll cover
- • Variables, types, and control flow
- • Functions and program decomposition
- • Arrays, vectors, and strings
- • Classes and basic object-oriented design
- • C++ and Python fundamentals
- • Testing and debugging with an autograder
The EECS 183 study guide
How to study for Michigan EECS 183, step by step.
- 1
Start every project the day the spec drops
EECS 183 projects are autograded against strict specs, and early submissions catch spec misreadings while there's still time to fix them. Read the spec twice before writing a line of code.
- 2
Rebuild lecture examples from scratch
The material ramps from gentle to fast, so retype and modify each week's examples yourself instead of just reading them. Loops, functions, and classes compound — a fuzzy week two becomes a brutal week six.
- 3
Practice tracing code on paper
Exams ask you to predict what code does without a compiler, which is a different skill than passing the autograder. Trace a few functions by hand each week from day one.
- 4
Treat the final team project like a job
Set internal milestones with your team well before the real deadlines, because the project's last month collides with every other course's finals crunch. Divide work early and integrate often.
- 5
Put EECS 183 on autopilot with Fennie
Upload the EECS 183 syllabus and project schedule to Fennie and Daily Plans turn this guide into a day-by-day schedule paced to every project deadline and exam, with flashcards and practice quizzes generated from your actual course materials. Free to start.
Start my EECS 183 plan free
How Fennie helps with EECS 183
Upload the EECS 183 syllabus and project schedule and Fennie's Daily Plans pace your studying around each project deadline and exam, so you're never starting a project two days before it's due. Chat through concepts like pass-by-reference or class design when lecture moves too fast, and generate practice quizzes before each exam.
FAQ
Is EECS 183 hard?
Not compared to later EECS courses, but it's a real time commitment. The projects are autograded against strict specs, and students with zero programming background should expect 10+ hours a week early on. Falling behind on projects is the main way people end up with a bad grade.
Should I take EECS 183 or EECS 280 first at Michigan?
If you have solid prior programming experience (AP CS A or equivalent), most advisors let you start in EECS 280. If you've never coded, EECS 183 is the safer entry — jumping into 280 cold is a common cause of CS-track dropouts.
What language does EECS 183 use?
Primarily C++, with some Python. The C++ foundation matters because EECS 280 and 281 are both C++-based, so what you build here carries directly into the rest of the sequence.
Pass EECS 183 with a plan, not a cram
Upload your EECS 183 materials and Fennie generates a Daily Plan paced to your deadline — plus chat, flashcards, and quizzes built from the actual course content.
Get started freeMore Michigan courses
EECS 280 — Programming and Introductory Data Structures
EECS 280 is the second course in Michigan's CS sequence, covering C++ programming in depth: pointers, dynamic memory, container ADTs, polymorphism, and recursion. It's a prerequisite for nearly everything in the CS major and the course where Michigan students first hit serious multi-week projects.
EECS 281 — Data Structures and Algorithms
EECS 281 is Michigan's data structures and algorithms course and the gateway to upper-level CS — most 400-level EECS courses require it. It covers algorithm analysis, sorting, hashing, trees, graphs, and dynamic programming, with large C++ projects graded heavily on runtime performance.
EECS 203 — Discrete Mathematics
EECS 203 is the discrete math requirement for the CS major, covering logic, proofs, set theory, combinatorics, graphs, and an introduction to algorithm analysis. It's typically taken alongside EECS 280, and together they form the gateway pair into the Michigan CS core.
EECS 370 — Introduction to Computer Organization
EECS 370 covers how computers actually execute programs: assembly language, instruction set architecture, pipelining, caches, and virtual memory. It's a core requirement after EECS 280, with projects that include building a simulator and an assembler in C.