Tuesday, May 27, 2014

End of Year Reflection

 Throughout the year AP Computer Science has consistently been one of if not my favorite class to go to. While on B days, I often dread going to physics and sitting through an hour and a half of lecture, A days are not like that - and much of this is due to having computer science third period. While comp sci is not perfect, nor is it always enjoyable, it still maintains a relaxed atmosphere that makes the course not feel so much like an AP course. I took computer science because I am interested in computer science, not so I could gain some sort of exemption from college classes, and this probably influences my perspective of the course when looking back on it, but regardless I enjoyed computer science much more than I can say for many of my other classes. I took pleasure in coming each day to learn new aspects of java and programming as a whole, despite not loving every topic. There were parts of the class that felt unnecessary, parts that I forgot immediately after the lecture and never relearned, and parts that I wish we could have covered in more depth, but that is intrinsic in the nature of any class. Overall I had a positive experience that I feel has influenced the career I plan on pursuing in the future, whether it be engineering, computer science, or something entirely different I haven’t yet decided upon. AP Computer Science is one of the few classes that I can say that for.

 There were many things I liked about the class. Foremost among these is the labs. Some of the labs I feel could use improvement, among these the localization lab, gridworld labs, and pong lab, but others like the recursion lab I felt were very helpful. The localization lab falls under the category of labs that I feel is a good idea but just seemed too easy. It wasn’t really a bad lab, I just didn’t get any sense that I was really learning much new from it and upon finishing, I was left wondering if Weston and I had perhaps missed another page of things we were supposed to do or looked at the lab in too simplistic a way. Having said that, it was a good review of scanners and arraylists as well as a small introduction to abstract classes; I just feel it could have been fleshed out a little more. I understand that it is very difficult for you to make something like gridworld interesting, and that you were using previous AP problems for the gridworld labs, but they still felt boring and tedious. There is probably nothing you can do about it, but I felt it worth mentioning that the gridworld labs were among my least favorite labs of the year. As for the pong lab, I don’t feel entirely correct in putting it in the can be improved category of labs because it was also one of my favorite labs. However, I think there were elements of it that do warrant being placed in that category. I think the instructions in some areas could be clarified, and that implementing the collisions was a nightmare. My primary suggestions would be to put somewhere that by default only certain keys work to move the paddles, and also to provide a clearer explanation perhaps in pseudo code or a general algorithmic outline of how the collisions should work. With a few clarifications in the code and instructions, I think the pong lab would easily be the best lab we do. The recursion lab was one of the most helpful labs in my opinion. While practicing on coding bat I was a little confused by the concept of recursion, and it was not until I did the labs that I really felt I had a pretty good grasp on it. Overall, for me the labs were the most important part of the course and I can’t imagine learning computer science not through labs. Programming is a very experiential skill, and I think that doing labs is the only way to really learn the material.

No comments:

Post a Comment