WEEK  TOPIC(S)  READING  HOMEWORK 
8/148/18  Stuff That Amuses Me Java Review 
None, Download and install DrRacket, Install Java and Eclipse 
Download and install DrRacket, Install Java and Eclipse; Roshambo tournament The Damore Memo (Gizmodo) 
8/218/25  Intro to Scheme  SICP: Chapter 1.1  Continue with the flag problem A solution to the flag problem Third day of class this week: Do the weekly quiz on Schoology. The quiz dates and Schoology due dates are identical. They are open book and ungraded. It is important to do well on them as you will need to know the stuff contained in quizzes in practice and on tests. You will have a quiz every week; the quiz will usually be on the first day of the week, but that will not be the case this week or next. 
8/289/1  Procedures and Processes  SICP: Chapter 1.2  As you read through this part of chapter 1 of SICP, you will be introduced to the term "order of growth". A nice rundown of examples of orders of growth can be found on Stack Overflow. I recommend working on the problems and then looking at the Stack Overflow content if you feel stuck or uncertain. 1.8 (expression is ((x / y^{2}) + 2y) / 3, 1.9, 1.10, 1.14 (do 1.14 by hand on paper, show it to me, and move on), 1.16; Extra credit: fill in the needed code in 1.19 and give a written explanation of how you solved the problem; Some thoughts on recursive versus iterative processes. 
9/59/8 
Formulating Abstractions with HigherOrder Procedures  SICP: Chapter 1.3 (the Golden Ratio and Newton's Method sections can be skipped, although that's good stuff if you have the time and inclination)


9/119/15  Lists (Simply Scheme: Chapter 17) Formulating Abstractions with HigherOrder Procedures 
Do Simply Scheme: Chapter 17 then finish SICP: Chapter 1.3 
Simply Scheme: 17.1, 17.2, 17.3, 17.817.12, 17.14 1.34, 1.37a, 1.38, 1.41, 1.42, 1.43 Practice test (from 2012) solutions Review content for first test: solutions to the pi and repeated problems 
9/189/22  Formulating Abstractions with HigherOrder Procedures  Do Simply Scheme: Chapter 17 then finish SICP: Chapter 1.3  
9/259/29  Data Abstraction  SICP: Chapter 2 intro, SICP: Chapter 2.1  SICP: Chapter 1 Test on SECOND day of class this week 2.1, 2.2, 2.4, 2.7, 2.8, 2.9; (2.6 is interesting stuff, but not something you have to turn in.) 
10/210/5  Data Abstraction  SICP: Chapter 2 intro, SICP: Chapter 2.1  Brian Harvey explains abstraction 2.1, 2.2, 2.4, 2.7, 2.8, 2.9; (2.6 is interesting stuff, but not something you have to turn in.) 
10/910/13  Data Abstraction  SICP: 2.2.1, 2.2.2  
10/1610/20 (Homecoming) 
Data Abstraction  SICP: Chapter 2.2.3 (skip all stuff after problem 2.35)  
10/2310/27  Data Abstraction  Lecture 

10/3011/3  Assignment and Local State  SICP: Chapter 2 and Binary Search Trees Test on first day of class this week The Cows and Body Snatchers example (related to problem 3.7 on joint accounts)  
11/611/9  The Environment Model of Evaluation 
SICP: 3.2; Parking meter examples 
Boring Problems: 3.9, 3.10, 3.11 (Do these on paper. Not mini white boardthere won't be enough space. Use paper and use pencil unless you find redoing diagrams to be a joyful process.) Problem 3.7 (joint account) solution Rules for drawing environment diagrams (Redo for Python) 
11/1311/17  The Environment Model of Evaluation 
SICP: 3.2  Boring Problems: 3.9, 3.10, 3.11 (Do these on paper. Not mini white boardthere won't be enough space. Use paper and use pencil unless you find redoing diagrams to be a joyful process.) 
11/2011/24 
THANKSGIVING  THANK  GIVE 
11/2712/1  The Environment Model of Evaluation 
SICP: Chapter 3.3; an environment diagram practice problem Download Eclipse at home if you have yet to do so. 
3.15, 3.17, 3.22, the delete! problem for tables, 3.25, 3.27 countpairs (problem 3.17) starter kit Rules for drawing environment diagrams A discussion of the environment model as pertains to problem 3.7, makejoint A very detailed explanation of environment diagrams (h/t Shilpa Yarlagadda) 
12/412/8  Modeling with Mutable Data 
Download Eclipse at home if you have yet to do so. 
3.15, 3.17, 3.22, the delete! problem for tables, 3.25, 3.27 The delete! problem for tables (higher priority than 3.25 and 3.27) 
12/1112/15  Modeling with Mutable Data  SICP: Chapter 3.3; an environment diagram practice problem Download Eclipse at home if you have yet to do so. 
3.15, 3.17, 3.22, the delete! problem for tables, 3.25, 3.27 The delete! problem for tables (higher priority than 3.25 and 3.27) Review content for chapter 3 test 2012/2013 actual chapter 3 test 2012/2013 actual chapter 3 test solutions SICP: Chapter 3 Test on second day of class this week Solution to countpairs problem Solution to the queue problem (3.22) Solution to the table deletion problem EXTRA CREDIT IS DUE ON SUNDAY, 12/11. NO EXCEPTIONS. 
12/1812/22  FINALS (12/1612/18) You will be tested on the SICP stuff. To keep it less stressful, it will all be in Scheme. 
EXTRA CREDIT IS DUE ON SUNDAY, 12/11. NO EXCEPTIONS. Jeopardy Review for final 

12/2512/29  WINTER BREAK 
INTRODUCTION TO SLEEP 
CHILLAX 
1/11/5  WINTER BREAK  EAT  CHOWDOWN 
1/91/12  Interfaces and Polymorphism Inheritance 
Chapters 11 and 13  The topics list for the Intro Java final works well for AP CS, too. Intro to the Comparable interface Do the mobile problem (2.29) in Java. Before you start, think carefully about how many classes and interfaces you should write to do this. Here is what a solution looks like in Scheme. Solve the festive HashMap problem. Reread pp. 265267 on loop invariants; then solve Problem 1.16 except with a loop in Java as opposed to the iterative recursion function you wrote in Scheme back in August. 
1/161/19  Interfaces and Polymorphism  Chapters 11 and 13 
Solution to the mobile problem in Java
Finish the festive HashMap problem. Regarding HashMaps (note the parts about load factor and capacity) Intro to GridWorld/Install GridWorld GridWorld ZIP file The TriangleBug and KnightCritter problems R13.8, R13.9, PP 13.1 (optional; it's a nice project; you have to construct your own Maze class and then figure out how to solve it; could be done with Rocks in GridWorld) 
1/221/26  Interfaces and Polymorphism  Chapters 11 and 13  The TriangleBug and KnightCritter problems Solution to the KnightCritter problem NOTE: There is class on Thursday and Friday of this week and Paley will be back in the classroom for that. There are no hybrid release days this week. Sorry about the confusion! 
1/292/2  Binary Search Trees 
Intro to the Comparable interface Cow problem Randp project (Do this before the Binary Search Tree project) 

2/52/9  Binary Search Trees 

Intro to the Comparable interface Cow problem Solution to the Comparable interface Cow problem Intro to the Comparable interface with some polymorphism Solution to the Randp problem; The iPhone inheritance/delegation example from class 
2/122/15  Binary Search Trees 
Finish working on the binary search tree project. If you have, then work on any incomplete projects or chess. Given that this is the week of the musical, a lot of you are going to be vegetables, but very nice vegetables who could use a break. So, I expect you to try hard during class, but the test will be pushed back to Monday, 2/13 and Tuesday, 2/14. 

2/202/23  Sorting and Searching 
Chapter 19  Write selectionsort, insertionsort, and bubblesort. Here is Tony Wang's JavaSort program to help you visualize what your code should do. 
2/263/2  Quicksort  Chapter 19 (continued) 
Find the median in average O(n) time of an array of ints by modifying quicksort 
3/53/9  Heapsort, Mergesort  Another government case against Apple Solution to the median problem A nice animation demonstrating heapsort. Write heapsort. Note that the assignment says to sort an array of Comparables. NOTE: D and E periods have a release day on Tuesday. B and C periods have a release day on Wednesday. 

3/133/16  Data Structures  Chapter 20  Write heapsort. Note that the assignment says to sort an array of Comparables. A nice animation demonstrating heapsort. An explanation of why building a heap is O(n). The explanation starts at about 37 minutes into the video in case you want to skip forward. The rest of the lecture is pretty good, so the tenacious student may want to watch the whole thing. Understanding the lecture depends on understanding mathematical series as well as a heapify method (heapify is what is called buildHeap in our solution). It's as clean an explanation as I have been able to find on the Internet. Review materials for Midterm 2 Homework R20.3, R20.4, R20.5, PE20.2, PE20.13, PE20.14 
3/193/23  Advanced Data Structures  Chapter 21 Read "Choosing a Container" on pages 813814 carefully 
Write mergesort in Java. Here is the Scheme version. Review materials for Midterm 2 Study this, it will make all the difference (h/t Drew Briggs) 
3/263/30  GridWorld Revisited  N/A 
Stuff I would study to prepare for the sorting test Mergesort problem to prepare for test 2nd Semester Midterm 2 on SECOND day of class this week on searching, sorting and orders of growth 
4/24/6  SPRING BREAK  SPRING BREAK  SPRING BREAK 
4/94/13  Data structures  Chapter 19 (revisited) Chapter 21 (revisited) 
The Josephus problems are great review problems for practice with ArrayLists, Strings, and logarithms. Remember change of base to perform log_{2} arithmetic: log_{2}N = Math.log(N)/Math.log(2). Look up the Math class in the Java 7 API if you want details. The problems from the book are mainly review at this point, but good to look over. R19.3, R19.4, R19.6, R19.7, R19.9, R19.13, R20.3, R20.4, R20.5, R20.5, PE20.2, PE20.13, PE20.14 Homework R21.1, R21.4 (write a class MathSet that implements the Set interface, write union and intersection methods for it, and also add the methods specified in P21.9), R21.6, R21.7, R21., R21.13, R21.14, R21.15, R21.17, P21.4, P21.17 Act anxious in anticipation of Spring Break 
4/164/20  Exceptions Review 
Chatpter 15 All sorts of stuff 
BRING YOUR STUDY GUIDE TO CLASS EACH DAY ONCE WE RETURN FROM SPRING BREAK Hellacious month of test prep boredom begins Exceptions examples from class PE 15.1; if you want to learn about streaming data from a web site, consider doing PP 15.1 Exceptions examples from class (you will need to toggle comments to use More practice tests An example and routine abstract class problem; Practice tests; A bunch of AP test review problems 
4/234/27  Review  All sorts of stuff 
Even more practice tests The gross Superclass and Subclass problem The gross Superclass and Subclass problem solution explained 
4/305/4  Review  All sorts of stuff  Brandon Horn's explanations of 2009 free response answers Even more practice tests 
5/75/11  Introduction to Processing 
Johannes Haushoffer resume of failures

CodingBat for String and array practice Do well so you can get college credit! Unless you go to MIT or one of the other colleges which doesn't accept AP scores. There are lots of them, alas. See: http://www.collegeboard.com/ap/creditpolicy/ PostAP test pizza feed ($5/slice, but it will be awesome pizza) Resolved: "The government should have lawful access to any encrypted message or device." Introduction to Processing (we will be meeting a second time this week so we can prepare for Midterm 3) 
5/145/18  AP Computer Science Test, Tuesday, May 15 
AP Computer Science Test, Tuesday, May 15 Hacker's Delight 
Hacker's Delight (specifics TBD) 
5/215/25  Projects due  Finish your projects 

5/296/1  Finals Week  Sita Sings the Blues  Summer! 
Readings are due each Monday. Homeworks and projects are due AT THE BEGINNING OF CLASS on the following Monday unless it is a holiday. In that case they are due the first class period following the Monday.
Example: The reading of Abelson and Sussman chapter 1.1 and download of DrRacket is due on 8/28. Problems 1.1 through 1.6 in Abelson and Sussman are due on Monday 8/31.
Unexcused late homework, projects, quizzes, and tests will be given a score of zero. If you expect to have problems meeting a deadline, I need to know about it in advance. Excuses after the fact will be given zero tolerance, barring a medical excuse signed by parents.