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

 

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.  

Discrete Structure Haikus

Last night I came up with a few Haikus related to my discrete structures class:
Ode to Konigsberg
----------------------------
Even degree nodes
To cross each edge only once
Such did Euler find

TSP
------
Hamilton circuits
With minimal total cost
Are quite hard to find

P vs NP + Hamlet
---------------------------
Deterministic
Or Non-deterministic
That is the question

NYTimes article on "student entitlement"

An article on students feeling entitled to a good grade just because they read the chapters and "work hard".  Its interesting to see the quotes from the students saying as much.  Also to see some professors agreeing with that idea, and others giving another view such as:

"if students developed a genuine interest in their field, grades would take a back seat, and holistic and intrinsically motivated learning could take place."

I think that might be a little too idealized as well, since it is a competitive environment, and students must maintain certain grade averages to even stay enrolled or graduate.  I guess the trick is to find the proper balance.

Substitution

From Jeff Hawkins book On Intelligence he gives an example of how one might think of creating intelligent machines. To paraphrase, if you had a chess board, and swapped out the knight with a salt shaker, could you still play a game of chess? Same thing goes for your brain and your mind, if you were to swap out your brain for something that does the job, would it still have your intelligence? Another example would be the fact that your body is constantly replacing all of your cells, and yet you remain yourself.