Friday, August 24, 2012

Algorithms

"For me, great algorithms are the poetry of computation. Just like verse, they can be terse, allusive, dense, and even mysterious. But once unlocked, they cast a brilliant new light on some aspect of computing" - Francis Sullivan

Algorithms.  I think they are fascinating, scary, and, as the author above states, like poetry.  In just a few lines of code, pseudocode, or math, a whole concept and idea can be expressed.  But once you get that a-ha moment of understanding, its a great rush, and can be quite beautiful (see fractals, etc..).  They require (for me at least), multiple readings and deep study to pull out the underlying meaning.  Then putting them to use is another big challenge.  As any computer scientist knows, an algorithm can make the difference between a program that runs, and one that will never finish.

To further my knowledge on algorithms, I've enrolled in the Coursera algorithms class which has so far been pretty good.  I think they are taking a great approach to understanding the algorithm, and having the students implement them.  Thus far my favorite has been Union-Find, of which I'll try to do a writeup of tomorrow.

Tuesday, February 22, 2011

Abstraction

We've been learning a bit about Abstraction in my software engineering class.  As part of our assigned reading we had to read the following Wikipedia articles:

http://en.wikipedia.org/wiki/Abstraction_(computer_science)

http://en.wikipedia.org/wiki/Abstraction_inversion

http://en.wikipedia.org/wiki/Encapsulation_(computer_science)

http://en.wikipedia.org/wiki/Specification_(technical_standard)

I also found this article on the Pragmatic Programmer website that I think is pretty good:

http://www.pragprog.com/magazines/2011-02/abstraction

I found the relation between Abstraction & Duplication interesting, as well as putting TDD in the abstraction context as well.

Many of these things seem to also be related to the famous "information hiding" paper from David Parnas:

http://www.cs.umd.edu/class/spring2003/cmsc838p/Design/criteria.pdf

 

Posted via email from What I learned today

Thursday, January 14, 2010

Plato's Theory of Forms and Object Oriented Programming?

I'm taking an Object Oriented programming class and was thinking about how it seems to relate pretty well to Plato's Theory of Forms.  When you define a class its kinda like creating a non-material ideal, but when you actually implement it, then you create the material form.  Or you could think of abstract classes and subclasses of that abstract class in the same way.  

Posted via web from What I learned today

Thursday, March 26, 2009

OnLive Cloud based video games

OnLive Seems like a really cool idea, play games online from anywhere, no downloads, play the latest games online. Wonder if it will be the game changer its hyped up to be?

Wednesday, March 25, 2009

Wolfenstein 3D classic on iPhone

Pretty cool stuff from iD software, John Carmac has released the source code to an implementation to the 'grandfather of fps', Wolfenstein 3D on the iPhone. http://www.idsoftware.com/wolfenstein3dclassic/

Thursday, March 20, 2008

Jon Kabat-Zinn at Google

Jon Kabat-Zinn wrote one of my favorite books on meditation, Wherever You Go, There You Are: Mindfulness Meditation in Everyday Life, and is a professor at the UMass medical center. Here is a great talk given by him at Google, its a big long since there are some meditation sessions, but worth the time.

Wednesday, December 19, 2007

The Story of Stuff

From DailyGood today I was shown this great page about how our consumerist economy works, and the consequences of our consumption. The main page has a roughly 20 min video that is a great overview of how what we buy impacts the world. Check it out http://www.storyofstuff.com/index.html