Re:Functional Programming Is Not Popular Because It Is Weird
by firebones on Sunday February 28, 2016 @02:23AM
(#11190198)
Does 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.
Re:Functional Programming Is Not Popular Because It Is Weird
by makmanalp on Sunday February 28, 2016 @12:41PM
(#11191555)
It was kinda based on How To Design Programs (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/
and OMG! I found the assignment!
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/) and the course website (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.
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.