====== Sem 1 Study Guide ====== The first semester exam will be on December 17, 2025 In Room 204. The average of the two quarter exams is worth 20% of your grade. The first semester exam is a cumulative exam that covers Unit 1 through Unit 4.13. On the actual AP Exam in May, the multiple choice question pace is 2 minutes each, and the free response questions pace is about 22 minutes each). The AP Exam will be at noon, Friday May 15, 2026. It is a good idea to review your code from homework ([[https://runestone.academy/runestone/default/user/login|Runestone]]) and the labs. Don't forget that you don't need a computer to practice writing code at [[https://codingbat.com/java|https://codingbat.com/java]]. [[https://codingbat.com/java/Warmup-1|"Warm up"]] , [[https://codingbat.com/java/Logic-1|"logic"]], [[https://codingbat.com/java/String-1| String-1]], [[https://codingbat.com/java/String-2| String-2]], [[https://codingbat.com/java/String-3| String-3]], [[https://codingbat.com/java/Array-1|Array-1]], [[https://codingbat.com/java/Array-2|Array-2]], [[https://codingbat.com/java/Array-3|Array-3]], and [[https://codingbat.com/java/AP-1|AP-1]] are good categories to practice. To practice free response questions try * [[https://albert.io/|AP CSA FRQ Practice]] @ albert.io * [[https://myap.collegeboard.org/|2024 Practice Sessions 5, 7, and 8 ]] See ''2024 Review'' in class ''Topics'' (or go to AP Classroom and select ''AP Computer Sci A'', then ''Course Guide'', then ''Review'', then look for ''2024 AP-Exam On-Demand Review'') * [[https://myap.collegeboard.org/|Sem 1 FRQ Practice ]] @AP Classroom * [[https://runestone.academy/runestone/default/user/login|SFHS Java (runestone)]] 1.10, 2.13, 3.11, 4.9, 5.13, 5,16, 6.7 (But anything from units 1-6 will help) * [[http://apcs.mathorama.com/index.php?n=Main.APQuestionScrambleWord|ScrambleWord AP Test Question]] * [[https://mathorama.com/apcs/pmwiki.php?n=Main.2013SkyView|SkyView]] * [[https://mathorama.com/wiki/doku.php?id=2019_frq_s|AP Questions from 2019]] 1,2,& 4 (skip #3 because it requires chapter 11 stuff) To Practice multiple choice questions try * [[https://albert.io/|ArrayList Practice]] @ albert.io * [[https://albert.io/|AP CSA MCQ Practice]] @ albert.io * [[https://myap.collegeboard.org/|2024 Practice Sessions 1, 2, 3 and 4]] @AP Classroom (Just skip Question 2 in seesion 3 since it is about Arraylists, our next chapter in the book) * [[https://myap.collegeboard.org/|Sem 1 MC Practice]] @APClassroom Things to watch out for: - Constructors should initialize the class's fields (fields are ''private'', to encapsulate) - When initialzing fields in a constructor, **Do not** mention its type- this accidentally makes a local variable instead of initializing the classes field that has the same name. - Remember to make fields ''private'' and methods ''public'', - Remember local variables are **never** public nor private - Remember method names should use () for the parameter list, even if there are no parameters - Watch for dangling else statements (p 148) - without brackets, the last ''else'' belongs to the previous ''if'' - **Do not** add a ''System.out.print'' when no printing is requested (This can be a 1 or 2 point **Extraneous code that causes side effect** penalty on the AP Exam) - **Do not** use local variables before first declaring them ( also a AP scoring penalty). - Variables are declared ONLY ONCE, not every time. - **Do not** assign a value to a parameter inside a method unless you are asked to (also a AP scoring penalty called **Destruction of data**) - **Never** use ''return'' in a constructor - Remember to ''return'' something of the same type as a method's header. - **Do not** ''return'' something when writing a ''void'' method ( a method that isn't supposed to return something (This too has a AP scoring penalty) Finally, please remember to get a good night's rest and a healthy breakfast! Good Luck! PS: I have found other helpful free online tutorials for the Basics at [[https://www.learnjavaonline.org/| LearnJavaOnline.com]].