Our big project was to build a 4 bit microprocessor
using the logic chips,
placed on our bread boards, wired together by hand (did a lot of wire
stripping in that class). My partner was a Senior and he did very
little
work which I didn't mind since it wasn't that tough of a project.
(Ironically
I'd be in the exact same position he was in, not caring about the
project
and letting my Junior partner do all the work -- hence why you should
*never*
partner with a Senior.) To check our results the TAs had EEPROMS with
code
that we had to run. I remember trying to be very safe by making the
clock
speed as slow as possible, so it took like 10 minutes to run the code
while
the TA looked on in bewilderment ("Is it still working?").
At Berkeley, the 15x courses are digital circuits, 16x courses are
Operating
Systems and Compilers, 17x courses are Theory, 18x courses are
applications,
and 19x course are sort of miscellaneous. CS 170 was the Introduction
to CS
Theory and contrasting to CS 150 this was a textbook heavy class with
no
computer work involved, I believe. All the 17x classes are like that,
so the
strategy is to not take two of them at the same time because they're
boring!
I don't remember CS 170. I do remember that CS 172 and CS 174 were more
of
the same except more detail.
Math 128A -- Numerical Analysis using Computers, or something like
that.
There is a requirement to take one upper division math class. At this
point
I was pretty sick and tired of math, so instead of taking a standard
math
course I chose this one, which can be summed up as "using FORTRAN to
solve
math problems." Actually, we could use C or FORTRAN for our programs,
but
this is the class that showed me that FORTRAN is a whole lot better
than C
at doing numerical analysis, hence why it's still around.
|
Basically this class was "here's how to code
integration" followed by us
having to code it and run it against the exercises. And if it was that
simple
I would have done better than an A-. But the hard part of the class was
that
I didn't know half the math we were using ("it's ok if you don't know
the
material in-depth, we'll fill you in on the mathematics you need to
know")
which it made it really hard to check my answers. You can do this
problem
on the computer using this algorithm and if you can do the math you can
also
do it by hand (and get an exact answer to boot) and check your answer.
Not
knowing whether the answer the computer prints out is right or wrong is
a bit
frustrating.
In the Spring of 1992 I took four classes worth 15 units. CS 152 --
Computer
Architecture and Engineering, taught by Dave Patterson and someone
else.
Professor Patterson is best known for developing RISC (Reduced
Instruction
Set Computers) with John Hennessy at Stanford, although he also lead
the
RAID team (RISC was the big thing when I went to college).
In CS 152 we read the MIPS architecture book and talked about CPU
design --
superscalar processors, caching and memory, instruction sets and
pipelines.
All actually pretty useful for when I read about the PowerPC and
Pentium
architectures. Our big project was very similar to CS 150 -- design a
microprocessor, but instead of building it we just do the design with
this
VLSI software we had. The best part was working on Sparc 10 computers,
those
were sweet compared to the usual Sun 3's that we had to deal with in
other
classes. Only the SGI machines in CS 184 were better workstations.
Unfortunately I messed up the project. We were testing and I set the
clock
speed way up to see what would happen (bad things happen) and I forgot
to
set it back down for when we presented. So our design didn't work and
we were
graded down, hence the B- I got in the class. Rats!
(continued)
|