My first experience with JavaScript came in my ICS 314 class that I am taking this semester. JavaScript seemed very similar to Java when I first started. The function and variable declarations reminded me a lot of how Java variables and functions are declared. However, I noticed there are no type restraints in JavaScript like there are in Java and most other programming languages. In JavaScript functions can return and variables can be initialized without noting a type for said function or variable beforehand. This difference seemed both so intuitive (you mean I don’t have to state if my variable is a decimal or an integer? It can just be a number?) and wrong because all the other languages I knew did not have this feature.
My ICS 314 class used a teaching pedagogy called athletic software engineering. The idea behind athletic software engineering is to give us short, timed homework exercises to do at home that will relate to an in-class WOD, Workout of the Day. The in-class WODs are timed, pass or fail exercises that covered similar content to our homework assignments and are worth a decent chunk of our grade. The point of this extremely stressful environment is to ensure that we know the material well enough to do timed assignments about it on the fly. I felt so stressed and anxious while doing our first in-class WOD that I completely forgot strings are immutable in JavaScript, and I kept trying to change the string despite it not being possible in JavaScript. Although I failed the first in-class WOD, I feel that it was due to how we learned the material. I thought the practice WODs were useful in getting used to the timed environment and using JavaScript. I think this helped in keeping me calm so I could keep attempting to get the program to work, even though I was not able to complete the WOD in the end. Despite the amount of stress this causes and the fact that this is the first time I’ve outright failed a computer science assignment, it seems to be an effective teaching method as I don’t think I’m going to forget that strings are immutable anytime soon.
So far I’ve liked learning about JavaScript with athletic software engineering. JavaScript seems like a very capable and interesting programming language that provides a lot of flexibility in its code. Athletic software engineering seems like an effective teaching method that can help concepts stick better than traditional teaching. All in all I expect both JavaScript and athletic software engineering to really help me in my career as a computer scientist.