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.

If you are adding the course after September 2, make sure you follow the instructions on this page.

This Week

Week Monday Tuesday Wednesday Thursday Friday
Sep. 16 - Sep. 20

Lecture 5 and 6 CodeLab

Lecture 7 and 8 zyBooks

Lecture 7: Loops 1

Lab 3 Extension Deadline

Exam 1 time conflict - alternate request due

Lecture 8: Loops 2

Current Projects and Labs

Project 2
Due 9/27 8PM
Lab 4
Assignment due evening of your lab at 11:59PM, with extension until 9/24
Lab 3
Assignment due evening of your lab at 11:59PM, with extension until 9/17

Resources for Class

Fall 2024 Exams and Major Deadlines

Exam Dates
Project Deadlines

Project 1: September 13

Project 2: September 27

Project 3: October 18

Project 4: November 1

Final Project Core: November 22

Final Project Reach: December 9

Final Project Showcase: December 11

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