MPCS 50101 Concepts of Programming (Winter 2016)

Section 1
Instructor(s) Cohen, Jeffrey (jeffcohen)
Location Young 302
Meeting Times Thursday 5:30pm - 8:30pm
Fulfills Immersion Programming


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.  

Students must install Python 3.5 prior to the first class from   Detailed instructions for Mac OS X and Windows will be provided to registered students before the quarter begins.  

Course Description
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.

Students will learn:

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

Course Contents

Week 1: Basic computation; how to setup your local development environment.
Week 2: Iteration, methods, and decision structures.
Week 3: Data structures, Part 1: lists, arrays, sets, and maps.
Week 4: Internet connectivity, defining protocols, and consuming web services.
Week 5: User-defined classes, static data vs. instance data, encapsulation.
Week 6: Class inheritance and polymorphism. [MIDTERM THIS WEEK]
Week 7: Object-oriented programming and design
Week 8: Data structures, Part 2: linked lists, binary trees, and graphs.
Week 9: Recursion and "Big-O" notation
Week 10: Overview of statically-typed languages.
Week 11: FINAL EXAM.

Grading & Coursework

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

Required Textbooks



Course Prerequisites

Other Prerequisites

MPCS Students Only

Overlapping Classes

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

  • MPCS 52010-1 -- Computer Architecture