CS 111
Spring 2018

Old version

This is the CS 111 site as it appeared on May 10, 2018.

Schedule

week

lecture dates

topics, exams, due dates, and other special dates

0

1/19

  • Course overview and introduction
  • Computational problem-solving with Picobot

1

1/22, 1/24, 1/26

  • Getting started in Python
  • Data types and expressions
  • Strings and lists
  • A first look at functions
  • Making decisions (conditional execution)
  • Problem Set 0 (all) due on 1/28

2

1/29, 1/31, 2/2

  • Functions (cont.)
  • Local and global variables; the runtime stack
  • Recursion
  • 1/31: last day to add a class
  • Problem Set 1, part I due on 2/1
  • Problem Set 1, part II due on 2/4

3

2/5, 2/7, 2/9

  • Higher-order functions and list comprehensions
  • Recursive design
  • Lists of lists; encryption and decryption
  • Problem Set 2, part I due on 2/8
  • Problem Set 2, part II due on 2/11

4

2/12, 2/14, 2/16

  • Algorithm design; encryption and decryption
  • Representing information
  • Problem Set 3, part I due on 2/15
  • Problem Set 3, part II due on 2/18

5

2/20 , 2/21, 2/23

  • Digital logic and circuit design
  • Machine organization
  • No lecture on 2/19 (Presidents’ Day)
  • Lecture on 2/20 (Mon. schedule)
  • No labs this week
  • 2/22: last day to drop without a ‘W’
  • Problem Set 4, part I due on 2/22
  • Problem Set 4, part II due on 2/25

6

2/26, 2/28, 3/2

  • Digital logic and circuit design (cont.)
  • Assembly language
  • Midterm 1 on 2/28 from 6:30-7:30 pm

Spring break

7

3/12, 3/14, 3/16

  • Assembly language (cont.)
  • Loops and imperative programming
  • Cumulative computations
  • Problem Set 5, part I due on 3/15
  • Problem Set 5, part II due on 3/18

8

3/19, 3/21, 3/23

  • Nested loops
  • Design using loops
  • References; mutable vs. immutable data
  • Problem Set 6, part I due on 3/22
  • Problem Set 6, part II due on 3/25

9

3/26, 3/28, 3/30

  • 2-D lists
  • Object-oriented programming
  • File processing
  • Classes: creating your own types of objects
  • 3/30: last day to drop with a ‘W’
  • Problem Set 7, part I due on 3/29
  • Problem Set 7, part II due on 4/1

10

4/2, 4/4, 4/6

  • Classes: creating your own types of objects (cont)
  • Dictionaries
  • Inheritance
  • Midterm 2 on 4/4 from 6:30-7:30 pm
  • Problem Set 8 (all) due on 4/8

11

4/9, 4/11, 4/13

  • Games and AI
  • Overview of the final project
  • Problem Set 9, part I due on 4/12
  • Problem Set 9, part II due on 4/15

12

4/18, 4/20

  • Finite-state machines
  • No lecture on 4/16 (Patriots’ Day)
  • Problem Set 10, part I due on 4/22

13

4/23, 4/25, 4/27

  • Finite-state machines (cont.)
  • Algorithm efficiency and problem “hardness”
  • Problem Set 10, part II due on 4/26

14

4/30, 5/2

  • Problem “hardness” (cont.)
  • Wrap-up
  • Final project due on 5/1
  • 5/3-5/6: Study period

15

  • Final exam: May 10, 9-11 a.m.