# AP Computer Science/Introduction

Advanced Placement exams are created and administered by the College Board, the same organization that administers SATs. The AP exam tests your knowledge of a specific subject at the college level. They contain open-ended questions in conjunction with multiple choice questions. It is scored from 1 to 5, with 3 usually being the minimum accepted score at colleges to receive college credit. The exams are taken in May, and the scores usually arrive by July.
It is not necessary to take an AP class to take that exam, and vice versa. However, it is a good idea to do so.

## About Computer Science

You're thinking of getting a college degree in Computer Science, or you like computers and want to bend them to your will. Maybe you want to test out of a first-year college-level computer science course. This book can help you achieve that goal.
Before getting started, it's important to know what to expect. Computer science requires advanced logical and mathematical skills. If you have had trouble in a secondary school math class in the past, then computer science may be more difficult for you. If, on the other hand, you did extremely well in high school or college math, then you'll probably excel in computer science.
While computer science is not strictly based on programming, you will program quite a bit. You will have to know or learn how to program well, but skilled programming is not necessarily the ultimate end. Think of the first people to get a computer to play chess as the archetypal computer scientists. They did what nobody before had done on a computer, and they had to invent many of the concepts required to make it happen. At the same time, they could not have done it without a solid understanding of all that had gone before them.

## What will we learn?

What does it mean to program? What can I communicate to a computer? How do I tell it what I mean? Why isn't it doing what it should? And how do I stop repeating myself all the time?
You will learn:
* to build and create computer programs.
* to think carefully and logically about programs.
* to express programs in code.
* to read code and understand the program that it expresses.
The programming language we will be using throughout this book will be Java 5.0, the same language used on the current AP Computer Science exam.
It is important to pay particular attention to the parts about reading and writing code. It is the most important skill you may have as either a computer scientist or software engineer. Furthermore, there are more test questions involving reading code and understanding what it means, and how to fix problems with it, than there are of applying that understanding to predict the actions of a computer.

## Why Java?

Short answer: it's what's on the test.
This book will strive to isolate the essential concepts from their incarnation in any particular programming language, so expect lots of diagrams, English explanations of algorithms or designs, and pseudocode, or any false code used for demonstration. Actual coding will be treated as a special case of the careful and logical thought processes which students will develop and use as computer scientists.