?

Log in

No account? Create an account

Previous Entry | Next Entry

sport death

I haven't written much lately because I've been very busy. I was able
to get my taxes done -- I just have a few loose ends to wrap up.
Unfortunately, there are a lot of site problems, plus the partition
where the gladiator logs go on one of the log-munchers is blown. This
has caused a massive backup of logs, and some of the glads' partitions
where logs live have run out of space. All I can say is, only two or
so more months of this.

I wrote the following sometime back in another journal. I'm including
it now because I was going to write about this here anyway. Also, it
turns out the 6.111 (digital systems design) TA in question is now a
professor at the University of Colorado. I actually had a dream about
her (inspired by The Idea Factory and some web searching for
Senior House) and the lab last night that was unfortunately
interrupted by being paged by the log-muncher complaining that no logs
could be shipped to it. FYI, the course that taught LISP has been
revamped somewhat -- it is now the famous
Structure and Interpretation of Computer Programs class, aka 6.001.


There are a lot of highly intelligent people who go to MIT, but they
come from very different backgrounds and experiences. Not being
prepared for certain academic situations can cause you to struggle,
and the pace of the subjects makes it easy to be left behind quickly.
Here are two examples from my undergraduate experience:

When I was a freshman, the course that taught LISP programming used
Unix on PDP-11 computers. I knew almost nothing about Unix back then;
barely enough to open files, etc. I was very confused by the manuals,
and remember once spending several hours trying to figure out how to
exit the editor ed. I somehow managed to get into a strange mode where
no terminal input worked. There were no TAs in the computer lab at the
time (it was late at night and I was trying to get ahead on an
assignment). I tried calling a friend of mine who'd taken the class
before, but he wasn't home. I somehow finally managed to exit ed and
to log out. Unfortunately, the time was lost and I wasn't able to make
it up. I had other problem sets to do (electromagnetic physics, diff
eqs, etc). I wound up handing in that problem set just in the nick of
time, but I had fallen off of my schedule and wasn't able to get back
on it. (I also vaguely remember getting sick and spraining my foot
sometime around then. It was a long walk from my dorm room to the
lecture halls, so even when I got to lecture I wasn't 100% ready to
drink from the firehose, if you know what I mean.)

A few years after that, I took a class called digital systems design,
where you had to build projects using portable lab kits equipped with
breadboard, DC power supply, logic analyzer, etc. The class is a known
time sink. I was determined not to fall behind. A friend of mine and I
were discussing how we could complete our assignments faster, and
decided that we were spending too much time wiring, and that if we
used more states (more lines of code in the EEPROM) we could cut down
on wiring time. Armed with that knowledge, I designed the fourth class
project a week ahead of the due date, verified it with my logic
analyzer, and headed off to the lab, convinced I was going to get it
quickly signed off and handed in. That would leave me plenty of time
to put a design together for the final class project. Unfortunately,
things didn't turn out well at all. The TAs had no idea why my circuit
didn't do what it was supposed to do; they agreed that the design was
correct but were of no help getting it to work. Lots of things were
tried: using shunt capacitances, going to fewer states and more
wiring, etc. By the end of the week, no real progress had been made,
so I just had the TAs sign off for having completed the design and
built the circuit. (It wasn't that the circuit didn't work at all;
there was unexplained noise on the scope that they couldn't figure
out.)

The point to all this -- despite planning ahead, I still had problems
-- problems that in retrospect, would not have been problems if I had
known some things then that I know now. Certainly, the Unix usage
would've been trivial, allowing me to focus on other more pertinent
topics, like whether or not things were eq or equal. As for the
digital lab course, after a day or so of the TAs fussing with my
circuit, I would've concluded that there wasn't going to be any more
progress made, and would have just handed in the assignment as is.
That would've left a lot of time for designing the final project, not
to mention my compiler class which had its own share of woes.

Comments

( 2 comments — Leave a comment )
cellio
Feb. 18th, 2004 05:06 pm (UTC)
only life can kill you
A lot of life lessons seem obvious in retrospect but are compltely impenetrable at the time. I think education is largely about encountering enough different things that make you thrash to teach you to detect thrashing earlier. The rest is just, y'know, knowledge acquisition and stuff. :-)
gregbo
Feb. 21st, 2004 03:19 am (UTC)
True ... I think that while I was an undergrad, I "followed my heart"
in terms of pursuing things I was interested in. The results weren't
always what I'd hoped they'd be.

Another digital lab story ... the friend I mentioned above wanted to
build a FFT (fast fourier transform) device for a final project and he
wanted me to be his partner. I wasn't uninterested in FFT, but I was
interested in electronic keyboards (in the semester of madness
referred to earlier, I thought that I would switch to EE and learn how
to design those). So I told him I really wanted to do something
involving electronic music. He offered me a deal that all I had to do
was to write the software, and he'd design the hardware, but I decided
to stick with the electronic music project.

I was able to find another partner to do the electronic music project
with, and we put together what looked like a reasonable design. (The
TAs OKed it.) But for some bizarre reason, in the week before the
project was due, we never hooked up. I would call him at his frat and
no one knew where he was or had seen him. Likewise, he called me at
my dorm and no one knew where I was. I would go to the lab and search
for him, leave messages, ask if anyone had seen him, etc., and he'd do
the same. I was worried that he'd dropped the class and not said
anything (this happens fairly often), but as far as anyone knew, he
hadn't dropped it. We were totally out of sync.

Finally, on the day before the lab was due, we touched base. We made
a supreme effort to interface and debug our circuits, but
unfortunately there wasn't enough time to get everything working.
I might've been better off if I'd done the FFT, at least from a
logistical standpoint.

Anyway, that's an example of how doing something that I was interested
in didn't turn out so well. There are other examples of this ... in
fact I think when I was a sophomore, I wanted to study AI because
people affiliated with the AI lab were doing things with symbolic math
(remember MACSYMA?). If it had not been for that, perhaps I would
have majored in EE or applied math. But the AI classes I took were a
major disappointment (more on that later). Another tale for another
time is how a lot of people I know/knew who did network software
development actually had EE degrees, which made me wonder sometimes if
perhaps it wasn't madness to switch to EE after all. In fact, I
sometimes wondered how people with EE degrees seemed to know a lot
about things like graph theory, NP-completeness, etc. which were not
covered in the undergraduate EE core. Well, as it turns out, there
are several courses in advanced undergraduate and graduate EE
(combinatorial optimization, data networks, VLSI) where those are
taught. (But I didn't realize this in my sophomore year when I
originally declared my CS major.)
( 2 comments — Leave a comment )