EECS 183: Elementary Programming Concepts in C++

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 lectures. If you are in the 11:30 AM or 2:30 PM lecture, please go here

Special Topics labs - 4/15 and 4/16

The teaching staff have assembled a series of special topics labs to celebrate the end of the semester! You are encouraged to attend one or more of these sections based on your interest. Highly recommended but not required.

Topics will include prepping for CS interviews, what to expect in EECS 280 and EECS 203, and Econ/Business & CS.

Note: What to expect in EECS 280 and EECS 203 has moved to Thursday 4/16 at 4:00 pm.

Find all of the details here.

This Week

Week Monday Tuesday Wednesday Thursday Friday
Apr 13 - Apr 17

Special Topics Labs This Week

Lecture 24 zyBooks

Lecture 23 CodeLab

Lab 10 Extension Deadline

Lecture 24: AI

No Lecture

Current Projects and Labs

Resources for Class

Winter 2025 Exams and Major Deadlines

Exam Dates
EECS 183 Showcase

Thursday, April 23

Michigan League Ballroom

You and your team of 4 will attend one of four, 60-minute sessions, to be scheduled later in the semester.

Project Deadlines

Project 1: January 23

Project 2: February 6

Project 3: February 27

Project 4: March 20

Final Project Core: April 10

Final Project Reach: April 21

Final Project Showcase: April 23

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