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.

This Week

Week Monday Tuesday Wednesday Thursday Friday
Nov. 18 - Nov. 22

Lecture 22 and 23 zyBooks

Lecture 22: Python 2

Lab 9 Extension Deadline

Final Project Showcase Registration Due (link will be sent over e-mail)

Lecture 23: Python 3

Final Project Core Due

Current Projects and Labs

Final Project Elevators
Core due Nov. 22
Final Project Arduino
Core due Nov. 22

Special Topics Labs - Monday 12/2 through Friday 12/6

The teaching staff have put together 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. You can assume that lab sections 12/2 to 12/6 not listed are cancelled.

Monday 12/2 Tuesday 12/3 Wednesday 12/4 Thursday 12/5 Friday 12/6

1) Intro to Bioinformatics!

2) What's next after EECS 183? CS/DS/CE/SI/STATS major/minor options

1) You now know enough code to make real videogames! Here's why you should.

2) LeetCode/Interview 101

1) "So.... What Now?": Kelsi and Emma Talk Internships

2) "How Did We Get Here?" A discussion of the history of programmers, from the first official "computer scientist" all the way to EECS 183 and complex programming!

Intro to EECS 280

EECS & SI Course Planning!

Topic Description Staff Time Location
Intro to Bioinformatics! Learn about bioinformatics: what it is and how to get into it! We will discuss the types of data that are analyzed, such as DNA and protein sequences, as well as the tools used to analyze them. Single cell RNA sequencing (scRNA-seq) data example will be done together during lab! Sarah Golts Monday, 12/2, 9:00am to 11:00am 1046 Dana Building (DANA)
What's next after EECS 183? CS/DS/CE/SI/STATS major/minor options We will talk about the computer science/computer engineering/data science/information/statistics paths after EECS 183 for those interested in majoring or minoring. If you liked 183, come find out the different paths available from this class! Krithika and Lynn Monday, 12/2, 2:00pm to 4:00pm 2852 Palmer
You now know enough code to make real videogames!Here's why you should. With the C++ knowledge that you've accumulated over the course of EECS 183, you already know enough to make video games, right now, using whatever engine you want to. We'll talk a little bit about the differences between C++ and C#, how to get started developing with Unity, and good resources to start learning. This is not a tutorial, but it might be helpful to you to have Unity and the Unity Hub predownloaded, with a Unity account set up beforehand. Evan Marcus Tuesday, 12/3, 10:00am to 11:50am 1567 North University Building (NUB)
LeetCode/Interview 101 Intro to leetcode grinding, starting with asking them to create LC account, go through 1-2 easies with them, A1 mocking A2 for a LC medium as an interview Angela and Angie Tuesday, 12/3, 1:00pm to 3:00pm 1567 North University Building (NUB)
"So.... What Now?": Kelsi and Emma Talk Internships Two CS seniors discuss what they wish they knew at the beginning of their software engineering (SWE) internship recruitment processes. They will step you through exactly what to expect and what resources are available to you so it doesn't feel as overwhelming! Kelsi Sumter and Emma Cherrin Wednesday, 12/4, 12:00pm to 2:00pm 2229 School of Education Building (SEB)
"How Did We Get Here?" A discussion of the history of programmers, from the first official "computer scientist" all the way to EECS 183 and complex programming! Celebrating a diverse journey: figures like Alan Turing, Ada Lovelace, Katherine Johnson, Grace Hopper, and more. Learn some trivia knowledge and our predeccessors in computing! Hannah & Lynn Wednesday, 12/4, 3:00pm to 5:00pm 2752 School of Social Work Building (SSWB)
Intro to EECS 280 Don't be jumpscared by EECS 280! We'll explain the new tech you'll be using to ease you into all the setup! Come also for some tips for success and an introduction to material! Tips to Succeed, Intro to VS Code, Makefiles, Command Line Interface, Pointers???" Alan Sun, Allison Okimoto Thursday, 12/5, 4:00pm to 6:00pm R1210 Business Administration (BUS)
EECS & SI Course Planning! Go through the next EECS or SI courses and get scheduling tips! Kelly & Abby Friday, 12/6, 2:00pm to 4:00pm Lecture RM 1 Modern Languages Building (MLB)

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