Monday, May 30, 2011

Final Blog Post


I think it’s somewhat fair to give us a Greenfoot final. On the one hand, almost none of us have used the program all year. This makes it difficult to pick up and find solutions in a few days time. And yet, Greenfoot is easy enough to use that we can learn the methodology quickly and make a program. So I guess it’s fair. Also, we’ve all been doing different assignments all years so choosing a program almost no one has worked with makes it more fair for the entire class. The final shouldn’t be too difficult because we’ve had very little time to prepare.
This class gave me an appreciation of high-level programming. It took me weeks to design an application window with basic functionality. I also learned what it would be like to work as a programmer. You would sit down every day coding on the same project. In a more practical sense, I learned about Java GUI design, recursive methods (I was never very good with those), static methods, and some basic math programming.
I would have liked to program a real application. I spent the whole year using Java and didn’t produce anything more than a few convenient applications. However, to run those applications I would need to use them in a Java applet. Frankly, I wanted to make an application that could open from the desktop. I would have liked to design a real application, however rudimentary. 

Tuesday, May 24, 2011

Final

So it's entering finals season. Apparently, I'm not exempt from the exam even though I took the AP. Anyways, now I have to take the final which is in Greenfoot. I'll study Greenfoot at home until I actually remember something about it. I didn't do well on the last final where we were just thrown into it. It's actually quite fair this time because we have been told that it will be in Greenfoot. Now I have the opportunity to study at home. Also, my quizbowl application is nearing completion. You input some figures such as how many points each team has (uses scanner class). Then, based on some input skill levels (possibly gleaned from bonus conversion stats), the program uses a binomial expansion to spit out the probability that the currently winning (or tied) team wins the match. It's not very practical except for someone using a computer while watching a quizbowl match.

Monday, May 16, 2011

Post: 5/16/11

The current program I have been working on has been returning a lot of errors lately.
This is the standard error message I get:


Exception in thread "main" java.lang.ArithmeticException: / by zero
at Projector.binomExpansion(Projector.java:24)
at Projector.getOdds(Projector.java:43)
at Projector.main(Projector.java:54)
Type 'getOdds()'. You will be prompted to enter data.
The binomial expansion of (0.5 + 0.5)^3 is:

0.1250.60.5The binomial expansion of (0.6 + 0.5)^1000 is:

The following is very odd because I should be getting an arithmetic exception. It may be that the computer doesn't understand factorial expressions. I may have to teach the computer that 0! = 1. The actual recursive program that calculates the factorials in my program does not have the condition for 0!. It's quite odd that the program worked before I tried to implement the binomial expansion as part of another method, but now the binomial expansion doesn't work.

I was also having trouble with some static call methods but then those were fixed.

I guess that's all. If adding the extra condition to the factorial statement doesn't work... I will have to try something else.

Tuesday, May 10, 2011

Post 2 - 5/10/11

Progress. Now that the AP is over I've had time to continue working on my Quizbowl application (and some research stuff). I've figured out that I need the program to take in a bunch of factors including the skill level of the teams, an x factor, what question in the set we are on... Anyway the program will use a series of binomial expansions to find out which team will win in under the aforementioned conditions over 1000 games.

If I just had the program calculate the odds for 1 game, the x factor would be useless. Rather, I will see which team will win the majority of 1000 games. The team that wins more games out of 1000 will be assumed to win this one game.

I need to create another binomial trial that factors in the x - factor. It will be difficult to iterate through all the possibilities based on which team the x-factor supports more. Anyway, I'll spend some time working out the math.

That's all for now.

Post 1 - 5/10/11

So I need two blog posts. My first one is going to be about this new program I've been using called Mendeley. The idea is really clever. For people doing research project the program compiles sources of information such as research papers and journals. What you'll find interesting is that the program works a lot like dropbox. When it's installed the program allows you to create a folder that syncs across all of your computing devices (including iPhones). In fact, Menedeley basically copied the entire dropbox content. They have the magic folder, and online portal, and 5 gb of free storage. So the lesson. You learn that succussful programs to do not have to be entirely unique. If you find a computing concept that works, stick with it.

Friday, May 6, 2011

Blog post (5/6/11)

So here I am... Post AP

The AP test went surprisingly well. I believe I either got a 5 or a 4.The hardest thing about the test was the gridworld short answer questions. When they told me to create a new class of critter, I had no idea what to do. I basically went into the API that they provided and did my best. Otherwise, the short answer section went well. I felt a bit iffy on the multiple choice but feel I did well overall.

Now, I'm going back to work on my quizbowl program. Or I'm studying organic chemistry for my Intel science project. (dendrimer encapsulated nanoparticles for reaction catalysis).

Thursday, April 7, 2011

Research: A.K.A: What I'm Missing Computer Science for

So I will be missing computer science in order to attend lectures and shadow students at UT. Interestingly enough, the students are learning the same chemistry as we are in class. Granted, they actually have to put what they learn into practice. Yet, their material, such as titrations, acid bases, etc. is really similar to ours here.

The Lecture:
The lecture was about the basics of a lab dealing with Dendrimer-Encapsulated Nanoparticles.
I learned quite a few things.I learned that you can't leave a solution of encapsulated nanoparticles just sitting out because the copper ions will re-ionize by themselves. The lecture also included some talk about technology (I know you like technology). The lab contains UV-vis spectrometers. These special kinds of spectrometers are basically really expensive spectrometers that can measure absorbance on a nano-scale. The data from the spectrometers can be fed into a variety of computer programs. The professor suggested Logger Pro. Logger Pro is one of the best applications for handling input from a variety of sensors.

It's pretty awesome.

Sunday, April 3, 2011

The Past Week in Review

This last week has been eventful.

For some time now I have been experimented with Kodu. Frankly, I find the game engine to be crude and ineffective. The program compromises speed and efficiency for low quality rendered graphics. I do enjoy the programming methodology that Kodu employs. It allows the user to program characters through series of cascading while statements. Surprisingly, Kodu offers multiple options for controlling the actions of characters. The biggest problem with Kodu is its poor resource managament. For instance, one sacrifices game speed when working on a large map. Therefore, the best result in Kodu comes from working on a small, bare map.

I have also been preparing for the AP. As you are aware, I attended your after school lecture about Java, mostly the use of array lists in programming. I still maintain that the concept of aliasing is quite difficult to use. (And even more difficult to apply). I've been rereading old material. I still have a bit of a difficult time with the static concept.

I'm also a bit sad I didn't get to participate in the UIL contest. I wanted to participate.

Monday, March 28, 2011

AP Compsci Test

So it's college season and my sister is a senior. I've seen her spend hours on this blog called College Confidential where all kinds of people discuss the minutea of getting into competitive colleges. Interestingly enough, people always list what APs  they have taken and what scores they got. Yet, of all the entries I've read, no one lists AP comp sci. Seriously, everyone lists chemistry and APUSH, but no-one lists APCOMPSCI. Maybe this is because very few people do well on the APCOMPSCI. I mean, from hearing all of the people in our class talk, none of them got 5's. I will study for the compsci ap. However, I won't spend an inordinate amount of time memorizing the tiny details that go with the ap test. My goal is to get a 3 just to prove to myself that I can. Hopefully, I will go to a college that is so good I won't be able to use the ap test for credit even if I wanted to. (I know that MIT makes you take their programming course even if you got a 5 on the AP).

Monday, March 7, 2011

Week in Review and Weekend

To sum up the week - I reviewed material for the Java AP test. That's all. I signed up for the test.

This weekend I went to New York City for a quizbowl tournament at Hunter College High school. The tournament went well. Our teams placed fifth and seventh. Also, out of 72 players, I had the ninth highest score in the tournament. What this has to do with computer science is interesting. Every packet contains twenty questions. It is guaranteed that 1 out of every 60 questions will be about computer science. For instance, a tossup came up about trees. Another person on my team stupidly buzzed and guessed "stacks" really early in the tossup. I was pretty angry. Once they said the big O run time, I knew the answer right away.

Also interesting is the software quiz bowl tournaments Some Harvard and Stanford quiz bowl players who also double as programmers got together and made some complex software that tracks individual, player, and teams stats in tournaments. The program is so complicated that it would require hundreds of hours of programming. I'll try and find the link. It's pretty cool software.

Saturday, February 26, 2011

This week: 2-26-11

This week I did some serious reviewing for the AP test. I reviewed the major concepts of object oriented programming. For example, I reviewed the difference between public and private. I also reviewed the concepts of encapsulation and aliasing. One of the most interesting concepts I reviewed was "this". The idea that there is a pointer that can refer to instance variables in a method is interesting. I had a bit of difficulty with the concepts of 'static' but I think I understand.

As a side note I'm excited about the new mac releases.

Tuesday, February 15, 2011

Another Blog Post

I need another blog post so I've decided to write about an application I've got on a USB drive. When I was back at Kealing there were some applications that people would pass to each other between flash drives. The first application I'd like to talk about is falling sand. From a teacher's point of view, falling sand is a menace. IT's easy to transfer between students, the window is small and easily concealable, and the application is a big time waster. However, I believe that falling sand is one of the best things for computer science. In fact, falling sand got me interested in programming. At one point in 6th grade I got a copy of falling sand with the source file. It turns out that kealing had an active community of students that would reprogram falling sand with their own elements. We would make tons of crazy elements other than the standard fire and oil. We programmed in electricity, fireworks, sparks, mudbombs. It was seriously fun and introduced me to the concept of programming. After that, I wanted to know more so I began to explore other programming languages.

As it turns out, the code for falling sand is similar to html. I remember using tags to create new elements. Although I no longer have the source code to edit, I still have a custom version of falling sand at home.

Progress Update

I have made some significant progress in this class. While you weren't here, I took some time off of working on my application to study some more computer science theory. I reviewed 'for each' loops as well as arrays (1 and 2-d), exceptions, and calling methods. Overall, the two times you were gone were spent reading from the AP preparation book. Also, I got a new Asus laptop. It runs pretty well except there isn't much RAM.

 double[][] matrix = new double [x][y]; //creates a matrix in 2-d that is x rows by y columns

Wednesday, February 2, 2011

Progress

This week has seen a bit of everything. I've done less studying for the AP exam. Instead, I've been working diligently on my Quizbowl application. I was stumped by the task of dividing a paragraph into sentences. It seems easy. You'd think I could just split it by periods. It isn't that easy. To do this yourself you would need to create an Arraylist. Then, you would need to parse that array list for periods. Instead, I tried using break iterators.
The problem I found is that most of the code for the break iterator is private and hidden. I can't edit the code. The break iterator defines a sentence as the string between periods and /n. There are no methods that allow me to ignore the /n boundary. Another student in my class has advised me to try using tokenizers. As it turns out he was right (for the wrong reason). String tokenizers do allow me to specify what boundaries I want to use. I have made significant process in using string tokenizers to automatically analyze files that the user will input. In the process, I've studied strings, boolean algebra, and methodology that will help me on the AP.

Wednesday, January 26, 2011

New Application Idea

In addition to studying for the AP test, I will be designing an application that will apply some of the concepts I am reviewing. I have decided to make a quizbowl application. The basic idea of quizbowl is that to study you need to read packets. Packets are formatted with a bunch of questions. The problem is that when you open up a packet in Microsoft word to study, you see the entire question. The optimal way to study would be to see the sentences of the question one at a time. This experience would be more similar to the experience of IRC Quizbowl. The idea of this is that you can play quizbowl online. The bot reads every question 1 line at a time until someone buzzes. My application would go something like this:

First the user inputs a zip file of .doc, .txt, .rtf ... of quizbowl packets
The program will convert these to plain text. This is essential because java can only work with plain text and won't preserve formatting.

Then a different window will open. It will have a play button. Click the play button and the tossup starts. The tossup is read one line at a time until the user buzzes. Then press space bar again and the user sees the entire tossup as well as the answer. The time each sentence is displayed will be based on an equation relating the number of characters in the sentence to the time it takes to read each character.

Recent Work

Recently, I've been studying for the AP Computer Science Test. I've been looking through various sources to find the best tool for preparation. I've decided to use a standard AP computer Science preparation book. The best thing about the book is that it assumes you know something about java. It moves through the topics quickly, highlighting what you need to know.

So far I've studied loops, array lists, array list methods, compound assignment, the new style for loop, scanners, and basic java stuff like constructors and methods.(This isn't everything but it's all I can think of right now)

I've also been studying GridWorld for the AP test. I understand the methodology behind gridWorld: You have a series of actors that you control and make do things. I'm also seeing from practice AP tests that I may not need to be a master of GridWorld to get a high score. Gridworld actors basically move around, look for obstacles, then turn 45 degrees.

As a note for UIL, I've found that buffered string readers are much more difficult to use than scanners. I suggest we use scanners. They are much more straightforward.

Tuesday, January 11, 2011

1-11-11: Update

Right now I am working on studying for the AP test. Unlike normal AP students, I am coming in already having some knowledge of JAVA. I've been reviewing some old concepts. For instance, I now know by heart that constructors do not have return types while methods do. If you see "void" it's a method. I'm reviewing some old AP tests. The free write section is giving me trouble. How do you search a custom array (type isn't just int or string) for an int or string. Can objects with various types included by parsed? I'm also interested in programming in MATLAB. The mathematics based programming is intriguing.