Tri 3 CSA Kyle M
Website for Kyle Myint's Tri 3 CSA Work
Project maintained by kylem314
Hosted on GitHub Pages — Theme by mattgraham
Kyle Myint
Member of m22p2-BTBW
Important Links
Practice test questions
Notes on CB Videos
Study Plan Overview
In order to best prepare for the upcoming AP exam, I’ll first use the practice tests in class and what I already know to find out which subjects I struggle the most with and need to study. I’ll then watch the college board videos and take notes on them, with extra attention to the previously mentioned subjects.
Once I’ve finished taking notes on the videos, I’ll do extra practice tests and questions on top of the ones we do in class, found here. This will reinforce the learning and allow me to find any other topics I need to look back over.
Finally, I’ll retake old FRQs on units I feel more comfortable with to ensure I still know the material and try to incorporate things from other units.
Week 1 (4/18 - 4/22)
Day |
Goal |
Monday |
Put together study plan, watch AP daily video |
Tuesday |
Take MC test in class, begin taking notes on most confusing units, watch AP daily |
Wednesday |
Review MC test (test corrections on questions I’m confused about), watch AP daily |
Thursday |
Take FRQ test in class, finish taking notes on anything I’m struggling with, watch AP daily |
Friday |
Review FRQ test (notes on learnings and what I could do better), watch AP daily |
Weekend |
Review all notes and use practice FRQs over the weekend to study |
Week 2 (4/25 - 4/29)
Day |
Goal |
Monday |
Put together study plan, watch AP daily video |
Tuesday |
Take MC test in class, work on finishing notes on units, watch AP daily video |
Wednesday |
Review MC test including test corrections, work on finishing notes on units watch AP daily video |
Thursday |
Take FRQ test in class, finish taking notes, watch AP daily video |
Friday |
Review FRQ test including notes on learnings and changes to make, put FRQs on repl, watch AP daily video |
Weekend |
Review/complete notes and study with practice MC’s and FRQ’s |
Notes
Unit 5
Notes
Unit 6
Notes
Unit 7
Notes
Unit 9
Notes
Unit 10
Notes
Test Review
MCQ 2020
- Overall Score
- I completed the full test within the time limit, though rushed a bit to do so leading to lower accuracy
- Questions to review: 5, 6, 14
- Question 5
- I answered D, the correct answer was E
- I thought we wouldn’t be able to make a constructor with boolean, string, string. However, this wouldn’t cause an error - I don’t know why I selected it
- The correct answer was the constructor with arguments string, string, boolean - this wouldn’t work since there’s already a constructor with the same arguments.
- Question 6
- I answered E (I, II, and III) though the correct answer was A (Just I)
- When mentally evaluating each option, I thought they would all equate to 3.5 because the double operator would make the division double division in all of them
- However, because of the parentheses in options II and III, they would evaluate with integer divison before the double operator was applied
- This would result in an output of 3.0 in both options II and III, so they would be incorrect
- Question 14
- I answered A (I only) though the answer was E (I and III)
- When answering the question, I thought III wouldn’t work, since even if one of the conditions was fulfilled, it would keep going on and potentially trigger multiple returns
- I forgot that when a value is returned, the code will exit the function
- This would mean that option III would work, as it would only return the correct value and then end the process
FRQ 2020
- [Repl with FRQs](https://replit.com/@KyleMyint/CSA-Tri-3#FRQ%202020/ReviewCollector.java]
- Question 1
-
- Part A
- This part asked to create a method hailstoneLength which would take in an integer N and then divide by 2 if it was even or multiply by 3 and add 1 if it was odd
- It would count the number of operations it had to do and then return that as count
- I think I did this accurately - it was a fairly simple method involving a while loop and if else statement
- Part B
- This part wanted to check if the number of operations taken was larger than the number n itself and return a boolean
- This was even simpler, and I did it in one line, returning the boolean comparing n to its hailstoneLength (using the method in part A)
- Part C
- This part asked to return the proportion of long sequences in a range of numbers from 1 to n
- To do this, I created a for loop from 1 to n and then ran isLongSeq from part B on every number
- This would accumulate the number of long sequences in the range
- I then returned that number divided by n to get the proportion
- Overall
- This question wasn’t too hard, just creating simple methods to accomplish tasks
- Question 2
- Q2 (Whole question was 1 part)
- This question asked us to create a class GameSpinner with a constructor to create a spinner with a certain number of sections as well as a spin feature and a feature to see how many results in a row were the same
- For the constructor, I only took in 1 argument- the number of sections
- I then set sections equal to that, run to 0, and current to 0
- For the spin method, I just randomized a value between 1 and the number of sections
- If the value was equal to current, it would add 1 to the current run
- Otherwise, it would change current and reset the run count
- Finally, it would return the spun value
- Current Run would simply return the variable run, since it was being modified in the spin method
- Overall
- I didn’t have much trouble with this question, though one thing I found problematic was when I forgot to do something (ex. create instance varianble)
- This was problematic because I’d have to erase multiple lines or try to squeeze it in
- I can fix this by leaving extra lines when physically writing code, or just thinking about everything I’d need before starting so I don’t miss anything
- Question 3
- Part A
- This question involved array lists, and wanted us to add a product review to reviewList
- In addition, if not already there, we were to add the product to productList as well
- This part wasn’t too hard, since it was just checking the array list .add method, as well as using a getter for an if statement
- Part B
- This part had us count the number of good reviews for a product
- I used a for loop to iterate through every review in reviewList, and then checked if the name was equal and if it contained the string ‘best’
- I could have improved what I did in this part by combining the 2 if statements into 1 longer one using an & operator
- Overall
- This question took me a bit longerr - I should probably review array list methods and strategies to be able to do it more quickly
- In addition, I could have optimized some parts, though the solution should still work
MCQ 2015
- Overall Score
- I finished all the questions except for 27 which I skipped and didn’t have time to go back to, so out of the questions I completed, I scored 35/38
- Missed Questions: 31, 35, 37
- Question 31
- I answered B, though the answer was E
- Looking at the code, I thought it would just be a checkerboard pattern with X’s at 0,1 and 1,0 and then down the board
- However, the pattern stops at the 0,4 and 4,0 diagonal since the code doesn’t reach the bottom right corner of the board due to the col++ and row–
- Question 35
- I answered D, though the answer was C
- Because the code is calculating midpoints and then looking for the target from there, the first index of target found is 6, not 5
- I thought it would just find the first instance of the target number, so I didn’t look at the order in which code was executed
- Question 37
- I answered D (I and II), though the answer was E (II and III)
- Option I doesn’t work, since it would add things to the result in the wrong order
- Option III works and would return the proper string upon executing code
FRQ 2015
- Repl with FRQs
- Question 1
- This FRQ forcused on traversing arrays and 2d arrays while completing tasks such as checking values and finding totals
- Part A
- This question involved traversing an array and adding each value, returning their sum
- To solve this, I used an enhanced for loop for each value in the array and added the value to the total for each entry
- Part B
- This question used a 2d array and needed to find the sum of each row, returning an array with the sums
- I once again used an enhanced for loop and ran the method from part A, arraySum, on each row
- I then added each rows sum to a new array
- Because you can’t ad things to arrays, my solution didn’t work. I should instead make a new array with a set length of the number of rows in the 2d array, and then change the value at each index
- Part C
- This question looked at a 2d array and checked if it was diverse; there weren’t any rows with the same sum as another row
- I created a 2d array ‘totals’ by running the previous method rowSums
- I then checked each value with the others using a temporary array
- Similar to part B, my solution didn’t work because you can’t add or delete entries from arrays. A similar solution would have worked
- Question 2
- Part A
- This question worked similarly to wordle, with a user guessing a word and getting a hint based on if the letter was in the right place, wrong place, or wasn’t in the word
- I used an enhanced for loop to check each letter in their guess, and then a series of if else statements to create the hint to return
- Logic could be improved/optimized, but solution works
- Question 3
- Part A
- This question looked at a 2d array with mostly blank entries (a sparse array) and wanted to find a value given a row and column
- By using the getter methods provided in the problem, I mathched the given coordinates with the ones in the array and returned the vlaue
- Part B
- This question asked to remove a column from an array, deleting its contents, and then shifting the rest of the columns to fill in the array
- I used an enhanced for loop to go through each column of the sparse array, and then removed the one matching the given column
- I also checked if the column was to the right of the given column, and if so, I moved it to the left 1 column