Programming is not something that you can learn simply by sitting through a class. It is something that you learn primarily by reading books on your own and trying things out for yourself. This class is designed to help you get started with programming, but the vast majority of the time you need to put in will be studying and working things out on your own.
The summer "reading" assignment will give you practice doing this. I expect that this assignment will take about 2-5 hours of work, but it might take more or less depending on how well you read and how well you understand math. This assignment will serve as a gentle introduction to programming.
You or a person you know probably owns a TI graphing calculator. This calculator came with a manual. Over the summer, find yourself a calculator and a manual, and learn some basics of how to program it. You should come into class next fall having written two simple programs:
Can't find a manual? That's no excuse, for a computer literate person - all the guidebooks can be downloaded for free from the Texas Instruments website.
prgmBOX asks for an (X,Y) location on the screen, and a width and height, and draws a rectangle starting at that location and with that width and height.
prgmGUESS comes up with a random number from 1 to 100, a different number each time, and lets the user try to guess the number, giving feedback as to whether a guess is too high or too low.
You can get help from your parents or siblings or work with other people in the class. However, understand that this is meant as a way for you to gauge whether you can handle a technical class at a college level. Every college class in math, science, or engineering will require you to learn on your own by reading books. If you find that you are just copying from others rather than understanding what you are doing, you are not ready to take AP Computer Science.
I think you'll find that knowing a little bit about programming your calculator will come in handy in your other classes. I wrote a lot of calculator programs when I was taking precalc, calculus, and statistics to save me time on homework or automatically solve problems on tests.
Other ways to prepare for APCSI am assuming that you are coming into this class already computer literate. You should know how to move, copy, delete, and rename files and folders, and how to unzip zip files. If I tell you to do something like "Open
h:\Vectorized\maps\map.txt" or "Copy the
rpgImages folder into the
h:\RPGFull folder," you should know how to do that. You should also be comfortable using a word processor - typing, copying and pasting, opening and saving files, and so on. The summer is a good chance to review these things if you don't know them yet.
There are also some areas of math that you can learn or review to help prepare you for this class. For example, depending on where you went to elementary school, you may never have encountered numbers in bases other than decimal, base ten. To work with computers, you need to know binary (base 2) and hexadecimal (base 16) as well. You should know how to convert a number like 42 into binary (it comes out to 101010) or how to convert a hexadecimal number like 2A into base 10 (it comes out to 42). This is something you can learn online or from any adult who's good at math.
If you're interested, there are also some books you can read about the history of computing. I would recommend Hackers: Heroes of the Computer Revolution, by Steven Levy, a book that is humorous as well as informative.
Take a look at the websiteThe website for this class can be found at www.zahniser.net/~russell. I will be putting up next year's website at some time during the summer (probably early August). You can also always look at last year's website, although next year's assignments will be somewhat different from what I did last year.