MPCS 50101 Concepts of Programming (Summer 2025)

Section 1
Instructor(s) Binkowski, Thomas (abinkowski)
Location Online
Meeting Times Monday 5:30pm - 7:15pm
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. Note, after completing MPCS 50101 Concepts of Programming, students are only eligible to take to take MPCS 51036 Java or MPCS 51042 Python as their MPCS Core Programming course. If you have a background in programming and are interested in taking a more advanced Core Programming class in the Autumn quarter, you should plan to to take the MPCS Programming Placement Exam for proper course placement.

Overlapping Classes

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

  • MPCS 53113-1 -- Natural Language Processing
  • MPCS 58020-1 -- Time Series Analysis and Stochastic Processes
  • MPCS 51400-1 -- Functional Programming
  • MPCS 56535-1 -- Foundations of Cryptography

Eligible Programs

Masters Program in Computer Science Masters Program in Computer Science (new) Placement: Pass I Masters Program in Computer Science (Immersion)