|
AP Computer Science A
WEEK | TOPIC(S) | READING | HOMEWORK |
|
8/14--8/16 | Java Review |
None, Download and install DrRacket,Install Java and Eclipse |
Download and install DrRacket, Install Java and Eclipse; The Locker Problem What is free software and can you share it? The flag problem |
|
8/19--8/23 | Java Review | Flag Problem | ||
8/26--8/30 | Procedures and Processes | SICP: Chapter 1.1 | ||
9/3--9/6 |
Formulating Abstractions with Higher-Order Procedures | SICP: Chapter 1.2 | To do tracing, use this require command: (#%require racket/trace) 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, 1.9, 1.14 (do 1.14 by hand on paper, show it to me, and move on), 1.16; for the math enthusiast, try 1.19 and try to explain how it works when you're done Some thoughts on recursive versus iterative processes. Recursive process versus iterative process lab |
|
9/10--9/13 | Lists (Simply Scheme: Chapter 17) Formulating Abstractions with Higher-Order Procedures |
Do Simply Scheme: Chapter 17 then go on to SICP: Chapter 1.3 |
To do tracing, use this require command: (#%require racket/trace) Simply Scheme functions v. standard Scheme functions Simply Scheme: 17.1, 17.2, 17.3, 17.8--17.12, 17.14 Checkup #1 (A checkup is a problem or set of problems that are intended to help you gauge if you are doing well. If you can solve checkup problems, then you are on track for success on the next test.) Procedural abstraction examples 1.30, 1.31 part (a) only, 1.32 (iterative process only), 1.33 (use odd numbers instead of prime numbers for part (a)); here is a working version of a GCD function you can cut and paste Lecture notes on accumulate that may be helpful for problem 1.32 |
|
9/16--9/20 | Formulating Abstractions with Higher-Order Procedures | Do Simply Scheme: Chapter 17 then finish SICP: Chapter 1.3 |
To do tracing, use this require command: (#%require racket/trace) Simply Scheme: 17.1, 17.2, 17.3, 17.8--17.12, 17.14 Checkup #1 (A checkup is a problem or set of problems that are intended to help you gauge if you are doing well. If you can solve checkup problems, then you are on track for success on the next test.) Procedural abstraction examples 1.30, 1.31 part (a) only, 1.32 (iterative process only), 1.33 (use odd numbers instead of prime numbers for part (a)); here is a working version of a GCD function you can cut and paste Lecture notes on accumulate that may be helpful for problem 1.32 |
|
9/23--9/27 | Formulating Abstractions with Higher-Order Procedures | TBD | ||
9/30--10/4 | Data Abstraction | Tuesday/Wednesday: SICP Chapter 1 Midterm |
||
10/7--10/11 | Data Abstraction | SICP: Chapter 2.2.3 (skip all stuff after problem 2.35) | ||
10/15--10/18 |
Data Abstraction | SICP: Chapter 2.2.3 (skip all stuff after problem 2.35) |
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/21--10/25 |
Data Abstraction | SICP: Chapter 2.2.3 (skip all stuff after problem 2.35) Lecture on Binary Search Trees (Day 3) |
2.17, 2.18, 2.20, 2.21, 2.22, 2.23, 2.24, 2.25, 2.26, 2.27; Fun for math hotshots: 2.19 |
|
10/28--11/1 | Data Abstraction | The complex number abstraction from class 2.17, 2.18, 2.20, 2.21, 2.22, 2.23, 2.24, 2.25, 2.26, 2.27; Fun for math hotshots: 2.19 |
||
11/4--11/8 |
Data Abstraction | NCWIT Aspirations Award application 2.29, 2.30, 2.31, 2.32, 2.33, 2.35 (note: for problems 2.33 and 2.35, use the definition of accumulate on p158 (PDF page 186)) |
||
11/12--11/15 |
|
|||
11/18--11/22 | Modularity, Objects, and State |
Solutions to the review problems for Midterm 2 Tuesday: SICP Chapter 2 Midterm | ||
11/25--11/29 | Modeling with Mutable Data | |||
12/2--12/6 |
Modeling with Mutable Data |
Data Structures (tables, queues) Download Eclipse at home if you have yet to do so. Binary Search Trees |
ChatGPT passes the AP CS A test Write insert! for binary search trees 3.15, 3.16, 3.17, 3.22, delete! problem for tables 3.22 message passing queue starter kit Box-and-pointer diagram with mutation warmup (includes solution) count-pairs (problem 3.17) starter kit Solution to count-pairs problem |
|
12/9--12/13 |
Download Eclipse at home if you have yet to do so. |
WARNING: NO EXTRA CREDIT SUBMITTED AFTER FRIDAY, DECEMBER 13 WILL BE ACCEPTED! THIS IS AN ABSOLUTE, HARD DEADLINE. WE DO NOT HAVE TIME TO HANDLE EXTRA SUBMISSIONS DURING FINALS WEEK. |
||
12/16--12/20 |
FINALS (12/16--12/20) You will be tested on the SICP stuff. To keep it less stressful, it will all be in Scheme. |
Jeopardy Review | ||
12/23--12/27 Winter Break |
WINTER BREAK | INTRODUCTION TO SLEEP | ||
12/30--1/3 Winter Break |
WINTER BREAK | EAT | ||
1/8--1/17 (2 weeks) | Interfaces and Polymorphism Inheritance |
More time to work on The Brilliant Number problem Solve Problem 1.16 (fast-expt) with a loop in Java as opposed to the iterative recursion function you wrote in Scheme back in August. Intro to the Comparable interface Intro to the Comparable interface with some polymorphism Public, private, protected, and package-private The topics list for the FOOP final works well for AP CS, too. |
||
1/21--1/24 | Interfaces and Polymorphism | Solution to the Brilliant Numbers problem Solution to the Comparable interface Cow problem Do the mobile problem (2.29) in Java. Solution to the mobile problem in Java If you feel a need for additional information about superclasses, subclasses, inheritance, and delegation, this is good stuff: Chapter 9 in CS Awesome/Runestone |
||
1/27--1/31 | Interfaces and Polymorphism | Chapter 9 in CS Awesome/Runestone Intro to GridWorld/Install GridWorld GridWorld ZIP file The TriangleBug and KnightCritter problems |
||
2/3--2/7 | Binary Search Trees |
Randp project (Do this before the Binary Search Tree project) |
||
2/10--2/12 | Writing Code in a Larger System |
KnightCritter solution (one of many ways to do this) Randp project (Do this before the Binary Search Tree project) Binary Search Tree starter kit LifeBug problem (do only if you get done with Binary Search Tree project) |
||
2/18--2/21 | Bubble, Insertion, and Selection sorts | 2022 Second Semester Midterm 1 Actual Day 2: Midterm on Inheritance, Delegation, Interfaces, and Polymorphism Write bubble, insertion, and selection sort |
||
2/24--2/28 | Quicksort |
Find the median of an array of ints in average O(n) time by modifying quicksort |
||
3/3--3/6 | Quicksort | |||
3/11--3/14 | Quicksort |
Finish the median problem and Midterm 1 v2.0 |
||
3/17--3/21 | Heapsort | Solution to the median problem A nice animation demonstrating heapsort from somoene at the University of San Francisco. Write heapsort. Note that the assignment says to sort an array of Comparables. 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. |
||
3/24--3/28 |
Mergesort | Why Java uses quicksort for primitive data types and mergesort for objects Nice animation for studying the behavior of mergesort Write mergesort in Java, once with arrays and once with ArrayLists. (Suggestion: use ArrayList<Integer> specifically). Here is the Scheme version of mergesort, which may make the ArrayList version much easier. Review materials for Midterm 2 Test review problems (courtesy of Mr. Bautista) Stuff I would study to prepare for the sorting test Mergesort problem to prepare for test Study this, it will make all the difference (h/t Drew Briggs) |
||
3/31--4/4 |
TBD | TBD | TBD | |
4/7--4/11 | SPRING BREAK | SPRING BREAK | SPRING BREAK | |
4/14--4/18 | The Month of Cram | Cramalamadingdong | Practice Multiple Choice Questions (MCQ), straight from Runestone to you! (This is timed, so once you start, you are committed!) Thursday: Searching and Sorting Midterm 3Blue1Black: "But what is a GPT? Visual intro to Transformers | Chapter 5, Deep Learning" Topics list for FOOP (for comparison) Write toBinaryString() and toHexString() without using the Integer class. The Josephus problems are great review problems for practice with ArrayLists, Strings, and logarithms. Remember change of base to perform log2 arithmetic: log2N = Math.log(N)/Math.log(2). Look up the Math class in the Java 7 API if you want details. The gross Superclass and Subclass problem The gross Superclass and Subclass problem solution explained |
|
4/21--4/25 |
|
|
Practice Stuff TBD Brandon Horn's explanations of 2009 free response answers Even more practice tests |
|
4/28--5/2 | 2021 AP CS A Essential Resources |
|||
5/5--5/9 | AP Computer Science Test, Wednesday, May 8 (afternoon) | AP Computer Science Test, Wednesday, May 8 (afternoon) | Make this program draw a chessboard with pieces as discussed in class Solution to Make this program draw a chessboard with pieces as discussed in class The Awesome Car Parking Problem Regarding HashMaps (note the parts about load factor and capacity) |
|
5/12--5/16 | Final Project Hacker's Delight (specifics TBD) |
Final Project Hacker's Delight (specifics TBD) |
Do the rainfall problem. It is to be done individually. Important: Extra credit that is not submitted by Friday, 5/24 will not be given credit. Hacker's Delight (specifics TBD) |
|
5/19--5/23 | Final Project | Final Project |
|
|
5/27--5/30 | Final Project | Final Project |
|
|
6/2--6/5 | Finals Week | But We Don't Have Finals In This Class | Have a great summer! | |
5/27--5/30 | Finals Week | But We Don't Have Finals In This Class | Have a great summer! | |
5/27--5/30 | Finals Week | But We Don't Have Finals In This Class | Have a great summer! | |
5/27--5/30 | Finals Week | But We Don't Have Finals In This Class | Have a great summer! | |
5/27--5/30 | Finals Week | But We Don't Have Finals In This Class | Have a great summer! | |
5/27--5/30 | Finals Week | But We Don't Have Finals In This Class | Have a great 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
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.