MPCS 51042 Python Programming (Autumn 2021)

Section 2
Instructor(s) Mairs Morgan, Hannah (hmmorgan)
Location Online Only
Meeting Times Tuesday 5:30pm - 8:30pm
Fulfills Core Programming

Syllabus

Description

Python is a general-purpose programming language that is used in many application areas, including web
development, scientific computing, graphical user interfaces, systems programming, gaming, rapid prototyping,
data mining, and more. This course provides a thorough overview of the Python 3 language with an emphasis
on writing idiomatic code in Python and object-oriented design patterns and is suitable for students with some
prior programming experience. We will develop an understanding of the core features of the languages and gain
exposure to commonly used standard-library and third-party modules.

Course Format

Weekly classes will provide lectures, programming examples, and code review from previous assignments.
Eight multi-part assignments will be given with one week for completion. A midterm and final examination will
also be given.

You are strongly encouraged to bring a laptop to class to follow along with examples interactively.

Outline

  • Week 1: Types, operations, statements, and syntax
  • Week 2: Functions, generators, and scope
  • Week 3: Classes and objects
  • Week 4: The Python data model
  • Week 5: Decorators and dynamic attributes
  • Week 6: Packaging and distribution (Mid-term)
  • Week 7: Testing, debugging, logging, and documentation
  • Week 8: Scientific computing stack
  • Week 9: Parallelism and concurrency
  • Week 10: Special topics

Textbooks

While there are no required textbooks for this course, the following books may be useful for reference:
  • Learning Python, by Mark Lutz
  • Fluent Python, by Luciano Ramalho
  • Python in a Nutshell, by Martelli, Ravenscroft, and Holden
  • Python Essential Reference, by David Beazley

Course Prerequisites

Immersion programming (MPCS 50101) or passing score on Programming Placement Exam.

Other Prerequisites

Not approved for CAPP or MACS students.

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 52560-1 -- Applied Financial Technology
  • MPCS 51230-1 -- User Interface and User Experience Design
  • MPCS 52011-1 -- Introduction to Computer Systems
  • MPCS 50101-1 -- Concepts of Programming

Eligible Programs

Masters Program in Computer Science Bx/MS in Computer Science (Option 3: Profesionally-oriented - Non-CS Majors)