First of all, the class certainly prepared us for the AP, without question. (Not that that's a very big accomplishment, I certainly hope the AP does not accurately represent the content covered in a college class.) Second of all, despite any problems I had with the class, I very much enjoyed it as a whole.
This class should not be any simpler. In the description for the course it says that computer science requires prior knowledge of java/another language. If anybody requires a longer introduction than the one given, then they should take computer programming first. I understand that oop and programming in general can be hard to teach, but if somebody is having difficulty learning about them they should instead take an introductory course. If the course were any simpler, it would seriously deter those who did understand the concepts.
Although self-motivated projects are inherently engaging, teacher guided projects will always be faster and ultimately more informative. Self guided projects are usually guided through online resources, and thus there is no guarantee I will be able to finish said projects. The guidance of a teacher, or at least a single well-written walkthrough, will both increase the productivity of a student on a project and what a student learns from a project. This leads into my next idea,
Have more projects. Pong was fun to do; having a clear set goal for a project, and the knowledge that I have to finish said project, is extremely fun. More so, everybody was working on the same project, and so getting advice on an issue was extremely easy. Pong itself was relatively simple, more complex projects would certainly be welcome, especially if it required a lot of thinking about how to efficiently code the program. There was little effort actually put into the general method I would use to make pong work, instead the challenge was simply working out bugs.
Not enough focus on efficiency and general coding practices. In the first coding class I took, I was told that the question is not whether you can make a program do something, it's whether you can me it efficient. This isn't really something that was ever mentioned in this class. The use of profilers, for example, to find computationally heavy spots in code should definitely be talked about in class.
Friday, 25 May 2012
Saturday, 19 May 2012
Last 3 weeks
Two weeks ago I was primarily studying for the AP exam, and after taking the AP I have to say that I did not need to. The practice materials had some content I needed to look up: ternary operators, parts of the string class that I don't normally use (a lot of this), and some other miscellaneous code. However, the AP itself had very little even remotely complex content. A specific question I remember quite well had a list of 3 search algorithms which, in theory, found the largest value in an array. One of these, however, used -1 has a default that would be replaced by the next value in the array if it was stated to be the maximum value. Because of this, if -1 was the largest value in the array (there was no precondition that would exclude this as a possibility), then the array wouldn't work. This was the only question that had this small of a problem and thus I thought it might be designer oversight rather than a hard question. Other than this, the AP was fairly basic. This isn't to say that it was badly written, it covered the content it was meant to cover and did it quite well, just that they don't seem to be grading high school APs on too high of a bar. (Watch as I get a 4...)
Outside of class, I've been working on a quadrillateral-based 3D engine. To map the textures I am using affine transformations, a very low-cost method of perspective transformation. The reason this is not used normally is that it isn't entirely accurate and thus must be modified, but this required more processing power. The affine transform is more acceptable on quadrilaterals, thus why I decided to make a quadrilateral-limited engine. A while back I derived a series of equations to run this off of, using perspective matrices. However, I've been experiencing some weird image warping with this, so I need to re-derive the equations. Going off on a bit of a tangent, but learning about the actual application of matrices in computer science has shown me something about how idiotic it is to solve matrices by hand, as taught in algebra 2.
I've also been studying for UIL on my own time... when I read a question which required you to figure out the sorting algorithm a program was using based on the time it took to execute it hit me just how much there was study. Big O notation and sorting algorithms in general seem to be a huge part of the higher up UIL exams, so I'm putting a large portion of the time I spend studying into studying these.
I've also been studying for UIL on my own time... when I read a question which required you to figure out the sorting algorithm a program was using based on the time it took to execute it hit me just how much there was study. Big O notation and sorting algorithms in general seem to be a huge part of the higher up UIL exams, so I'm putting a large portion of the time I spend studying into studying these.
Subscribe to:
Posts (Atom)