Welcome!

AP Computer Science A

Mr. Seibel (he/him)

AP Computer Science A

What does the A stand for? Nobody knows.

This is the harder of the two AP computer science classes.

You should probably have taken AP CSP or Intro to Programming or have equivalent coding experience before taking this course.

However if you have a logical mind are up for the challenge it is possible to do well without prior experience.

What is programming?

A language.

A form of problem solving.

An exercise in picking problems to solve.

Who can program?

Alan Turing

Grace Hopper

Margaret Hamilton

Brian Fox

Frances Allen

Audrey Tang

Timnit Gebru

Why do we call them programming “languages”?

How languages work

The goofy dog, the runt of the litter, chased lazily after the red ball its owner had thrown.

In English …

  • Sounds and letters make up words …

  • Which can be combined into phrases …

  • Which can be combined into sentences …

  • Which can be combined into paragraphs …

  • To say whatever we want.

In programming …

  • We start with simple values …

  • Which can be combined into expressions and statements …

  • Which can be combined into functions …

  • Which can be combined into programs …

  • That can do anything a computer can do.

Java

A real, text-based programming language.

Has been around for decades.

Also quite a nice language at this point, though maybe a bit out of fashion.

Used in the real world: Netflix, Minecraft, parts of Twitter (R.I.P.), Android phones.

Problem solving

Every program is a solution to a problem.

Any program of any complexity consists of multiple smaller problems.

Picking your problems

Unlike, say, in math class, programming is much more about picking problems you want to solve.

We’ll start with simple problems that I’ll give to you.

But later in this course you will set your own goals for what you want your programs to do and you’ll learn to break it down into parts small enough that you can make it work.

Why is programming fun?

If you like creating things.

If you like solving puzzles.

If you like understanding how things work.

Why is programming hard?

There are a lot of details that you have to get right.

It can be very abstract.

Those two things are usually at the opposite end of the mental spectrum.

What can you do when you know how to program?

Understand, at least a bit, how all this stuff around us works.

Build tools to make your life better.

Make stuff just for the fun of making things.

Finally

If you're not stuck, you're not programming.

Expect to be stuck.

When you get unstuck is when you learn the most.

A note on our curriculum

Our textbook, BHSawesome, is lightly adapted from a very popular online text CSAwesome.

However, CSAwesome is ordered exactly like the College Board course description which is, in my opinion, not a great order to present the material.

So I will also assign some extra readings and problems to emphasize slightly different material at different times in order to try to fix some of the problems in the College Board ordering.

AP Exam

This is an AP class and there’s an exam in May.

However my goal is for this class to be a bit harder than the AP curriculum.

Which means if you are doing well in this class you will probably do well on the exam.

Exam stats from last year

Getting set up

https://bhs-cs.gigamonkeys.com