EECS 183: Elementary Programming Concepts

University of Michigan

EECS 183 is an introductory course to computer science and programming, covering the basics of computing as well as problem-solving and algorithmic thinking.

This website is for everyone in the 8:30 AM, 1 PM, and 4 PM (C++) lectures. If you are in the 11:30 AM or 2:30 PM lecture (Python), please go here.

Staff office hours are available! Find the times and locations here.

Final Projects

  1. Read the project summary.
  2. Find a team of 4 people to work with.
  3. Pick a project:
  4. Attend the tutorial Sunday, November 1 6-7 PM
    • Elevators - 1210 CHEM
    • Arduino - 1400 CHEM
    • Tutorial is optional, but encouraged. A great way to get started and to find a team.
  5. Register your team by Monday 11/2 at 11:59 PM

This Week

Week Monday Tuesday Wednesday Thursday Friday
Oct. 26 - Oct. 30

Lecture 15 CodeLab

Lecture 16 and 17 zyBooks

Lecture 16: Classes 1

Exam 2 time conflict - alternate request due

Lecture 17: Classes 2

Final Project Tutorials, Sunday 11/1, 6-7PM, Arduino_CHEM_1400 Elevators_CHEM_1210

Current Projects and Labs

Project 4
Due 11/6 8PM
Lab 7
Due evening of your lab at 11:59PM, with extension until 11/2

Resources for Class

Fall 2026 Exams and Major Deadlines

Exam Dates
Project Deadlines

Project 1: September 18

Project 2: October 2

Project 3: October 23

Project 4: November 6

Final Project Core: November 24

Final Project Reach: December 11

Final Project Showcase: December 15

EECS 183 is an introductory course to computer science and programming, covering the basics of computing as well as problem-solving and algorithmic thinking.

EECS 183 is an introductory course in computer programming for computer science majors and non-majors alike. Topics include control flow, introductory data structures, algorithms using selection and iteration, basic object-oriented programming, testing and debugging. We primarily use C++ as a programming language. There are no prerequisites. EECS 183 assumes no prior programming experience.

By the end of this course, a successful student will be able to:

  • Read a specification and translate it to a computer program
  • Follow a process of writing one small part of a program at a time
  • Comfortably use Visual Studio or XCode to write and debug code
  • Write test cases that test the full range of code functionality
  • Design an algorithm to generate a given output
  • Write functions using both pass by reference and pass by value parameters
  • Use file streams and standard streams to read input and write output
  • Write a class and successfully access private and public member variables
  • Run test inputs to a program and compare them to test outputs to verify a program works correctly
  • Format a program according to a style guide