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

Week Monday Wednesday Friday

16

May 13

๐Ÿ“š Study Period

May 15

๐Ÿ“ Exam Period

Exam 3 (Solutions)

May 17

๐Ÿ– Have a great summer!

15

May 6

Class: Review for Exam 3

May 8

๐Ÿ“š Study Period

May 10

๐Ÿ“š Study Period

14

Apr. 29

Class: Destructive programming, iteration, and vectors, continued

May 1

Class: Destructive programming, iteration, and vectors, continued (Code)

Assignment 8 (Solutions)
asmt08.scm

May 3

Lab 9 (Solutions)

13

Apr. 22

Class: Vectors and destructive programming

Optional reading: Hunsberger, 17.1 and 18

Apr. 24

Class: Destructive and iterative programming (Code)

Apr. 26

Lab 8
(Solutions)

12

Apr. 15

Class: Data structures and hierarchic pictures (Code)

Reading: Hunsberger, 19

Apr. 17

Class: Hierarchic pictures continued (Code)

Assignment 7 (Solutions)
asmt07-defns.scm
graphics-full.scm

Apr. 19

Lab 7 (Solutions)
lab07-defns.scm
graphics-full.scm

11

Apr. 8

Class: Review of Lab 6 / Data abstraction

graphics.scm

Optional reading: Springer & Friedman, 3.1–3.3

Apr. 10

Class: Exam 2 review (Code)

Apr. 12

Exam 2 (Solutions)

10

Apr. 1

Class: Higher-order list processing continued / Procedures as return values (Code)

Optional reading: Springer & Friedman, 7.3–7.5

Apr. 3

Class: Design patterns (Code)

(Mini) Assignment 6 out (Solutions)

Apr. 5

Lab 6 (Solutions)

Quiz 4: Solutions

9

Mar. 25

Class: Procedures as parameters (Code)

Optional reading: Springer & Friedman, 7.1–.2

Mar. 27

Class: Higher-order list processing (Code)

Optional reading: Springer & Friedman, 7.3–7.5

Assignment 5 (Solutions)

Mar. 29

Lab 5 (Solutions)

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 (Solutions)

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: Solutions

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, 2019.

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