MPCS 51042 Python Programming (Winter 2026)

Section 1
Instructor(s) Skluzacek, Tyler (skluzacek)
Location Crerar 011
Meeting Times Monday 5pm - 8pm
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 with interactive notebooks to help you follow along and practice concepts.
 
The first several weeks will  include a programming assignment expanding on the topics covered in class.  The hands on programming portion will culminate in a larger multi-part project.
 
There will also be in-person quizzes and a final exam to help you evaluate your mastery of concepts covered in this class.
 

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

Course Overview

  • Python Basics: types, variable, operations, control flow, iteration
  • Functions, recursion, generators and scope
  • Classes, objects, OOP programming
  • Decorators and dynamic attributes
  • The Python Data Model
  • Data structures in Python (lists, stacks, hash tables, queues, trees)
  • An overview of modules and the Python Standard library & ecosystem.
  • An introduction to scientific computing and data manipulation (pandas, numpy, etc)


Textbooks

While there are no required textbooks for this course, the following books may be useful for reference:

  • Python Distilled (1st Edition)
  • Learning Python (5th Edition), by Mark Lutz
  • Fluent Python (2nd Edition), by Luciano Ramalho (1st Edition OK)

Course Prerequisites

Must have completed MPCS 50101 Concepts of Programming or must receive a PASS on the MPCS Programming Placement Exam I.

Other Prerequisites

This course requires competency in Unix and Linux. New students must attend the MPCS Unix Bootcamp during orientation.

CAPP, MACSS and MSME students interested in taking this class should talk with their program's advisor.

Overlapping Classes

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

  • MPCS 51087-1 -- High Performance Computing

Eligible Programs

MS in Molecular Engineering Masters Program in Computer Science MS in Computational Analysis in Public Policy (new) Placement: Pass I MS in Computational Analysis in Public Policy (new) Placement: Pass I + II (w/ Advanced) MS in Computational Analysis in Public Policy (new) Placement: Pass I + II Masters Program in Computer Science (new) Placement: Pass I Masters Program in Computer Science (new) Placement: Pass I + II Masters Program in Computer Science (new) Placement: Pass I + II (w/ Advanced)