SFPC: Day 19 - Class Two: Radical Computer Science
Our second class Radical Computer Science class with Ramsey today. Such a good class! Really enjoying it so far and feel lucky to have it once a week for the rest of the program.
Walking to School, 9am
Our block, morning light.
Headshots in Bed Stuy.
The Nostrand A/C stop.
Shoes on a train.
Street-crossers at 8th ave. and 14th st.
SFPC So Far, Pre-Nostalgia
Time is passing quickly. I’m experiencing a bit of nostalgia for an experience that’s not yet even 1/3 over. I expect my experience of time here to pick up momentum.
I need to start meditating again. The only way I know to slow down time.
Last Night: Fun with Deep Learning
Hanging out at the space last night, my classmate Jason Toy turned me onto an app called Style, that you can download in the Apple App Store. It allows you to use your webcam to take a photo and apply a deep learning style transfer to it. For example, that means you can apply Starry Night to your selfie. Pretty neat!
Jason and I are talking about collaborating on a project combining deep learning and video. Check out his Tensorflow resources page on github - it’s exhaustive(in a really good way)!
Radical Computer Science: "Computation Theory"
- The joys of coding on the subway.
- “What does it mean to compute?”
- “What can’t we compute?”
- The Theory of Computation
- Ramsey: “I want all of you making computational systems by the end of this class… If you can justify [your system] as computation, you’ve succeeded.”
- Alan Turing: Ramsey: “Saved the world via math.” And then casually, systemically murdered.
- “Turing complete”-ness: Ramsey: “If you can create a computational design that can do what a Turing System can do, it’s ‘Turing-complete’.”
- Ramsey: “You don’t really need variables to compute.” You only need functions.
- “Infinite loop”. A necessary component of any Turing complete language. The ability of a programming language to create a neverending process.
- Zajal, Ramsey’s livecoding thesis project at Parsons. His solution to “the halting problem” - build a timer.
- The Wolfram programming language.
- “Garbage collection” in computer programming.
- Alonzo Church and the Lambda Calculus, a second way to look at the conceptual basis of computing.
- Syntax is arbitrary! Every programming language follows an arbitrary logic(one could argue).
- “Currying” - From Wikipedia: “In mathematics and computer science, currying is the technique of translating the evaluation of a function that takes multiple arguments (or a tuple of arguments) into evaluating a sequence of functions, each with a single argument.”
- The Omega Combinator and The Y Combinator, which are fundamental mathematical functions for computing. “Functional Programming” is closer to these functions, uses them more directly. Here’s a video that explains these concepts through functional programming.
- Accidentally “Turing complete” things.
- The relationship between Design -> Abstraction > Engineering -> Design. This relationship is represented by a triangle. First, you have an idea(design), then you need to represent that idea(abstraction), then, to build that idea, you need engineer it. Any computational system needs all three of these.
Also check out, livecode.nyc, a livecoding group that Ramsey helped found.
I didn’t get to mention it in class, but as we were talking about infinite loops I was really reminded of Borges’ short story “Library of Babel”. If you’ve never read it, you should.
Build a puzzlescript game.
Halloween weekend! The infamous Bike kill! Parties! Woo!
Actually I don’t really like parties but I’m going to try to get out.
Grilled egg and cheese with sriracha demiglaze.
Also, we put in a work order for our broken sink yesterday at the Westbeth front desk and the super came today and fixed it. Hooray!
For Dinner: ?
I’m working on embedding an audio player on this site for all of the recorded class audio. Also, I want to build a directory/archive for it.