Sam's Mid-Semester Reflection

by Samuel Robinson

05 Jun 2017

Overall, my experience of this class has been fantastic so far. Having had no real experience with coding prior to this class, I feel like I’ve taken to it really well. I am loving Python as a language, and am enjoying puzzling through each of our assignments. This really struck me while working on my ‘Logical Turtle” assignment in our first full week. I had just finished a simple coordinate drawing program, which met the basic requirements of the assignment, when I had a bolt of inspiration for a much more elaborate program which I could make with what I knew already. And, unlike other inspirations I sometimes have for writing projects or creative ideas, this was something I knew that I could do, and I did it, and it worked. That lightbulb has really inspired me to push the envelope with each project since, to see how much I can fit into each new program. As it stands, there aren’t any major areas that I would say I’m struggling with right now. The things that catch me up most often are little things, like using one = instead of two in a logical statement, or mixing up index numbers. I suspect that these are just things you learn with time, the longer you use a language. And who knows, maybe I’ll never quite nail them down, same as how I never quite mastered the three noun genders in German. Also, I wouldn’t say I’m fuzzy on index numbers and positions in a list. If you ask me to explain them, they make perfect sense. It’s more of a case of me just mixing up things as I’m writing. As for something I’m fuzzy on specifically? I guess right now I’m not sure how to import images to use as a background or as a turtle shape. But I bet I can figure that out, if I can find a good place that explains it. I guess in a wider sense, I’m uncertain where the best places to go are for explanations of Python’s capabilities. When I want to learn more about a function, I’ve usually been googling it, and going to the Python documentation. That is usually helpful in explaining what arguments a function can take, but not as helpful in elaborating on examples and possible uses. The texts we’ve been using are useful for explaining the functions they teach, but they don’t cover everything. I probably just need to spend more time looking for good resources, and reading through them so that I know my options in Python. There have been a bunch of times where I was faced with a problem, and assumed I needed to do some math to figure out the answer, when Python already had that covered by a function. Case in point, I worked out a function to compute distance between a turtle and a coordinate from a click, when there is a turtle.distance() function that will do that for you!

# this line of code takes the distances between two points, and rounds them to an integer distance
math.sqrt((abs(treasure_x - x)**2) + (abs(treasure_y - y)**2))//1
# but I could have done this much simpler with
turtle.distance(treasure_x, treasure_y)

As for problem solving strategies, I definitely would swear by a couple of the main strategies that have been laid out in this class, as they mirror things I’ve figured out in the past year for my own time management. Getting up and walking away from overwhelming work is a wonderful strategy; I regularly try to get up and walk down the road to a coffee shop to take a break from homework, if I feel it’s becoming too much. Also, laying out milestones for a large project is always a great strategy, and is something I’ve employed in the past to make something that looks insurmountable become much more manageable.

Sam Robinson is a second-year MSLS student at UNC Chapel Hill's School of Information and Library Science. Find Samuel Robinson on Twitter, Github, and on the web.