Friday, January 28, 2005

Abstraction & The Time Game

While walking to our cars on yesterday one of my friends makes a comment about abstraction and how it is absolutely critical to the development of hardware/software systems today. I really hadn’t given it much thought, but then that is what abstraction is really about. If each part of the system does its job well, no one else really needs to know how it does what it does, only that it does it. In class we were having a discussion about i/o in assembly, and the beautiful thing about it was that, at least in MIPS, you can use system calls to get input and to give output from/to the user. The thought that came to my friend’s mind was that if we are still able to call built in functions, even in assembly, that means that someone had to write the actual assembler, and that somewhere, someone had to deal with the nuts and bolts of actual i/o. Interesting thought. Abstraction grants us sanity. Isn’t it great that one can write in a high level language and not have to worry about register allocation? In the object oriented sense, isn’t great that I can use the STL map in C++, in Java the Collections Framework. I learned how to implement my own map, but it is so nice just being able to call a standard version somewhere, and not have to worry about the implementation. It can save time, stress, and money. I hadn’t made the connection that most every system in the modern PC works on the principle of abstraction until we had that conversation yesterday. As I thought about it, I really gained an appreciation for the principle. When I started this programming game, I didn’t totally understand the principle abstraction, but I am now beginning to see how it is threaded throughout the area of computing.

The Time Game
Thirty hours on the software practice homework last weekend really messed up my timing this week. It seems that no matter what sacrifices I make to have more time to study, I still never have enough time to do things the way that they need to be done. Yes, I did a great job on the software practice homework (I hope), but it resulted in me not spending sufficient time on Linear Algebra or Computer Organization. The result? Last night at 11:30 I was trying to finish the Computer Organization assignment, and didn’t understand the last problem. You may say, but it was only one problem. That is true, but those are still points that I shouldn’t be missing. There is plenty of help out there but it is only available if you get started early. On the current homework dock I have a new assignments in all of my classes. I am now trying to figure out how to give each of them adequate time this weekend, so that I can get the help I need to get them all finished on time and completely.

I really do love this stuff, the learning curve is just steep, and all assignments take time.

1 comment:

Anonymous said...

I read yesterday that technology is the art form of the 20th century. I think I've heard it before but it struck me differently this time. And whether or not I agree with it (which I have a feeling I may debate with myself for years) with that statement came an affirmation for me: My brother IS in a great field for himself. All along, Joe has been/is/and will be, an artist.