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.

Start preparing for Exam 1

To get started preparing for Exam 1, here are some things you should do:

This Week (Sep. 25 - Sep. 29)

Week Monday Tuesday Wednesday Thursday Friday
Sep. 25 - Sep. 29

Lecture 7 and 8 CodeLab

Lecture 9 and 10 zyBooks

Lecture 9: Strings

Lab 4 Extension Deadline

Project 2 Extra Credit

Lecture 10: Pass by Reference Project 2 Due

Exam 1 Review, Sunday 10/1

Current Projects and Labs

Project 2
Due 9/29 8PM
Lab 5
Due evening of your lab at 11:59PM, with extension until 10/3
Lab 4
Due evening of your lab at 11:59PM, with extension until 9/26

Resources for Class

Fall 2022 Exams and Major Deadlines

Exam Dates
Project Deadlines

Project 1: September 15

Project 2: September 29

Project 3: October 20

Project 4: November 3

Final Project Core: November 20

Final Project Reach: December 6

Final Project Showcase: December 11

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