Week 1 - CST338 First Post: Journal Check-In and Coding Bat Reflections
Journal Check-In
I'm pleased to announce that the computer science rubber is truly hitting the road as CST338: Software Design is off to a strong start with refreshing assignments, compelling projects, and a professor whose intelligence, compassion, and comical genius are readily apparent. To kick off this batch of journal entries, I will discuss my problem-solving process with the coding challenge site Coding Bat.
Coding Bat Questions and Reflection
Did you plan it out or throw code at it?
A core principle of my process in all matters could be boiled down to "floundering forward" and as such I endeavored to fly blindly into a handful of the challenges. At a less granular level, this approach mostly worked for the more rudimentary challenges. Most of my early Java learning involved jumping through formatting and logic hoops so I am accustomed to wildly throwing as many approaches as I can remember/muster at a challenge before referring to my Starting Out with Java 4th edition textbook. There were certain methods that just didn't come to mind right away for mid-to-late WK01HW01 challenges that took a little unpacking. This review wound up really helping for WK01HW02 as I flew through those a little more quickly upon having a little fresh blast of proper syntax on my mind.
What worked?
Whether it was a problem I knew how to explicitly tackle or not, I always tend to start mapping out the logic and leave placeholders for methods/exact syntax that doesn't come to mind right away. I visualize what is happening to the data based off the example code output and description of the challenge. If I am truly a bit lost on a problem--for instance, some of those final row problems in WK01HW02--I will at least start rigging up the variables/components if/loop blocks that I am certain I will need. From there I can usually start adding the more abstract/nebulous parts line by line with some syntax review to make sure I'm not just giving myself a compilation headache.
What DID NOT work?
I am surely jinxing myself for the next wave of challenges, but the tools required to solve this batch of problems were generally familiar to me. My biggest chokepoint was glossing over syntactical details. When handling two arguments in a method that required cases such as examining each other's characters, I was getting errors for not making the right types of data communicate with each other, instances such as crossing up charAt() and substring() here and there. For any character problems I kept making my if statement (== "a") and not (== 'a') and that was humbling. It's locked back into my brain now. I will say that for the trickiest problems in the bunch, staring and hoping the answer would come worked about 1/4 times and I would have saved myself a few minutes just hitting the textbook.
How many tries did it take?
I grew obsessive with one-taking as many challenges as I could and any challenges that took me 5-10 tries were usually either due to watching each variety of case pass one-by-one or because I simply could not make sure my if conditions were actually being met (.equals(), =="a", etc.). There were a couple challenges where the ham-fistedness of my own logic forced me to go back and boil it down using some discrete structure equivalency logic. I took a while with these two batches of assignments as it was quite nostalgic to panic over what to do to get the test cases to pass. Those functional/lambda expressions are sultry and magical, those were generally one-try affairs.
Comments
Post a Comment