Mid-Semester Reflection

by William Chen

15 Feb 2016

I came in to this class wanting to learn Python and to be familiar enough with it to program on my own, something I’ve wanted to do as a self-study project for a while but never managed to due to procrastination, school work, and procrastinating on schoolwork. I have really enjoyed working with Trinket because of it’s clean design and interface; Eclipse (a Java IDE) eats at my slow computer and makes programming in Java difficult sometimes, but with Trinket it does not even matter that my laptop is getting on in the years.

I took Comp 110 a couple of summers ago and that sparked my interest with Computer Science, but the summer version of the course did not really give me the tools I wanted or teach me what I wanted to learn about programming. The way INLS 560 has been structured is more conducive to the way I learn and the homework assignments feel like just the right amount of practice to understand assignments. I like that we are given good examples through the text, and through the occasional automate the boring stuff reading, of code and how code functions so we do not have to play “Google this concept to teach yourself how to code” like it was for computer science courses I have taken in the past.

Since I already have a pretty solid background in programming I always feel like I should be trying to go above and beyond with the assignments but I am lacking in the creativity department so I never really know what extra to do. One thing I wanted to do was to create a cool clicky turtle that basically functioned like a paint program but I got behind on an assignment for another class so I took the easy route and did a pretty basic drawing program.

The clicky turtle exercise is probably the thing I am most disappointed with. I had big aspirations for it but it just never worked out in any of its iterations. I wanted the color to change based on the y coordinate but due to the random generation of color it did not come out correctly. Also with the color changing I kind of wanted to create a gradient so if you clicked really far it would change the line drawn and it would not be uniform entirely across it but I had no idea of how I would implement that. I wanted to have boxes to create a cool background but I had to make a work around by using thicker drawn lines. The list goes on of desired implementations that never made it into the final product but maybe I will use my sad little clicky turtle and turn it into something cool later on in the semester.

I get frustrated when I am writing code for exercises and I end up writing them with java syntax causing my code to malfunction or not run at all and I just stare at it thinking “This is right, why is this not running? This doesn’t make any sense at all” until I realize I made such a ridiculous mistake. Try/except is a big source of frustration and the driver of my struggle bus; just when I think I understand the concept of it, the next time I try to implement it into my code it just does not work and I have to think of a new way of doing it. While loops are the same way, I want to do more with them but there is some disconnect that is happening that only lets me do simple things - or at least things I think are simple.

Moving on from the not so happy stuff, one thing I am proud of is the pair programming Poetry Turtlehack. Omar and I were able to work through the logic of the first two problems in class after some trial and error. It was smooth sailing for the most part and when we did run into a problem, we had similar ways of dealing with it so we were on the same page the entire time. I am proud of how we tackled the problems and the implementations we came up with. Both times we did pair programming in class were enjoyable experiences, I look forward to doing more of it in the future.

My go-to problem solving attitude/strategy is throw stuff at it until it ends up working and not giving up until then. Once I start coding I like to do it in one sitting, churning out as much of it as I can handle (sometimes to my detriment). When I run into problems I comment out chunks of code I think are not working the way I want them to or print out the intermediate steps of what is happening. When it comes to turtle assignments I find it a little harder since they are usually an amalgamation of smaller parts so it is a little harder to hone in on exactly what is going wrong.

The treasure hunt turtle exercise is an example of sitting and coding for too long and then having to do work arounds for your own code because you did not plan anything in advance and just dove in like a fool. Moving forward I have started to think about what I want my code to do and plan my code ahead so I have a concrete image of what I want to accomplish. The treasure turtle exercise is when I realized I had developed bad coding habits that needed to be changed and I hope to fix them as the semester progresses. Ideally, I want to push myself to do more and go beyond what I can, but realistically I do not think I will be able to do that with my other classes looming in my schedule.

Will is a Senior Computer Science major trying to graduate and move on with his life. Find William Chen on Twitter, Github, and on the web.