Saturday, May 18, 2013

5/18/13 The end (for now)


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