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.

Welcome to EECS 183 in C++

We're glad you are here!

To prepare for the semester, here are some things you will do: If you are adding the course after January 9, make sure you follow the instructions on this page.

This Week

Week Monday Tuesday Wednesday Thursday Friday
Jan 5 - Jan 9 First day of Winter term

No Wednesday Labs

No Thursday Labs

Lecture 1: Algorithms

No Friday Labs

Meet The Staff Event, Sunday 1/11, 6-7:30pm, CHEM 1210

Current Projects and Labs

Coming soon
First project and lab coming soon

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