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
Apr 8 - Apr 12 No Monday labs

No office hours Monday

Lecture 20 and 21 zyBooks

Lecture 21: Python 2

Lab 9 Extension Deadline

Lecture 22: Python 3

Final Project Core Due

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

Final Project Core Team Evaluations Due Saturday 4/13 (link will be sent over e-mail)

Special Topics Labs - Tuesday 4/16 through Friday 4/19

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 4/15 to 4/19 not listed are cancelled.

Tuesday 4/16 Wednesday 4/17 Thursday 4/18 Friday 4/19

1) EECS & SI Course Planning!

2) How to prepare for internships and recruitment season!

3) You finished EECS 183!!: now what?

1) How to Become an EECS 183 IA

2) Deep Learning/Neural Networks

3) Economics/Business and CS: What if I like both??

4) Intro to Bioinformatics

1) Computer Security and Messaging Security

2) Intro to Computer Organization and Design

Transfer Learning

Topic Description Staff Time Location
EECS & SI Course Planning! Go through the next EECS or SI courses and get scheduling tips! Abby Hart & Kelly Zhang Tuesday, 4/16, 12:00pm to 2:00pm B760 School of Social Work Building
How to prepare for internships and recruitment season Tips and tricks from refining your resume to career fair. Do a mock technical interview with students and show them how they should answer technical questions. Amruta and Shalini Tuesday, 4/16, 2:00pm to 4:00pm 1033 Dental
You finished EECS 183!!: now what? Courses to take after EECS 183, careers that use computer science (beyond software engineering) Richa Tuesday, 4/16, 4:00pm to 6:00pm 1505 NUB
How to Become an EECS 183 IA Tips and tricks for becoming an eecs ia! Makayla & Krithika Wednesday, 4/17, 10:00am to 12:00pm 3752 School of Social Work Building
Deep Learning/Neural Networks Learn about the basics of neural networks and build a basic network to classify movie reviews! Aakanksha & Nolan Wednesday, 4/17, 12:00pm to 2:00pm B770 School of Social Work Building
Economics/Business and CS: What if I like both?? Explore the intersection of Economics, Business, and Computer Science to gain a little insight into potential career paths. If you're uncertain about pursuing a Computer Science major/minor, we will discuss different career prospects, course planning options, and strategies for balancing these disciplines. Isabella and Aakanksha Wednesday, 4/17, 2:00pm to 4:00pm G580 Dental
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. Sarah Golts Wednesday, 4/17, 4:00pm to 6:00pm 2244 Undergraduate Science Building
Computer Security and Messaging Security How secure are your text messages? We'll talk about what security even is, how (in)secure different texting platforms are, what methods we have to protect ourselves, and how far we have to go. Krithika Thursday, 4/18, 11:00am to 1:00pm 3752 School of Social Work Building
Intro to Computer Organization and Design High-level overview on computer organization (how computers take your code and actually execute it) Taru Thursday, 4/18, 5:30pm to 7:30pm 4151 Undergraduate Science Building
Transfer Learning Transfer Learning is a machine learning concept where a model applies learning from one task to a different, related task. This concept is used in a variety of applications including computer vision tasks and natural language processing (NLP). We will go through a high-level introduction to transfer learning and how it is applied to improve task performance. Amanda Friday, 4/19, 1:00pm to 3:00pm R0320 BUS

Current Projects and Labs

Lab 10
Due during week of lab, 4/8 to 4/12

Resources for Class

Winter 2024 Exams and Major Deadlines

Exam Dates
EECS 183 Showcase

Tuesday, April 30

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 26

Project 2: February 9

Project 3 Checkpoint: February 23

Project 3 Final: March 8

Project 4: March 22

Final Project Core: April 12

Final Project Reach: April 23

Final Project Showcase: April 30

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