The title is correct! Over the rest of my senior year, I am going to be self-studying the AP Computer Science A curriculum with in order to take the exam at the end of the year (and hopefully get a 5 ;) ).

But first, some backstory.

Why?

tl;dr, I like programming (programming is fun).

The first serious experience I had programming was after I joining FIRST robotics my freshman year of high school. I learned a lot through the program, but the nature of FRC being an extracurricular activity means that I don’t get a normal learning environment (with exams, cross-checked curriculums, and the like), I don’t get official recognition for my learning, and perhaps most importantly I don’t have an excuse to write code while calling it schoolwork. All of these reasons led me to take all of the programming classes officially offered at my school.

After taking both a standard level programming class (not a standardized curriculum, but a lot of fun) and AP Computer Science Principles, I was left wanting more. However, I was made aware that AP had a second course: Computer Science A. My school didn’t offer it, but being centered around Java (a language I was already intimately familiar with because of FRC) I had to take it. I even had off blocks with which to study!

How?

I am using CS Awesome, a free (and open source⁉), College Board endorsed curriculum to study. It is built on top of Runestone, which is a democratized textbook system which aims to provide more accessible and useful textbooks for everyone. It is also interactive, which will allow me to practice writing code & FRQs directly into the textbook itself. While I can’t speak on how effective Runestone alone would be for someone who is new to Java, I expect that it will be very useful for making sure I know everything I need to. It is also the sole reason my school allowed me to take the exam in the first place. I will also continue to use Java in FRC, which will further help me to prepare.

I also plan to write about my progress through the curriculum, as well as any other activities I do to help in learning.