The first semester exam will be in two parts on December 8 and 12, 2023 In Room 405. The average of the two quarter exams is worth 20% of your grade. The first semester exam is a cumulative exam that covers the summer assignment, Karel the Robot, chapters 3 through 10 of the textbook, and the related topics of these chapters that are part of coding bat and the [[https://apclassroom.collegeboard.org|apclassroom]] practice problems. There will be multiple choice and short answer questions on Friday Dec 8, and 2 free response questions on Tuesday Dec 12. (On the actual AP Exam, the multiple choice question pace is 2 minutes, 15 seconds each, and the free response questions pace is about 22 minutes each). The AP Exam will be at noon, Wednesday May 8, 2024. It is a good idea to review your code from homework and the labs, the [[http://www.skylit.com/javamethods/ppt/index.html|powerpoint slides]], as well as [[https://runestone.academy/runestone/default/user/login|SFHS Java]] (runestone). 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://myap.collegeboard.org/|Daily Videos from Units 1-6 ]] @AP Classroom * [[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) * [[https://mathorama.com/wiki/doku.php?id=clock_frame_app|Making Clock subclasses]] * [[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://myap.collegeboard.org/|Sem 1 MC Practice]] @APClassroom (For the MC, you will need to us the [[https://apclassroom.collegeboard.org/lockdown|lock-down browser]]) * [[https://runestone.academy/runestone/default/user/login|SFHS Java]] 1.11, 2.15, 3.12, 4.10, 5.16, 6.8 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]].