EECS 183

Website Coming Soon!

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

We will continue to expand capacity in the course so that everyone can enroll. Please join the waitlist!

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 (link coming soon).

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.

We are glad you are here!

New students - welcome to Michigan!

Returning students - welcome back!

We are busy preparing the course for the Fall 2026 term and will publish the website before the start of classes.

You can get a peek at what we do from the Winter 2026 course archive here

You should take this course if you plan for...

  • Build problem-solving skills necessary in all future careers
  • Gain computing literacy imperative for the information age
  • Never had the chance to take a programming course in high school
  • Had a bad experience in your programming course in high school - we're much better than that!
  • Are curious about computing
  • An interesting and useful course to fulfill your MSA or QR distribution for LSA
  • Study areas including AI, computer science, data science, cognitive science, statistics, mathematics, information, or anything related to computing
  • Transfer from a school/college at UM to the College of Engineering

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