|
After much debate and a "Dear
Undeclared Junior" letter, I finally declared Computer Science as my
major. I was originally Electrical Engineering, then after getting
disenchanted with Stanford Math, I became a Computer Systems
Engineer. Then I essentially was tricked into going back to EE which
I absolutely hated, and then after much thought, ultimately decided
on CS.
So it was a long and winding
road and here is the play by play, which I wrote up more for my
benefit than yours:
Side Note: You will see this ends in my junior year. I did
actually finish my degree. Sorry, I just
didn't feel like reliving that pain...
Autumn 97-98
| Intro to
Humanities:
Why Read It? |
A ridiculous title for a
fairly good class. We read Persian Letters, King
Lear, Symposium, and Their Eyes Were Watching
God in analyzing "why read it?" from historical, artistic
and performance perspectives. A paper on each book plus a
midterm and final equaled too much work for a CIV
class. |
| Writing & Critical
Thinking:
Writing about Social and
Political Issues |
A cool class wherein I
had to write paper after paper culminating in a 20 pager about
the Armenian Genocide. As part of a community service
requirement, I also wrote up a pamphlet for the East Palo Alto
Police Department about Domestic Violence. |
| Math 51:
Multivariable
Calculus |
This class scarred me.
At no point during any lecture did I have any idea what was
going on. This was a real lesson on what college engineering
courses were going to be like. I bombed the first midterm but
came back strong to get an A in the end. |
| EE 100:
The Electrical Engineering
Profession |
A seminar going
through various aspects of being a EE, such as how to get a
job, filing patents,
etc. |
Winter 97-98
| CS 106A:
Programming
Methodology |
One of my favorite
classes at Stanford, one of the few I *always* found
enjoyable. I learned a great deal in this class, both about
programming in general and C programming in
particular. |
| EE 60:
Viewing Hazards on Earth from
Space |
I actually did worse
in this 6 person seminar than in any other class (relax, I got
a B+). This class was memorable in that the final project was
with a partner and mine was responsible for turning it in. He
forgot what day the project was due. Enough said. |
| Math 103:
Matrix Theory and its
Applications |
After disgusting Math
51, I took a little detour through a higher division Math
course, which turned out to be much easier than the lower
one. Go figure. |
| Intro to
Humanities:
Europe and the
Americas |
This was actually a
really enlightening course. We read a bunch of loosely related
works like Communist Manifesto, Dora, I,
Rigoberta Menchu, All I Asking for is my Body and
so on, in the study of the notion of
"I." |
Spring 97-98
| Intro to
Humanities:
Europe and the
Americas |
Continuation of above
course. This was my favorite quarter, as we studied Native
American works which I find both fascinating and
brilliant. |
| CS 106B:
Programming
Abstractions |
Continuation of 106A,
though I didn't like it nearly as much since it was less
creative and more grind-work. Focus was on abstractions of
such ideas as trees, sets, link lists,
etc. |
| Math 53:
Ordinary Differential Equations
with Linear Algebra |
After all the fun I
had in Math 51, here was the third and final class in the
sequence. Nothing very interesting nor notable and less
difficult material than 51. I took this class because I
thought I was doing EE or CSE, but now that I'm CS (which
doesn't require it) it was an utter waste of time. But hey, I
was told it would be useful. |
| CS 1U:
Intro to UNIX |
A fun and easy class
that solidified my knowledge on how to deal with and
manipulate the UNIX operating environment. Came in handy for
my future CS classes. |
Autumn 98-99
| CS 107:
Programming
Paradigms |
A HARD course determined
to make a programmer out of all who successfully pass it. We
began with a very intense project in C that dealt with
low-level memory management and dynamic arrays, then
multi-threading in C, progressing to LISP, some machine code,
and finally Java. By far the worst project was the
multi-threaded app, I maintain my opinion that C is just not
cut out for that kind of stuff, especially not if Java with
its beautiful "synchronize" keyword is lying around. The final
straw is that there is both a midterm and a final on top of
all the assignments. This is a tough one
folks. |
| E 40:
Intro to
Electronics |
Very broad and very
difficult introduction to electronics, complete with weekly
lab. I actually learned a TON from this class and consider it
worthwhile, but I will never forget the final. That was simply
the most difficult test I've ever taken and it's suffice to
say that I went to blow some steam off to one of the TA's
after the exam and his only words to me was "that was one
f___'d up test." |
| IE 292:
Tech Management
Seminar |
A seminar course that
brought in leading speakers from industry like Guy Kawasaki,
Tom Siebel and Esther Dyson to speak to us about their
companies and their paths to success. Pretty cool, certainly
gets your entrepreneurial juices flowing. |
| EE 33:
Fun Electrical Engineering Stuff
(and how it works) |
This class tricked me
(see above) into coming back to EE. We had an extraordinarily
cool teaching staff and all we did was literally take stuff
apart and saw how it worked, capped by a final project where
we built something from scratch. Now mind you that has nothing
to do with what real EE's do, but that's the impression they
gave all of us, leading me down a dark EE path for the rest of
sophomore year. |
Winter 98-99
| CS 198:
The Teaching of Computer
Science |
Ultimately, the only
applicable class I took this quarter and one of the best
experiences I've had at Stanford. After some initial training,
we took helm of our own 15 people 106A sections as well as
doing on-the-fly help at the LaIR. |
| E 60:
Engineering
Economy |
Practical but somewhat
dry course covering compound interest, tax, etc. Essentially
economic analysis for choice among alternatives. Now that I'm
CS, I didn't need this one but I don't regret having taken
it. |
| E 50:
Intro Science of
Materials |
Taught by the great
John Bravman this was a deceptively difficult course but
really enjoyable due to the prof. Focus on crystalline
structures and microstructures. Once again, this class is
unneeded now that I'm CS, sigh. |
| EE 101:
Intro to
Circuits |
Hands down the hardest
class I've taken at Stanford. I did really well but I really
worked my butt off. Professor El-Gamal made this class
actually fun to go to though, simply because he was absolutely
hilarious. Every topic was call for him to bust up. Don't get
him started on how big one Farad really is. You guessed it,
this one doesn't count for me now
neither. |
Spring 98-99
| Comm 169:
Computers and Interfaces:
Psychological and Social Issues |
Taught by the great
Cliff Nass, this was an awesome course, definitely one of my
favorites. I learned a ton of things about how people interact
with computers and new media and really enjoyed going to class
since Nass is a fantastic lecturer. |
| CS 196:
Computer
Consulting |
Since I wanted to be a
Resident Computer Consultant, I was required to take this
course. I learned little. Highlight of this class was having
to do 3 hours of consulting at Meyer or Tressidder per
week. |
| EE 121:
Digital Design
Lab |
This class was fast
and furious but actually a lot of fun. We had weekly labs
which culminated in a group project that we spent literally 9
straight days on (with 3-4 hours sleep a night). A lot of
frustration was encountered as the software and equipment we
had to work on was very buggy. |
| EE 102:
Intro to Signals and
Systems |
Part two of EE hell.
This class wasn't as hard as 101 but it was still really
painful. Professor Boyd was awesome however, but it still
wasn't enough to make EE inspire me. The thought of taking
four more courses much like this one and the one before it
really turned the tide and pushed me to
CS. |
Autumn 99-00
| CS 147:
Intro to Human Computer
Interaction |
A promising course that
ended up a bit painful. I had seen most of the material
already in Comm. 169, and further, the class had a lot of work
and reading. However, Professor Winograd is my advisor and it
was a pleasure to take a course from
him. |
| CS 109:
Intro to Computer
Science |
A cohesive
conglomeration of material I had seen in bits and pieces
elsewhere and earlier. Somewhat informative class but I feel
it was a useful foundation for my future theory
courses. |
| CS 108:
Object Oriented System
Design |
In retrospect, I
really liked this class. Professor Parlante was a great and
enthusiastic lecturer in teaching us the fundamentals of OOP
in the specific context of Java. The class culminates with a
massive, two week long group final project known as "Bunny
World." No midterm, no final, and learning practical, current
information equal one very pleased Armen. |
| RS 121:
Peoples of the Book: Mates,
Mothers and Daughters |
This was a fantastic
course. I very honestly learned more practical information in
this class than most of my engineering classes combined, and I
really enjoyed it throughout. Professor Gregg is my favorite
Stanford Prof and I really hope I'm lucky enough to get a
chance to take another course with him. The class
analyzed the three major religions treatment of various female
characters and finished with a 30 page paper that I chose to
write on Tamar from Gen.
38. |
Winter 99-00
| Pysch 40:
Cognitive
Psychology |
Fun and interesting
course tracing the development and results of cognitive
psychology. I took this course in pursuit of more background
for my HCI concentration in CS. |
| Comm 172:
Pyschological Processing of
Media |
I liked Comm 169 so
much that I couldn't resist taking this course which was in
many ways a continuation. We studied how people process media
psychologically, something I think will be very useful to know
as I pursue that branch of CS more concerned with interfaces
than programming. |
| CS 154:
Intro to Automata and Complexity
Theory |
Ugh. I kicked butt in
this very dry class until the final which just blew me away.
It wasn't all that hard but the last two weeks descended into
NP-Completeness and Complexity Theory and all of a sudden I
had no clue what was going on. Take this class only if you
have to. |
| EE 203:
Entrepreneurial
Engineering |
A painless and often
interesting EE Seminar that brought in Stanford entrepreneurs
who shared their experiences and advice with
us. |
Spring 99-00
| CS 157:
Computational Logic |
This is really just one
of those classes you're angry you have to take. If you
understand basic logic than this ten weeks would really have
been better spent doing anything else, like sleeping. What's
really ironic is that though the subject matter is a cake
walk, there is no curve so you have to be incredibly anal to
do well. Well, actually it must only seem that way because I
did fine and I was the opposite of anal when it came to this
particular class. For that, I think I have to thank the
final; a final which I, probably along with everyone else,
romped like no other in my Stanford history. |
| CS 143:
Compilers |
What a misnomer. Why
don't they rename this class to "Parsers, in the context
of compilers"? You learn and work with a lot of the stuff
you study theoretically in 154, so I guess that was nice. But
the projects progress from ridiculously easy to completely
mistifying. I wouldn't say they were exactly all that hard, I
would just say we had little to no idea what we were expected
to do. I've never used the email helpline so much. Couple that
with TAs who simply didn't care and you have a recipe for
disaster. |
| EE 182:
Computer Architecture and
Organization |
Now here was a class
that I had heard so much negative stuff about since freshman
year that I was pleasantly surprised at its reality. It was
still pretty challenging, but mainly because my other
obligations really left me with the bare minimum of time to
devote to this class. My fondest memories of 182 are
consistently going to class and find him covering e.g. chapter
9, let's say page 800 while the last chapter I had read was
e.g. chapter 5 at around page 500. I played serious catch up
for basically an entire quarter here. The upshot was that I
learned a lot about the hardware aspect of things,
specifically I was amazed at the sheer complexity of a
processor when you really dig deep to see what it's doing. I'm
more than impressed that people developing the original x86
didn't just give up when they ran into one of those countless
problems a pioneering cpu designer would face. |
| Comm 369:
Experimental Design for Speech
Interfaces |
This was one of those
once-in-a-lifetime, only-at-Stanford courses and I'm really
lucky I got a chance to participate in this course. Taught by
the great Cliff Nass, this class involved designing a Speech
Interface experiment and then actually running it on subjects,
eventually analyzing the results for publication. As the
professor put it, by the end of this class, we would be
responsible for the bulk of the body of knowledge on this
subject, so this was pretty serious stuff. Unfortunately, my
group experience didn't work out too well. We didn't partition
off responsibilities very evenly and coupled with simply one
too many technical difficulties with the software running the
experiments we didn't have enough time to analyze the data.
Our experiment will be repeated in a future quarter so I can't
really say what it was, but it generally dealt with the
various blame methodologies a system can use when handling an
error and the user's response to that. |
|