Computer Science I:
Problem-Solving and Abstraction

Fall 2023 · § 3

Monday 1:30–2:45 p.m.
Wednesday 1:30–2:45 p.m.
Friday 1:00–3:00 p.m.
Sanders Classroom 006

Professor Gordon

Monday Wednesday Friday

Introduction

Aug. 28

Problem-solving and abstraction

Aug. 30

Expressions, values, and names

Sep. 1

Lab 1: Getting started

Abstraction and evaluation

Sep. 4

No class

Sep. 6

Evaluating functions and conditionals

Sep. 8

Lab 2: Stormy weather

Tablular data

Sep. 11

Tables

Sep. 13

Designing programs for tables

Sep. 15

Lab 3: Candy analysis

Data processing

Sep. 18

Quiz 1

Sep. 20

Tables and lists

Sep. 22

Lab 4: Squirrels!

Defining data

Sep. 25

Data definitions

Sep. 27

Trees

Sep. 29

Lab 5: Call the plumber

Recursive programs

Oct. 2

Further recursion

Oct. 4

Generating fractals

Review session,
7–8:30 pm
Taylor 203

Oct. 6

Exam 1

Simulation and interaction

Oct. 9

Reactive programs

Oct. 11

Graphs and simulation

Oct. 13

Lab 6: 99 red balloons

October Break

Oct. 16

๐Ÿ

Oct. 18

๐Ÿ‚

Oct. 20

๐Ÿฟ๏ธ

Python

Oct. 23

Python and notebooks

Oct. 25

Lists and strings

Oct. 27

Lab 7: Python practice

Working with real data

Oct. 30

Tables and arrays in Python

Nov. 1

Data sanitizing

Nov. 3

Lab 8: Cleaning table data

Analysis, visualization, and prediction

Nov. 6

Visualization

Nov. 8

Tables and prediction

Nov. 10

Project work

Changes

Nov. 13

Iteration and mutation

Nov. 15

Data classes and mutation

Nov. 17

Lab 9: Abstraction

Memory

Nov. 20

Quiz 2

Nov. 22

Memory

Nov. 24

๐Ÿฅง

Dictionaries

Nov. 27

Dictionaries

Nov. 29

JSON and Web APIs

Dec. 1

Lab 10: Distant memories

Computational thinking

  • ECS

Dec. 4

Computer Science I

Dec. 6

Lab 11: Further

Dec. 8

๐Ÿ“š

Final exams

Dec. 11

๐Ÿ“š

Dec. 14

Final exam
Thursday, 9:00–11:00 a.m.

Muzzy in Gondoland, 1986