Junior Year Ramblings
May 25th, 2009This is a deviant post. I am actually writing a blog today.
Today’s TECH Highlights
I installed Ubuntu on my new computer (Wei will be proud!) and am trying out the new google Chrome. It seems to be working pretty well.
JUNIOR YEAR!
Junior year was interesting and overall, even with some all-nighters, I really, really enjoyed it. I especially want to point out one class I greatly appreciated: 6.033 Computer Systems. For one, I had an amazing recitation instructor, Prof. Daniel Jackson, whose enthusiasm and spirit brought the sometimes long and dull papers to life. By the end of every recitation, I became enthusiastic about yet another component of systems in CS.
Even though many juniors can not call 6.033, computer systems CI-M class for CS majors, I really enjoyed it. I felt I learned a lot about systems and the importance of how crucial it is for people to develop secure, safe, and efficient systems (and not just in computer science!). For me, it really opened my eyes to see how complexity arises from simple components put together. Even though I may not delve into pure computer science in my future reserach, I feel that the overarching concepts in this class will be useful in whatever I do.
Even though this class covered topics very far from biology, with every lecture I kept going back to fundemental biological systems and how similar (or different) they are to computer systems. What amazes me is what took the universe 13 or so billion years to conjure (and perfect?) is being mimicked by humans today in the computational world. For example, think about how computers store memory versus how our brains store memory. Our brain is a database, just like in computers. Scientists still don’t understand all the complexities of how humans fetch and store memory using layers of neurons, yet computer scientists have developed pretty sucessful systems on how computers fetch and store to memory…yet computers still aren’t perfect! Unintentionally, this class has kept on making me wonder all these philosophical questions–like are we even traveling the right path in CS systems, and are our implementations actually the best? In CS, people have gotten used to building on top of layers of bugs–and correcting those bugs indirectly through new layers. This may seem like wrong or like “cheating” to some, but in actuallity, I bet our very own bodies have done the same. Biological systems have layered schemes, where one layer may sometimes correct for mistakes several layers down. Evolution is amazing!!
These are some of the more general (not much jargon) yet great papers from the class that I highly recommend people to read (or at least skim):
Herbert A. Simon. The architecture of complexity.
Nancy G. Leveson and Clark S. Turner. An investigation of the Therac-25 accidents.
Ross J. Anderson. Why cryptosystems fail.
Ken Thompson. Reflections on Trusting Trust
Butler W. Lampson. Hints for computer system design