Department of Computer Science
Pomona College
CS 051A PO—Intro to Computer Science with Topics in AI
Spring 2020

Special Circumstances for Spring 2020

We're going to be tweaking our format some for the remainder of the semester. In particular, we're switching to a more "learner-centered" model where our implicit "contract" between instructors and students is shifting. We want to make our new arrangement very explicit, but we also want you to have a role in coming up with these terms. So here's our proposal, which we're going to commit some time on Monday March 30th to address and receive feedback on.

We the instructional team commit to the following actions:

During this period, each of us will need to put in extra effort to get as much benefit as possible out of the course. In particular, we ask you the students to commit to these actions:

This isn't what any of us signed up for, but we are confident that we can still provide a high-quality educational experience centered on your needs as students and people. Thank you for working with us to make it as effective as possible.

Instructors

Lectures: Joe Osborn
E-mail:
Joseph.Osborn@pomona.edu
Office hours:
Zoom
Mondays 13:00–15:00
Thursdays 10:00–12:00
and by appointment
Labs: Zilong Ye
E-mail:
Zilong.Ye@pomona.edu
Office hours:
zoom
Thursdays 14:00–17:00

Lab TAs

Mentor Sessions TBD

Class Information

Class time:
Mondays/Wednesdays 11:00-12:15
Location:
Zoom
Lab time:
Wednesdays 17:00-20:00
Location:
Zoom
Web page:
https://www.cs.pomona.edu/classes/cs51a/
Book:
How to Think Like a Computer Scientist: Interactive Edition. Brad Miller and David Ranum, based on original work by Jeffrey Elkner, Allen B. Downey, and Chris Meyers. It is available online for free. This has some nice interactive exercises you're welcome to do for practice.
Other Information:
Piazza discussion board for questions
Syllabus
Assignment submission
List of all code examples
The official Python tutorial
The official Python documentation including libraries
Installing the software for this class on your computer

Schedule

Note: This is a tentative schedule and will likely change
Date Topic Reading Assignment Misc
1/22 introduction and functions Ch 1-3 Assignment 1 Lab 1
1/27 turtle, for Ch. 4-4.7
1/29 turtle, for, booleans Remainder of Ch. 4; Ch. 5 Assignment 2 Prof. Osborn's office hours delayed 12/30, 10:30–12:30.
practice 1
2/3 dot syntax and control flow Ch. 7 practice 2
2/5 lists Ch 10-10.6, 10.8 Assignment 3 and starter code practice 3
2/10 nested sequences Ch Ch. 9, 10-10.8 practice 4
2/12 functions in depth, sequence operations Ch 3 (again!), Ch. 6.1-6.7 Assignment 4
2/17 debugging, reading files Appendix (Debugging), Ch 8, 11-11.4 practice 5
2/19 dictionaries Ch. 12 Assignment 5 practice 6
2/24 recursion Ch. 16 practice 7
2/26 contexts, more recursion, sequence comprehensions Ch. 16, Ch. 10.22 Assignment 6 practice 8
3/2 test 1 sample problems
3/4 machine learning, naive bayes handout Assignment 7
3/9 intro ai, neural net basics, handout article (through first column, pg. 36)
3/11 perceptron learning, backpropagation, handout NN lab
3/16–3/20 spring break
3/23–3/27 spring break
3/30–4/3 classes, "object orientation" See notes Assignment 8
4/6–4/10 matrices, evolutionary algorithms See notes Assignment 9
4/13–4/17 trees, search Assignment 10 sample problems
4/20–4/24 informed search, adversarial search Assignment 11 (?)
4/27–5/1 big-O and runtime analysis (?), sorting, higher order functions Assignment 12 (?)
5/4–5/6 exam prep Assignment 12 Presentations (?)

Final exam Tuesday May 12, 9:00-12:00. I'll post sample problems and solutions closer to the last week of the semester.