CS 111
Spring 2019

Schedule

week

lecture dates

topics, exams, due dates, and other special dates

0

1/23, 1/25

  • Course overview and introduction
  • Computing fundamentals with Scratch
  • No labs this week

1

1/28, 1/30, 2/1

  • 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 2/3

2

2/4, 2/6, 2/8

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

3

2/11, 2/13, 2/15

  • Higher-order functions and list comprehensions
  • Recursive design
  • Problem Set 2, part I due on 2/14
  • Problem Set 2, part II due on 2/17

4

2/19, 2/20, 2/22

  • Lists of lists; encryption and decryption
  • Algorithm design
  • Representing information
  • No lecture on 2/18 (Presidents’ Day)
  • Lecture on 2/19 (Mon. schedule)
  • No labs this week
  • Problem Set 3, part I due on 2/21
  • Problem Set 3, part II due on 2/24

5

2/25, 2/27, 3/1

  • Digital logic and circuit design
  • 2/26: last day to drop without a ‘W’
  • Problem Set 4, part I due on 2/28
  • Problem Set 4, part II due on 3/3

6

3/4, 3/6, 3/8

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

Spring break

7

3/18, 3/20, 3/22

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

8

3/25, 3/27, 3/29

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

9

4/1, 4/3, 4/5

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

10

4/8, 4/10, 4/12

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

11

4/17, 4/19

  • Games and AI (cont.)
  • Inheritance
  • Overview of the final project
  • No lecture on 4/15 (Patriots’ Day)
  • Labs will be held; Wed. is a Monday schedule
  • Problem Set 9, part I due on 4/18
  • Problem Set 9, part II due on 4/21

12

4/22, 4/24, 4/26

  • Finite-state machines
  • Algorithm efficiency and problem “hardness”
  • Problem Set 10 (all) due on 4/26 (Friday)

13

4/29, 5/1

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

14

  • Final exam: Tuesday, May 7, 12:30-2:30 pm