Some Advance Planning If you are interested in taking the AP exam, we strongly suggest you take 402-406 programming to get all the necessary preparation (and more).
Students proficient in most any Turing-complete language may start in the second course. If you think you are ready, you should know that you must know about looping, conditional execution and recursion and have a firm command of them. You may be asked to write one or several programs to show you are proficient.
Basic Information You can obtain basic information on the AP exam here. Download this and look through it. Use it as a checklist and shore up any areas you are weak on.
Our Weltanschauung Some schools worship at the AP altar. We do not. The exam fails to test the most important aim of our program: The student learns how to design, create and debug a complete, robustly functioning application. Our goal includes these elements.
- Exception Handling Your application should not crash because of user abuse or because something beyond user and programmer control happens. Situations like files not being found, sockets not opening, and malformed URLs should be handled gracefully.
- FileIO What good is an application if you cannot store and retrieve work to use later? Many useful applications open and process data from files. You need to know how to open, search and manipulate files. You need to know about serialization and storing objects so you can restore them later.
- GUIs Modern programs are event-driven. We want you to to know this model. You need to be conversant with such things as inner classes, anonymous classes and listeners.
- Regular Expressions Learning to use these saves scads of time and spares you from writing lots of error-prone code bristling with loops and conditional logic.
- Mastery of the API Guide You learn how to use Java API pages effectively and how to read documentation for Python as well.
Learning to do these things makes you useful in a programming internship. Both State and UNC respond very favorably to our students. They say stuff like this, "Your students actually know how to code." Amazing, eh? Our students end up in internships in places such as SAS, IBM, Blue Lizard and EvoApp. There is a good demand for their skills and problem-solving ability.
An added benefit to our program is that it prepares you to master things like the Android API so you can write phone apps.
Will I learn everything I know to pass the exam? Yes, if you take three trimesters of programming, including at least one with Advanced (Java) Programming or Data Structures I. All of the relevant material is covered. However, there are some things you will need to do outside of class to fully prepare.
What is the case study? This is a GUI program created by the ETS people. You will need to download it, compile it and familiarize yourself with it. Instructions for doing this are on the web for Dr Java and for Eclipse, BlueJ and JCreator. Go through it and use your AP guide. You can also get the source code for their GUIs. Dissect that too. That stuff is actually interesting, tho' it is not on the exam. This link shows the student manual and sample questions for the AP exam.
What do I need to do outside of class? You need two things to be ready to do well on the AP CompSci exam.
- Use a good study guide. Get an AP guide to practice the exams and to get used to the questions. If you search on Amazon, you will see several of these practice guides; Barron's is fine. The Litvin Guide is probably a good bet, too. Getting one of these is indispensable to the process. Fortunately, they cost less than twenty bucks.
- Learn a dubious skill. The AP exam requires you to write out a lot of code longhand. Said practice is completely antithetical to the way a smart programmer builds and writes programs. It is inconsistent with intelligent top-down design. Yeah, it's another one of those testing-industry hangups. Its kinda like insisting you use those silly graphing calculators that have pixels the size of a brick and which boast 1980s technology.