MPCS 50101 Concepts of Programming (Autumn 2021)

Section 1
Instructor(s) Binkowski, Thomas (abinkowski)
Location Online Only
Meeting Times Tuesday 5:30pm - 7pm
Fulfills Immersion Programming

Syllabus

Course Description

In this course students will get an introduction to the field of computer science by learning to program in Python. Students will write code each week, learning the essentials of how to solve real-world problems in an object-oriented programming language. We will learn about fundamental data structures and algorithms, professional coding practices,  algorithm design, automated testing, and the fundamentals of object-oriented programming.

In MPCS 50101, we provide an immersive introduction to programming for students who may not have prior experience. We will use the Python programming language to explore general-purpose computer programming and algorithmic reasoning, in an object-oriented context.

Course Content

During this course, students will learn:

  •  how to construct algorithms, and express them as computer programs;
  •  how to refine and improve programs by an iterative process;
  •  the core principles of object-oriented programming;
  •  fundamental data structures: arrays, sets, maps, and trees;
  •  the basics of computational efficiency and "big O" notation.

Coursework
  • Homework is worth a total of 50%.  There will be 9 weekly assignments.  The lowest homework grade will be dropped.
  • The midterm is worth 20% and will cover material through week 5.
  • The final exam is worth 30%.

Course Prerequisites

Other Prerequisites

MPCS Students Only

This course requires competency in Unix and Linux. Please plan to attend the MPCS Unix Bootcamp (https://masters.cs.uchicago.edu/page/mpcs-unix-bootcamp) or take the online MPCS Unix Bootcamp Course on Canvas.

Overlapping Classes

This class is scheduled at a time that conflicts with these other classes:

  • MPCS 51046-1 -- Intermediate Python Programming
  • MPCS 55001-2 -- Algorithms
  • MPCS 51042-2 -- Python Programming
  • MPCS 52560-1 -- Applied Financial Technology
  • MPCS 51230-1 -- User Interface and User Experience Design
  • MPCS 52011-1 -- Introduction to Computer Systems

Eligible Programs

Masters Program in Computer Science