Final Project: Coding Part 1

        On this dark and stormy day, I will attempt to somehow condense what I learned during the first week of working on my final project into a blog post. I am, perhaps, making a mountain out of a mole hill here, but the part of my brain that is normally in charge of writing is giving me the blue screen of death so, you know, I’m not that off base. [1] Part of why I am having a hard time writing this post, I think, is because I’m not sure how to make this post into a reflection rather than a mere “this is how I did the thing” post. However, I’ve been putting off writing this for longer than I should have—apologies to my professor—so I’m just going to write and hope for the best. With that being said, please read on to find out exactly what this mysterious final project is entails.

            My final project for this course focuses on something that I have always thought I would learn one day: coding. I never learned a programming language prior to this because I would inevitably feel overwhelmed and lost in all that I did not know and I would quit before I really started (or I had other school work to focus on, hah). However, after my foray into Turtle Blocks, my creation of computational thinking activities, and my experiences with data visualizations, I had both a better sense of what coding/programming really is as well as where I should start. [2] Thus, I decided to focus on the programming languages of Python and R. I had two main goals: to try and write some executable code and to see how, if at all, I could use programming in my future classroom. [3]

            This first week has been spent working with Python because, prior to the final project, I had already started to familiarize myself with the language due to my professor sending this tutorial to our class which involves Python. That tutorial, unbeknownst to me, was working under the assumption that you already had some background knowledge in Python. Since I had none, what they called an explanation, to me, was just a bunch of words tied together with no coherent meaning. [4] During this process of trying to untangle the tutorial’s meaning, my professor suggested that I download and use Anaconda, which as far as I can understand, is a program that makes it easier for the user to write in Python. For instance, Anaconda contains not only the language Python but also popular Python libraries, such as Pandas and Matplotlib. [5] Moreover, Anaconda comes with various IDE’s that you can use to write Python, such as Spyder and JupyterLabs. All of the above combined to make my introduction into Python smoother and more manageable—and thereby necessitates my gratuitous thanks to my professor! *insert confetti here*

Oh, what’s an IDE, I hear you ask? Thankfully, and unlike the libraries (see note 5), I actually know the answer to that one! IDE stands for integrated development environment and is the general name for the platform that you use to write code. Turtle Blocks, and other similar programs such as Berkley’s Snap!, is a type of programming that uses blocks or bricks or whatever you want to call those little boxes that represent different commands. Another type of coding, which is the kind that I am focusing on, uses text to code. In order to do that, the programmer needs to use an IDE. Spyder is an IDE that is made specifically for Python and, like most IDE’s, color codes the text based on what you are doing and is a way for the IDE to give feedback to the coder. Some teachers say that students should not learn a programming language with feedback from the IDE because the student is learning to rely on the feedback rather than learning the syntax and/or protocols of the language.

A way that helped me conceptualize it, was to think of it like typing on a Word document. Word is the IDE because it allows me to type on a computer; English, naturally, is the “programming” language I’m using. When Word tells me if something is grammatically incorrect or if I misspelled a word, that is akin to when an IDE gives feedback to the coder. [6] An argument my professor made in favor of using an IDE was that the feedback that the IDE gives is not going to make sense to a novice coder anyway because they don’t know enough about the language itself to decipher the feedback. In case it wasn’t already clear, I am also in that camp since, as noted above, using an IDE helped me get started writing in Python.

Getting back to my personal experience with Python, due to the issues I had with the tutorial mentioned above, I went in search of guides that were designed for people with little to no prior knowledge of Python in mind. I found multiple resources, but what I focused on was this guide here because the end product seemed cool—plus, I never had a Tamagotchi so I could live vicariously through the mini-game I would program. I doubt the specific up and downs that I faced are particularly exciting, or even important to note here so I’ll just leave it at: I hit multiple snags while programming this. Although, thinking about it, most of said snags occurred once I tried to figure out how to complete some of the bonus tasks listed at the bottom of the guide when I was flying blind so I suppose snags are to be expected. [7] Embarrassingly, at one point I got so frustrated/upset I had to walk away from the program, but I was also so absorbed in programming that I skipped lunch so I’m going to go ahead and blame that on a lack of blood sugar haha.

The day after said walk-out, I had a rush of inspiration and was able to code a decent little game, if I do say so myself. Currently, I am working through the tutorial that started all of this to see if I can finally use Python to create a data visualization. Once that is accomplished, I will move on to R and see if I can conquer yet another programming language. I might also work some more on my mini game because that was a lot of fun.

Wow, this is already longer than I realized, which means that I am just going to save all of my musings about whether I can/would use this in my future classroom for next week’s post.

 

 

 

 [1] I am 100% using hyperbole here, given that I am, in fact, figuring out how to write this post even if I don’t like what comes out. I also want to note that describing writing as a process that is completed by one part of my brain is really not how writing works. While both of those points might be obvious to most readers, I feel like I need to put that disclaimer there anyway.

 [2] It should also be noted that my professor, the various readings and the presenters that visited our class further enabled my conceptual and concrete understanding of the aforementioned topic(s).

 [3] Here is the official proposal for my final project in case anyone actually wanted to read that.

 [4] A hyperbole, but my point still stands.

 [5] No, I’m sorry, I don’t know what those libraries include and/or what their names mean. I only know that both help me create data visualizations using Python.

 [6] To be clear, when I say grammatically incorrect in this situation, I just mean that it is not correct for Standard English. That distinction is important because we are taught to assume that Standard English is the one and only “correct” way to speak English but that is not accurate. It’s more accurate to say that this form of English just so happened to be in the right place, at the right time, and was spoken by the right people thereby making it the standard when writing. Neither this nor any other way to speak English is better than the other.

          And that’s, incidentally, also why I hate the “they/them” as singular is grammatically incorrect argument, especially by English teachers. For one, the teacher is spreading inadvertently harmful messages about people’s different dialects by assuming that there is only one “right” way to write and thus speak; secondly, language changes, it is inherently a mutable force that changes based on how we, the people, use it and thus makes any changes a natural progression—granted writing makes language harder to change because there needs to be a standard in order to be understood, but the change does still occur. And lastly, according to the Oxford English Dictionary, “they” has been used as a singular pronoun as early as the 1350s, just not for the same reasons we are using them today, so really, that grammar argument holds no weight. Whew, ok, I’m done. I got a bit carried away, huh? Oh well, hope you reader don’t mind the tangent.


 [7]There were a couple of other guides that I found to be helpful while I was “flying blind,” but I used the Finxter site the most. It was useful because the site gave me exercises to try out in Python and then explained why I got the results that I did.

Comments

  1. Ezra,
    I loved this post, mainly because of the way you described what it is really like to learn to code (at least in my experience and those I have worked with before in a variety of setting).
    I also really liked how you identified Word as an IDE: "Word is the IDE because it allows me to type on a computer; English, naturally, is the “programming” language I’m using. When Word tells me if something is grammatically incorrect or if I misspelled a word, that is akin to when an IDE gives feedback to the coder."
    I look forward to the next installment(s).

    ReplyDelete
    Replies
    1. Hi Dr. Ardito,

      Thank you for your feedback--and encouragement! ^-^

      Delete

Post a Comment