By Adrian Casares
April 20, 2023
This is part of our weekly newsletter, which is sent out every Thursday morning. Subscribe to let us know you're interested and we'll send you the next issue when it comes out.
Don't miss future issues. Subscribe to our newsletter for a new email every Thursday morning.
No Thanks
Thanks for subscribing! We just need a little more information.
Optional: Recieve text reminders about live meetings.
👋 Welcome to week 4 of our newsletter! If you didn’t hear about this, it’s probably different from what you were expecting. This week and next will be dedicated to AP CS study resources: this week is a study guide and next week is a full-length practice test. However, the bottom section of our newsletter will continue as usual, though shorter since so much time was spent on the review document.
Our review is fairly comprehensive. It probably won’t get you from a 3 to a 5 or anything, but we have a detailed look at the Java Quick Reference, exam structure, and review for all 10 units. This amounted to over 20 pages of dense text. After squishing the text onto a phone screen and increasing the line spacing, we would most definitely have ended up in the spam folder. So, this email will include an intro to the Java Quick Reference, a detailed look at the exam structure, and checklists for all units. There is an attached PDF with a detailed look at the Java Quick Reference, full-length reviews for all units, and a prerequisites section.
If you want easy points on the AP test, the first thing you should look at is the Java Quick Reference. You’ve probably heard a lot about it, but pay attention to it, because all you need to do is remember how these individual methods work. The methods aren’t comprehensive topics, so again, they’re the easiest to master. We’ll cover each of the methods in more detail so we include the edge cases in the attached PDF.
Here’s our checklist for the Java Quick Reference:
🧵 String constructor
🧵 String length()
🧵 String substring()
🧵 String indexOf()
🧵 String equals()
🧵 String compareTo()
🧵 ASCII characters (see attached PDF)
🧮 Primitive ints and doubles
🧮 Integer and Double wrapper classes
🧮 Integer.MAX_VALUE and Integer.MIN_VALUE
🧮 Math.abs(), Math.pow(), Math.sqrt()
🧮 Math.random() and how to use it
🗂️ Constructing an ArrayList
🗂️ ArrayList size()
🗂️ ArrayList add()
🗂️ ArrayList set() and get()
🗂️ Array list remove()
🧩 Object toString()
🧩 Object equals()
Now that we have the Quick Reference out of the way, we’ll talk about the individual units. You should know that some units are more important than others on the exam. Attached are the unit names with their percentage ranges. Notice that 3 units determine 50% of your score. 😊
Weights for different units on the multiple-choice section.
Basically, focus on Boolean Expressions, Iteration, and Arrays during your studying. If you can also nail 2D arrays, you have 70% of the multiple-choice under your belt. You should also know that independent of the unit you’re in, you’ll mostly be tested on two types of computational thinking skills, which are as follows:
🚧 32% on Program Design and Algorithm Development, which requires you to “determine required code segments to produce a given output,” or in other words, fill in the blank.
🧠 43% on Code Logic, determine the output of a piece of code.
🧪 13% on Code Testing, which is analyzing the code for errors.
📚 12% on Documentation, which is describing the behavior of a piece of code.
This all applies to the multiple-choice section, which is exactly 50% of your score. By the way, you should be aiming for about a 65% multiple choice score for a 4 and about 80% for a 5. You can get these scores with less, but if you can get 80% on the MCQ, you can feel comfortable about getting a 5.
That was a lot of percentages. Now, let’s talk about free response. The free-response is evenly distributed between four questions, which we already know the general topics of.
Question 1: Methods and Control Structures
Creating objects of a class, using class methods, and implementing desired code.
Question 2: Class
Define your own class and implement the desired code.
Question 3: Array/ArrayList
Implement the desired code by traversing and manipulating a 1D array (String[]) or an ArrayList.
Question 4: 2D Array
Implement the desired code by traversing and manipulating a 2D array.
With that said, here’s your checklist for review, assuming you don’t have any specific weaknesses:
✅ If you haven’t already, check out the Quick Reference above.
✅ Review Unit 4 and practice multiple-choice questions on Iteration.
✅ Review Arrays and ArrayLists for Units 6 and 7 as well as Question 3.
✅ Review Unit 3, do some multiple-choice practice, and review boolean algebra.
✅ Practice making your own class for Question 2.
✅ Review Unit 8 so you can do well on Question 4.
Unit 1 Checklist:
✅ Primitive data types and how they work
✅ Variable naming rules
✅ Taking input with Scanner
✅ Casting (+ when it’s automatic)
✅ Binary (a + b) and assignment (a += 2) variables.
✅ Operations with integers vs. doubles
✅ Increment (++) and decrement (--) operators before and after variable names.
Unit 2 Checklist:
✅ How to write classes, constructors, methods
✅ Objects vs. Classes
✅ Static vs. Non-static
✅ Null objects
✅ String methods in Quick Reference
✅ String concatenation
✅ String escape characters with “\”
✅ Math methods in Quick Reference
Unit 3 Checklist:
✅ Equality and inequality operators
✅ If statements
✅ Else statements
✅ Return statements
✅ Logical AND, OR, NOT
✅ Operator Precedence of AND/OR/NOT
✅ Boolean Algebra
Unit 4 Checklist:
✅ While loops
✅ For loops
✅ Break, continue, return
✅ Common while-loop algorithms
✅ Common string iteration algorithms
✅ Code tracing
✅ Nested iteration
⏰ Next week: Practice Questions
Unit 5 Checklist:
✏️ Write a class to practice the following concepts:
✅ Constructor, no arguments
✅ Comments
✅ Accessor and mutator methods
✅ Instance variables
✅ Static variables
✅ Method with a return type
✅ Void method
✅ Static method
✅ Constructor with arguments
✅ This keyword
💡 You can make a Student class if you’re struggling for ideas.
Unit 6 Checklist:
✅ Initializing/constructing an array
✅ Default array values
✅ Traversing an array
✅ Enhanced for loop
✅ Min/Max finder
✅ Sum and average
✅ Check for at-least-one criteria
✅ Check that all meet criteria
Unit 7 Checklist:
✅ Initializing an ArrayList
✅ ArrayList algorithms
✅ ArrayList methods
✅ Convert between Array and ArrayList
✅ Linear search
✅ Determine if a list is sorted.
✅ Selection sort
✅ Insertion sort.
Unit 8 Checklist:
✅ Initialize 2D Arrays
✅ Construct 2D Arrays
✅ Review nested for loops from Unit 4
Unit 9 Checklist:
✅ Super/Subclass relationships
✅ Constructor of a subclass w/ super
✅ Method signature
✅ Overloading vs. Overriding
✅ Inheritance Heirarchies
✅ Object Class
Unit 10 Checklist:
✅ What is recursion?
✅ Base case
✅ Stack vs. Heap
Here’s the PDF. You should know that at the time of sending this— either Thursday morning or afternoon— we’d like to do more work on formatting the document to make it more readable. However, our top priority is getting the content out as soon as possible, given the time-sensitivity of an AP exam. We’ll be updating the PDF in the coming days to do this. However, the PDF has all 10 units in what we thought was a sufficient level of depth. Let us know if you run into any issues.
🤖 Elon Musk is working on X.AI, a Nevada-based AI startup to compete with OpenAI. Though not publicly announced, the Wall Street Journal found filings revealing the company was incorporated over a month ago. Musk was a co-founder of OpenAI but is now frustrated with Microsoft’s influence over the startup, as we discussed last week.
🚀 More Elon Musk: SpaceX called off the launch of Starship, the most powerful rocket ever built, on Monday morning. However, the next launch is scheduled for as early as 8:00 AM today (Thursday). By the time you’re reading this, there’s likely more information.
😎 A national guard member was arrested for sharing classified documents to impress teenagers on Discord. The documents, about the war in Ukraine, had existed for a few months until blowing up on social media this week.
💼 We’re expecting more mass layoffs from Meta this week- about 4000. Meta already laid off 11,000 employees, and this upcoming layoff is a part of the 10,000 additional layoffs announced in March.
🐕 Researchers at Carnegie Mellon (CMU) trained a robot dog to walk across a balance beam. Check out the video here.