Sunday, February 9, 2014
Semester Two First Six Weeks
It has been a little over a month since my last comp sci blog and I have advanced a lot in that time, moving on to increasingly complex concepts like polymorphism, interfaces, inheritance, composition, and ArrayLists. My favorite concept we've covered in that period is ArrayLists because having the power to so dynamically modify arrays has proven itself to be extremely useful and saves a lot of time. I also like that we have moved on to longer and more complex labs like the pong lab, my favorite lab so far this year. I enjoy using the graphics library to actually create visual elements that my code modifies. It is much more satisfying than simply outputting written results to the console and allows for a wide degree of flexibility in how I choose to implement things as well as chances to do weird and funny things like randomly changing the ball's color, direction, speed, or visibility. The pong lab also presented a lot of frustration as Weston and I struggled with implementing collisions before finally figuring out how to detect collisions by projecting the ball's path forward and bouncing when it would hit in the next frame thanks to help from Evan. This offered a newfound insight into the challenges that can sometimes arise when creating more complex programs, although pong is relatively simple. However, this frustration made finally finishing pong that much more rewarding. In addition the new ways of structuring classes we are learning about, while sometimes confusing, are interesting. Before this I had never really considered the idea classes only defining what methods will go in a different class or what the purpose of such a class would be. I still don't entirely understand the use of interfaces but as I begin to understand them I also get a greater appreciation of how they could be useful, especially when working on larger projects. I also enjoy doing AP free response questions because they allow me to see what type of problems I will be asked on the AP as well as my progress throughout the year. Overall I continue to enjoy comp sci and look forward to continue to learn more java during the next two six weeks.
Sunday, January 5, 2014
Beginning of Second Semester Blog Post
As the new year comes we exit the first semester and enter the second semester of AP Computer Science. I was very happy with the first semester and during it I learned the basics of computer science from the simple data types like integers, doubles, and booleans, to more complex concepts like strings, objects, arrays, loops, and parameters. Each new topic has challenged me in its own way, but overall I have not found the course to be overwhelmingly difficult, something I hope remains true. As for what more Mr. Stephens can do for me as a student to make the next semester better there is very little to say, as I was satisfied with almost all of the first. I sometimes felt like I had too many worksheets over the more enjoyable programming aspects of the class, but I understand that these worksheets are very important. Even the not so fun aspects of computer science must be learned and the worksheets are an invaluable tool to try out the new concepts we learn on problems and get feedback. The personal feedback we get on worksheets is one of my favorite aspects of the class because what we're doing never really feels like busy work, it is all valued enough to be corrected and returned to us. The labs always successfully teach us new ideas through directly experiencing them and their uses, and the quizzes remain short and a helpful insight into what AP questions will look like. There is much more that I as a student can do to make my semester better. I would like to work on doing the worksheets faster so I get them back by the quiz date, improving the algorithms I use in labs to try to emphasize efficiency over simple brute force approaches I tend to use a lot, and stay a little bit more focused in class so I don't find myself having to study more than I would like outside of class. Overall it was a good first semester and I look forward to the second.
Sunday, November 10, 2013
The Third Six Weeks Part Two 11/10/13
In these last three weeks I have learned topics that are very important both on the AP and programming in general. We learned arrays and loops, which are both very useful and make up a large portion of the AP. With the introduction of these topics the programming concepts we cover continue to become more complex. While I was able to understand arrays fairly quickly, in part thanks to being taught them by Weston a week earlier, I had much more difficulty understanding two dimensional arrays and embedded for loops. I had to study and practice them at home in order to really understand them in preparation for the six weeks exam, only later to discover they weren't on the exam itself. Regardless I'm glad I took the time at home to understand them, and I often feel like I go through the class not fully understanding concepts until I take the time outside of class to more fully review them. The quizzes are also becoming more complex and taking more time. With the introduction of loops the possibility of messing up questions, especially by running the loop an extra time or not enough times, jumps significantly. Seeing slightly more complex questions and understanding the ones on the AP will likely be even more difficult, I'm a little concerned about the time requirements on the AP. Quizzes and exams tend to take me a while as I like to be thorough, but I am trying to work faster in preparation for the more time limited AP environment. We also began partner programming, which I in general enjoy so far. Working with Weston is a mixed blessing, as he knows a lot of the concepts already and helps me with them, causing us to finish faster and giving me more free time, but our faster pace over topics he already has a grasp on sometimes leaves me not understanding things and glossing over them, only to have to come back and review them later. I try to combat this by asking frequent questions and forcing him to explain concepts I don't understand to me. Overall I'm happy with the more advanced techniques we are beginning to learn.
Monday, October 21, 2013
The Third Six Weeks 10/21/13
Since my second blog post we've done a lot of stuff in APCS. We took the first six weeks exam at the end of the first six weeks (shocker) and I felt very good about how I performed on it. I only missed one question that was as of a result of not realizing the scanner method next() applies to the next word and not the next character. This is a more minor memorization error that I don't have to worry about in real world programming because of the ease of looking up any methods I'm having trouble remembering and the ability to directly test out and troubleshoot code. The part I considered most important was the free response and I was very happy that the code I wrote was all correct. I had studied a lot for the exam and was glad to finally understand how to make a class file. Prior to the test the concept of making classes was still arcane to me and hadn't really clicked in my mind. Now I can easily navigate through initialization and default constructors as well as accessor methods, modifier methods, and toString methods. We have also gone through boolean logic, else and else if statements, while loops, for loops, and files. As we progress further into java I am finding the class to be more difficult. The most recent quiz we took on loops I felt was the most difficult quiz we've taken so far and the labs are getting noticeably more complex and harder to troubleshot. I still believe the biggest challenge of the class is the fast pace it moves at combined with the importance of understanding each topic. Missing one day, especially one where an important topic is covered, can get one very behind in the class. I will sometimes find it difficult to grasp the topic we learn in class until having used it in a couple labs and worksheets, and so will have a sense of lagging behind that I have to work a little harder outside of class to fix. I liked the most recent lesson on files because it begins to incorporate outside files into our java code, something I'm excited about doing. I've always been interested in how the jump from independent programs inside the java virtual machine we've been doing to code that modifies actual outside files on the computer occurs.
Sunday, September 29, 2013
The Second Three Weeks 9/29/13
The second half of the six weeks has been a lot more challenging for me than the first was. We've moved beyond simple data types like int and double and the basic syntactical structure of java to slightly more advanced topics like methods. What has been most challenging is the fairly fast pace the class moves at. Missing the first day methods were explained also proved itself to be the reason for many of my issues this six weeks. I never really made up the lesson and thought that I would be ok if I simply trudged onward, skipping the lesson entirely and hoping to learn it as I went along. This proved to be a mistake because, as you described at the beginning of the year, computer science really is a cumulative class. Almost all of the knowledge we learn is building on top of previous things we learned, and missing one thing, especially something as integral to what we're doing in the class as methods, really got me behind. I ended up, through a combination of reading back through power points and getting Weston to explain concepts to me, catching up to the class and I now feel like I'm in a much better spot as far as my grasp of the material than I was a week ago. However I will definitely need to study before the first exam to make sure I really understand everything fully. The labs are very effective in helping me to understand what we do in the class. The worksheets and power points are helpful when learning, but what really teaches me the material is the experience of actually doing it in labs. I think in my experience the labs we do are the most important part of the class. I have trouble visualizing something from just hearing or reading about it, but the ability to actually use the methods we learn really solidifies the knowledge in my head.
Sunday, September 15, 2013
The First Three Weeks 9/15/13
Throughout the first three weeks I have learned the basics of the java programming language. I have no prior experience with java and very limited prior experience programming in general, only having dabbled a little in C++ and visual basics. Almost everything we have learned has been new to me and it has been a fun experience so far. I am very interested in learning java in this class because I have tried to learn a programming language in the past and have been unsuccessful due to of a lack of time and outside distractions. Learning programming in the formal structure that a class brings will be beneficial to me because I care about getting good grades and will be motivated to actually do the work. I am inspired to work the whole class doing something I enjoy and am not bored or tempted to get off task. So far I have not had a lot of spare time in the class as the labs and worksheets have taken me all of the provided work time so I don't feel like I have a lot of extra wasted time. As I get more proficient at programming I hope to be able to get the labs and worksheets done quicker. However currently the small details of syntax are something I am working on memorizing and don't come naturally to me. In the future I am looking forwards to learning more about if/then statements and how to use them in java because Boolean logic seem very useful in many different types of programs I would want to create in the future. I also as a longer term goal want to learn enough programming to be able to participate in computer science contests, something I hope I will have achieved by the end of the semester.
Ben Girardeau
Ben Girardeau
Subscribe to:
Posts (Atom)