Sunday, September 29, 2013

5th Week of Class



                This week was, for the most part, a pretty good week in the land of Object Oriented Programming. Our second programming project was due this past Wednesday, and I think my partner and I did a pretty good job. We did find ourselves rewriting most of our code at one point, however, when we found that we were overcomplicating our solution. I don’t think Prof. Downing has specifically mentioned it in class, but he does espouse the general spirit of the KISS design principle, which is otherwise known as “keep it simple, stupid,” when it comes to programming. If we’d have kept this in mind, we might have saved ourselves some time. Instead, we just kind of forgot and tried to implement the first idea that came to mind, which wasn’t necessarily the simplest solution we could have come up with. Regardless, we were able to finish reasonably quickly once we that in mind.
                The only downside to this week I would have to say are my grades. While I did get full credit for project 1, I’m still struggling to get anything resembling a decent grade on my quizzes. I’m just not quite sure what to do about them anymore. I pay attention in class, do the assigned readings, and even review the previous lesson’s notes, but I still can’t seem to do well. I suppose the best I can do for now is work on ensuring that my project and test grades are good enough to cover for my quizzes.
                Another thing of note this week was our guest lecture by Aaron Stacy over Git on Friday. We had another guest lecture on Git a couple weeks back, but while that one focused more on how to use Git, this one talked more about the history and potential of the version control system. I honestly enjoy the guest lectures. Its a little change of pace that gives us the opportunity to that may not be directly related to object oriented programming but which many of us would find extremely useful nonetheless. Going through Prof. Downing’s schedule, I don’t think I see any more scheduled, but I hope he adds some in at some point during the semester.

Tuesday, September 24, 2013

4th Week of Class



    Well, another project is due this week so it’s back to stressing out. In all seriousness, though, I’m grateful to have a partner to work with this time. I agree with the articles Prof. Downing had us read this week over partner programming; it really speeds up progress and ensures a certain level of quality in the code. There numerous times during the last project that I had to go back, look for, and correct minor errors ( e.g. misplaced bracket, missing semicolon, etc.). I’ve yet to encounter a similar error since I’ve started working with my partner on the current project. It also makes it a lot easier to stay on task. When I work alone, I’m constantly distracted by the infinite offerings of the internet but with a partner it’s different. I can’t wander off in search of the next cat GIF; my partner’s depending on me.

    While we’re on the matter of partners, I was surprised by just how easy it was to find one. I didn’t know anyone in the class, so I was dreading having to go through the time-cherished ritual of asking random people in the hope that someone else out there would be willing to pair with a stranger. Fortunately, Prof. Downing set up a teammate search post on Piazza to help speed up the search. I actually didn’t even know this was a feature as I’d never seen any of my other professors use it. I really wish they had since it was so useful.

    Changing the subject, I don’t think most people have notice since Prof. Downing hasn’t mentioned it yet in class, but our first test is coming up in a bit more than a week. He told me during office hours that most of the material would be coming from the lectures, but anything we’d read or seen as part of the class was fair game. To be honest, I’m plenty nervous. While I managed to get a 100 on the first project, my quiz grades haven’t been so hot. Despite keeping up with the readings and trying to review the previous lecture’s materials, I’m still struggling to get a good grade in that department so I’m banking on the test to help keep me afloat. I guess we’ll see how it goes.

P.S. If you're reading this, Prof. Downing, my sincere apologies for this being late. It's been a crazy past couple of weeks, and it just slipped my mind. I hope that's acceptable.

Sunday, September 15, 2013

3rd Week of Class



    Well, another week has come and gone, and I for one am so glad it’s over. Partly due to my poor planning and a few other things out of my control, I ended up with a project pileup (Collatz being one of them) at the end of this past week, but thankfully I was able to get it all done. My only real regret is that I didn’t leave myself enough to finish the extra credit part of project 1. I get the unpleasant feeling that I’m going to want all the extra credit I can get my hands on this semester.

    Speaking of Collatz though, the project turned out to be as simple as I had hoped after all. I had initially been wary about using Git, but after you commit a couple of times, it becomes really easy to get the hang of how to use it. Being able to update your repo that easily is nice, but honestly I became a fan after using its issue tracker system for a bit. I’m pretty sure using it is the sole reason I got every single part of this project done. Usually, I have a knack for forgetting some of the fine details, but being forced to keep track of my goals like this really helped keep me focused.

    The entire project wasn’t smooth sailing, unfortunately. I ran into couple of errors throughout the course of my work that were exceptionally annoying yet stupidly easy to fix once you figured out what you needed to look for. The prime example would have to be the stack overflow error I kept getting while trying to implement my lazy cache. After about an hour of head banging the desk, I finally stumbled upon a solution. I had been initializing an array to hold a million ints for my cache within the function used to evaluate the largest cycle length of the pair of input ints. It seems that C++ has some sort of limit as to the size of arrays or other objects within an individual function which resulted in a stack overflow whenever I ran the program. Instantiating the array outside of the function and making the cache array a global variable seemed to fix the problem, though. I guess this is just one of the little quirks of C++ that I’ll have to learn through trial and error.


Sunday, September 8, 2013

2nd Week of Class

   This past week was ended up feeling pretty short largely due to the fact that we had Labor Day off. I’m also still trying to get used to having such short one hour classes in a computer science course where I’m normally accustomed to having anywhere from an hour and a half to a three hour lecture! Honestly, I think it works better to have small classes like these three times a week versus much longer classes that may only meet twice or even just once a week. It’s just much easier to concentrate on a material for short bursts like this than trying to get through a whole bunch in one long haul. I’ve yet to even fall asleep in class (and hope to keep it that way)!
   I was a little confused by some of the choice of material that we went over this week, though. Perhaps it was my misunderstanding, but I was under the impression that we would be learning about caching as it pertained to the first project. Instead we ended up going over Git and some other aspects of the project which, while still useful, weren’t exactly what I had been expecting. Perhaps we’ll get to talk about caching this week!
   On the other hand, progress on the first project hasn’t exactly been going smoothly. While I believe I understand what I need to do to complete the requirements, I'm having difficulty comprehending some of the instructions regarding Git, not to mention that I have no idea what to do with Valgrind. I find myself constantly tripping over and forgetting the numerous Git commands I need to use. I understand that knowing how to use Git is an essential skill to have, but it can be a bit frustrating when you’re first starting off. If I didn’t keep running into these problems, I’m sure I would have finished a while ago or at least had more significant progress. This coupled with all my other time commitments has significantly slowed down my progress with the assignment and hindered my ability to get help outside of class, but I hope my attendance at the study session on Monday will be able to help me through this rough spot and get me back on track.

Sunday, September 1, 2013

1st Week of Class

    Well, I'm only two classes into Prof. Downing's CS371P class, and already I can tell this class is going to be demanding. To be honest, I'm not at all thrilled with his "all or nothing" policy in regards to his coding projects. Basically, this means that your project has to at least produce the correct output in order to even get a grade. Anything else will result in a zero. I understand that grading an incomplete project is more difficult, but I feel that some credit should be given if you've put a decent amount of work into it. But I must digress, on his website Prof. Downing does post the results of his previous class evaluations (something I've never seen any professor do, by the way), and most students seem to agree that he is quite fair in his evaluations so perhaps there is some truth to his grading method.
     While we're on the topic of his website, I have to say that I'm pretty impressed by the amount of material he has listed on there to help assist his students. I'll definitely have to dig through some of those papers that are posted up there as well as try out some of the tutorials.
     Ultimately, I believe this class will be exceptionally useful. I have some experience coding with C++ from having taken one of the programming language courses offered by the CS department, but I haven't had nearly as much I practice using it as I would like. Luckily, I've heard from previous students that while Prof. Downing may run a tight ship, he's incredibly good at teaching. Thus far, I like the way he's been using the side by side comparisons of C++ with Java code to explain the concepts, equivalencies, and differences, too. It's really helpful in understanding.
   Next week we should start learning about caches. This is supposed to related to our first project, but I haven't really looked too much into it. I have requested my GitHub account though, but it takes a few days to be authorized which is kinda lame. I look forward to finally getting started!