CMPU 101 § 55

Computer Science I: Problem-Solving and Abstraction

Spring 2019

Monday & Wednesday, 9:00–10:15 a.m.
Friday, 1:00–3:00 p.m.
Sanders Physics 309

Prof. Jonathan Gordon

Student coach: Kyle Patterson

Office hours, Asprey Lab:
Monday 2:30–5:00 p.m.
Tuesday 6:30–9:00 p.m.
Sunday 6:30–8:30 p.m.

Week Monday Wednesday Friday

9

Mar. 25

Class: Procedures as parameters (Code)

Optional reading: Springer & Friedman, 7.1–.2

Mar. 27

Class: Higher-order list processing

Optional reading: Springer & Friedman, 7.3–7.5

Assignment 4 due

Assignment 5 out

Mar. 29

Lab 5

8

Mar. 18

๐Ÿ‡ Spring Break

Mar. 20

๐Ÿฅ Spring Break

Mar. 22

๐Ÿ Spring Break

7

Mar. 11

๐ŸŒฑ Spring Break

Mar. 13

๐ŸŒง Spring Break

Mar. 15

๐ŸŒท Spring Break

6

Mar. 4

Class: Local variables and local procedures

Reading: Hunsberger, 15
Optional reading: Springer & Friedman, 5.1–5.2

Mar. 6

Class: Sorting (Code)

Reading: Hunsberger, 16.5

Assignment 4 out

Mar. 8

No lab

5

Feb. 25

Class: Deep recursion

Reading: Hunsberger, 16.7
Optional reading: Springer & Friedman, 4.1–4.4

Feb. 27

Class: Tail recursion and accumulators

Reading: Hunsberger, 14 and 16.4
Optional reading: Springer & Friedman, 4.5–4.6

Mar. 1

Exam 1 (Solutions)

4

Feb. 18

Class: Recursively constructing lists; recursive predicates

Feb. 20

Class: Recursive predicates continued; under the hood

Reading: Hunsberger, 16.6

Assignment 3 (Solutions)

Feb. 22

Quiz 3

Lab 4 (Solutions)

3

Feb. 11

Class: Recursion on flat lists

Reading: Hunsberger, 12
Optional reading: Springer & Friedman, 2.4–2.5

Feb. 13

Class: Recursion on integers

Assignment 2 (Solutions)

Feb. 15

Quiz 2: Solutions

Lab 3 (Solutions)

2

Feb. 4

Class: Procedural abstraction (continued), data types, predicates

Reading: Hunsberger, 9–10

Feb. 6

Class: Conditional expressions

Reading: Hunsberger, 11, 13
Optional reading: Springer & Friedman, 2.3

Assignment 1 (Solutions)
Download: asmt-helper.scm

Feb. 8

Lab 2 (Solutions)

1

Jan. 28

Class: Evaluating expressions; defining variables; lists of data

Reading: Hunsberger, 1–5
Optional reading: Springer & Friedman, Foreword, Preface, and 1.1–1.5

Jan. 30

Class: Lists of data (continued); procedural abstraction; defining procedures

Reading: Hunsberger, 6–8
Optional reading: Springer & Friedman, 2.1–2.2

Feb. 1

Quiz 1: Solutions

Lab 1 (Solutions)

0

Jan. 21

โ„๏ธ

Jan. 23

Class: Introduction

Handout: Syllabus

Optional reading: Bad at math?

Jan. 25

Lab 0

Reading

Hunsberger

Luke Hunsberger: Introduction to Computer Science via Scheme.

Springer & Friedman

George Springer and Daniel P. Friedman: Scheme and the Art of Programming, 1989. This book can be borrowed from the Internet Archive.

Reference