Thursday, February 11, 2016

Week 2: This time, people are the problem.

February 11, 2016

Hello again! I'm pleased to announce that I've made some actual progress this week. Since my last post, I have begun to understand the software that I'll be working with. While there are still many things I don't get (mostly because I just haven't learned about them yet), the code as a whole is starting to make sense. My advisor and I have also fixed all the environment and dependency issues that we encountered while running the code on my computer (at least as far as we know).

Now, the problem is with the software itself; as it is currently written, there are a couple of bugs that prevent successful implementation. The bugs are currently being worked out so I should be able to continue with my project sometime in the next few days.

An error message that I've encountered:


This experience has made me acutely aware of the issues that confront the field of computer science: computers and their software are created by people, and people are fallible. As a result, the programs that are written are often imperfect (my project is a perfect example), and this is usually due to a very minuscule error on the part of the programmer. Sometimes it's something as small as an incorrect character, and other times it's larger, like a fault in the logic. Whatever the problem is, a solution can sometimes take a very long time because programs are often composed of hundreds of lines of code, and combing through each line takes a decent amount of time. While working through the coding text book that my advisor supplied me with, I learned some basic methods of debugging, but I suspect that throughout the course of my project I will be learning many more methods.

Of course, when working with code, one will always expect to do some debugging; as my advisor told me, "If everything works on the first try, you've done something wrong."

4 comments:

  1. Wow, very impressive! If the end result of your project is to match images, why do you need to do all of this coding?

    ReplyDelete
    Replies
    1. I need to learn all of these programming skills because the end goal is to effectively automate the image matching process. In order to do that, code needs to be written so that the computers know how to accurately match the images. At the end of my project I won't have the knowledge to be able to write the code to match the images, but I'll be able to use and understand it.

      Delete
  2. That sounds very complex. So are you working with just one code? Or are there multiple codes for multiple things?

    ReplyDelete
    Replies
    1. The overall program that I'm working with has a lot of parts that are composed of different code. For example there's a collection of code that graphs things, a collection of code that "extracts features" from images, and so on. So there are a lot of separate parts.

      Delete