Concepts of Programming

Title Concepts of Programming (50101)
Quarter Winter 2016
Instructor Jeffrey Cohen (jeffcohen@cs.uchicago.edu)
Website

Syllabus 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 https://www.python.org/.   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


 

 

Prerequisites (Courses)

Prerequisites (Other)

MPCS Students Only

Satisfies

Time

Thursdays 5:30-8:30

Location

Young 302