Confessions of a Software Geek

Ramblings and rumblings about my many worlds of geekdom.

Monday, October 17, 2005

Good First Draft

During the early eighties, I attended engineering school at Worcester Polytechnic Institute. WPI had a different approach to education. Instead of handing out cookie cutter degrees, the entire program revolved around teaching students how to learn. Even the grading system reflected this attitude, instead of getting the usual A, B, C, D letter grades, grading worked as follows -- AD, means acceptable with distinction; AC, means acceptable; and NR, means no record, as in no record of you taking the class. That's it. You either failed, passed, or passed really well.

For all practical purposes there were no required classes. Sure, individual classes had prerequisites, but you were pretty free to pick whatever classes appealed to you. You also had to take classes that would prepare you for working on your degree requirements. And you had to accumulate a certain number of credit hours.

Most schools stopped there -- grades and credit hours. WPI went beyond this with their degree requirements. To get a degree you had to complete the following projects -- humanities sufficiency, interactive qualifying project (IQP), and major qualifying project (MQP). You also had to pass a compentency examination in your major. When I started it was possible to get your bachelor's degree in three years, since the credit hour requirement was fairly low. By the time I graduated things had tightened up a bit and it would then take about 3 1/2 years.

The humanities sufficiency project was typically completed during your sophomore year. This degree requirement specified that you complete 5 courses and write a thesis in your chosen area -- literature, history, sociology, etc. I chose English literature. In particular, I studied the writings of SF writer Ursula K. LeGuin and how many of her stories shared the common theme of dualism.

The IQP was typically completed during your junior year. The intent of this project was to research the impact of science on society or vice versa. It was a year long project. Most IQP's resulted in a major thesis being written. I worked with a partner and we researched the study of the future, or how people predict the future of technology and it's impact on society. I tackled the science fiction angle, and my partner handled the futurism angle. Our type of project required a great deal of reading and research. All IQP's are assigned a professor who acts as your project advisor. You had to meet with your advisor regularly and give status updates. Once we reached the last quarter, we started work on our thesis. It took several weeks to complete the paper, it ended up 80+ pages in length. We actually completed the paper about 3 days ahead of our deadline. So we turned in a copy to our advisor and planned to meet him the next day. Thoughts of relaxing for the rest of the school year filled our heads on our way to meet with our advisor. Imagine our suprise when his first comment was "this is a good first draft". He went on to say that our conclusion was weak and we needed to beef up our examples to better support our conclusions. So instead of relaxing, we spent the next 48 hours, mostly sleepless, feverishly working on revising and rewriting our thesis. We turned in a revised copy to our advisor and met with him later that day. It turned that our original draft would have been acceptable and we would have gotten an AC as the grade. But he wanted us to go for the AD, which we did end up getting.

The MQP was typically completed during your senior year. Depending on your engineering major, this project often involved designing and then building something. Since I was an electrical engineering major specializing in computer design, I chose to design a microprocessor controlled smart printer buffer. Back in the early eighties, computer printers were mainly of the dot matrix type and hence quite slow. Whenever you printed something, the computer would have to wait until your printout completed before being able to do anything else. My project was to build a device which when connected to a computer would pretend to be a printer and accept the data to be printed and store it in a temporary memory. This process was expected to be much faster and would free up the computer to go onto more useful work. After receiving the data, the device would then communicate with the attached printer and forward the data producing the desired printout. And since the device stored the data in memory, you could get a second copy of your printout just by pressing a button on the device. Overall the design process went well and the construction of the prototype device went pretty well also. But when I tried debugging the prototype things stalled pretty quickly. I couldn't get the processor to come out of reset and actually execute any instructions. I spent weeks trying to solve the problem. Eventually I had to write up my project as a thesis, my only hope was to document everything and try to explain what I would do next assuming that I had more time. I turned in my thesis and met with my advisor, he said he liked my design and agreed with my conclusions, and gave me an AD straight away.

The final degree requirement was the compentency exam. My senior year the had changed the format of the exam and now it consisted of two 3 hour exams and a half hour meeting with your examination board. The first 3 hour exam covered the basics of your major, the second 3 hours covered your specialty area. My specialty area was computer design. Both exams were completely open book and open notes. Most people brought along a milk crate full of stuff. Personally I brought in several cheat sheets that I had prepared ahead of time and a couple of carefully selected textbooks. I seem to remember looking at a single cheat sheet once or twice during each exam. The reality was that if you had to look things up, you really weren't prepared and would never actually complete the exams on time. My meeting with the examination board was interesting. They asked me several questions that led into a major one involving the effect in transistor based amplifiers that limits the bandwidth performance of the amplifier, known as Miller Capacitance. I nailed it, and have never forgotten how to explain this effect.

Overall my experience at WPI was excellent and has served me quite well in my career, first as a hardware engineer, and now as an embedded software engineer. I truly did learn how to learn and am still learning new things all the time.