2 ms·
Hah! This is amusing. In one of my classes freshman year, one of my favourite professors (Kathi Fisler <3) gave us an assignment where we made a silly game wit
by makmanalp 11y ago
Hah! This is amusing.
In one of my classes freshman year, one of my favourite professors (Kathi Fisler <3) gave us an assignment where we made a silly game with an airplane that flies around and drops things. And I remember wondering how to do that without mutable state for the location of the plane, etc. Then I just remember seeing in the instructions for the assignment something like:
> write a function that takes a world and returns a new, updated world with the plane at its next location
and I just remember sitting there with my mind completely blown. Looking back at it, it doesn't seem as profound as I thought it was at the time, but maybe that's just because the novelty has worn off for me and a few years in industry have made me cynical, who knows :-)
Anyway, I think just learning to look at a problem differently I think gives you valuable insight into it and into your mind. Doesn't matter if you end up using it or not.
> I spend too much time trying to figure out how to say things as opposed to figuring out what to say.
Ha! Again, I think this is just a different approach. When I tried out haskell, it was intriguing that the modus operandi was: "think a lot about a problem, then write down a little code". I like that this is the opposite of my instinct to jump in with a solution, then kinda heuristically change it to get to code that works, and ultimately I think lead me to think a bit more and end up with clearer problem definitions and solutions.
- firebones 11y agoDoes Kathi Fisler have any online coursework? Because your experience sounds great and I'd love to be able to experience it or recreate it for my own enlightenment.
- makmanalp 11y agoIt was kinda based on How To Design Programs (http://www.htdp.org/ http://www.htdp.org/) though to be honest I never touched the book and relied mostly on the in class instruction (which was what made this class awesome IMHO). I found the website for a newer version of the class: http://web.cs.wpi.edu/~cs1102/a08/ http://web.cs.wpi.edu/~cs1102/a08/ and OMG! I found the assignment! http://web.cs.wpi.edu/~cs1102/a08/Assignments/Hwk2/index.html http://web.cs.wpi.edu/~cs1102/a08/Assignments/Hwk2/index.htm... > A function update-world that consumes a world and produces a world reflecting what happens when no key is pressed OK, not phrased quite how I remember it but I guess that's where the epiphany happened :) I took another class with her that was programming languages, and we used Programming Languages: Application and Interpretation (https://cs.brown.edu/courses/cs173/2012/book/ https://cs.brown.edu/courses/cs173/2012/book/) and the course website (http://web.cs.wpi.edu/~cs4536/a14/ http://web.cs.wpi.edu/~cs4536/a14/) This class also had some great epiphanies for me, but again, I think the instruction being top notch helped keep my attention going. This is more advanced stuff conceptually.