Please note: in this post, I will be talking about my experience in AP computer science. If you just want to hear about what is going to happen to the blog, just read the last two paragraphs.
Thought this
year, I have learned a lot about programming and java. In the beginning of the
year, I was making the system council display “hello world” but by the end, I have
created an AI that can play Quiz Bowl. I feel that by taking this AP computer
science course, I feel confident to say that I can code fluent java. Not only
do I feel that I know java, but I am also confident that I scored a 4 or 5 on
the AP exam.
During the beginning
of the year, we were learning about strings and I thought it inconceivable that
indices start counting at 0 while the .length() method returns the last index
as if the first index was 1. Later on, when we were learning about arrays, I
found the idea to make perfect sense. I find it very cool how these things (like
the length method and the rules for indices, as well as the range from a call
of substring and the range for Math.random()) that appear to have completely nonsensical
rules fit together in such an elegant manor (If you have arr[(int) (Math.random()*arr.length)],
you will get a random index of arr).
I also found it
cool to learn about evaluating Boolean expressions, but I wish that we would
have spent more time doing that (learning about expressions like Xor and nor) and
also looked at some graphic examples of the expressions (like Venn diagrams). I
like how the class both prepared us for the AP, but also allowed room for
learning fun and amazing concepts. The only thing that I wish I would have
known better for the AP exam was Grid World (a case scenario used by the AP
exam that has different actors on a Grid).
Thought the year,
my favorite thing was probably when we programmed pong (and brick break for
extra credit). I liked programming pong because it took all the knowledge that
we had learned up to that point in the year, and use it to make a playable
video game. My favorite topic that we learned this year was sorting. As you can
probably tell from some of my pervious posts, I really like sorting data
structures. Sorting seems like such a simple task when you first look at it
(you are just sorting a list after all), but there are so many ways to do it,
and they each have their own set of advantages/disadvantages. I also liked the
labs where we would write a sorting algorithm and compare its speed to that of
Collections.sort();.
Now that the AP
exam is over, we get to spend our periods in Computer Science working on
whatever CS project we want (everything from a Windows Kinect to Google apps
script to coding Android apps with Java), and I wish that we would have gotten
to do this kind of thing more often thought the year. As you can tell from the
title of this post, it will be the last one that I am to do this year; however,
my computer science teacher will probably have us continue blogging in advanced
computer programming (a class that I will be taking next year), and so you may
see more posts next fall.
In advanced computer
programming, we will either be learning data structures in C++, Java, and
Python (all programming languages), or the class will be an Independent study
where we can work on our own computer science projects. As this will be the
case, my future posts will be not only about Java, but also about other languages
(I also plan to learn Javascript over the summer). As always, thanks for
reading, and have a good summer!
No comments:
Post a Comment