This
is Prof. James
C. Hoe’s personal and unofficial recommendation to an ECE undergrad
who is 1) interested in computer architecture AND 2) considering going on to
graduate study. I will continue to
expand this page as time goes on. This does not reflect the opinion of anyone
else, and there is no guarantee of suitability. I believe every word I said,
but that doesn’t mean you should too.
Topic: Don’t Overload!!
“BS in ECE: requires a
minimum of 360 units. This means
that (assuming you have no AP credit), you should average approximately 45
units each semester for 8 semesters.”
My interpretation of that statement: Most of you have AP units, so this means you could
actually take less than 45 units per semester, or take 45 units per semester
that included other more “well-rounded’ courses beyond the 360
needed to graduate.
“ECE Overload Policy: If you
achieve at least a 3.50 QPA, either overall or in the semester prior to the one
you’re registering for, then you may Overload, which means you may carry
up to 66 units (67 for the Fall of your
Sophomore year). This includes
any courses taken as Pass/Fail, or which you are auditing.”
My interpretation of that statement: If you go beyond 4 courses, you are overloading, and
the quality of learning suffers.
(There is a reason you see the prefix “over” in the word
“overloading”. It is a warning that you are operating beyond the
intended range.) Ask yourself, are
you here to learn as well as you can or as fast as you can? What most students do not realize is
that there is typically more than a factor 2 difference (to be conservative)
between the absolute performance of the best “A” student and the
lowest “A” student in a course. Just because you got an A, you should
still ask yourself, did you get a much as you can out of that course? If you are taking 66 units, you
don’t have time to get as much as you can out of your courses.
You might be tempted to think by overloading you are
getting more “units” per dollar (of tuition) out of CMU. Don’t confuse that with how much
learning and retention you are getting for your dollars. Overloading is not worth it.
Topic: How to do well in school
I assume all of you have the mental “horsepower”
if you are at CMU in the first place.
It is easy to do well if 1) you enjoy what you are studying AND 2) you
apply good study “mechanics”.
If the former is false, you have a big problem. But, the latter just
takes discipline. I was going to
write about study mechanics, but then I found this. This link isn’t presented from
quite the right context, but it has got the basic study mechanics well
covered. Now you have an actual
recipe for success written down in front of you, do you have the discipline to
follow through?
Studying correctly will make learning more pleasant
and productive---all the while taking LESS (not more) time. Nothing is more frustrating (and a big waste
of time) than showing up to a lecture and not understanding what the professor
is talking about. (Did you do the reading assignment beforehand?) Nothing is more frustrating (and a big
waste of time) than struggling on a homework assignment that you fundamentally
have no clue about. (Did you wait until the night before the deadline so you
cannot get help in office hours?
Did you skip the relevant lecture in the first place? Did you do the
reading assignment?) These
unpleasant scenarios and others like it can be avoided if you had the
discipline and mechanics to do the right thing in the first place; trying to
make up afterwards is a forever up-hill battle. Every topic you don’t understand
well now will make it that much harder to understand the next topic that
depends on it---don’t let it snowball.
I often get asked by students (even seniors) the
question “do I need to know X for the exam.” This is a sure sign that this student is
still under the high-school’ish mentality of
studying for grades rather than studying to learn. Ask instead the question
“do I need to know X if I want to have a career in Y.” Similarly, when you receive a low grade
in a course, worry less about how it impacts your GPA; worry more about what
the grade is telling you---you didn’t learn the material as well as you
should.
Topic: What courses to take
There
are so many different courses you could take as an ECE undergrad at CMU. This
can get really confusing. The suggestions below are simply a representation of
what “I” would have taken had I been an undergrad in ECE today.
ECE
Core:
18-100
Introduction
to ECE 12
units
18-220 Fundamentals
of ECE: Electronic Devices & Circuits2 12
18-240
Fundamentals
of ECE: Digital Logic & Computers3 12
(18-290 Fundamentals
of ECE: Signal Transmission and Processing 12)
18-200
Emerging
Trends in ECE (Sophomore Seminar) 1
ECE
Breadth:
15-213 Introduction
to Computer Systems 12
18-322
Analysis
and Design of Digital Circuits 12
18-341
Logic
Design Using Simulation, Synthesis, and Verification 12
ECE
Depth
18-447 Introduction
to Computer Architecture 12
ECE
Coverage
15-410 Operating
System Design and Implementation 12
Capstone
Design
18-545
Advanced
Digital Design Project 12
There
are still 50 units of Free Electives. They should not all be technical, but it
does give me the time to take a few more courses (without overloading). Here are examples of some courses I
would consider choosing from.
18-340 Digital
Computation
15-411 Compiler
Design
18-441 Verification
of Computer Hardware Systems
18-525 Integrated
Circuit Design Project
18-540 Rapid
Prototyping of Computer Systems
18-741 Advanced
Computer Architecture
I
would make it a point to take a few fun, non-ECE courses (freshman-level intro
courses are just fine).
I
would also include a senior project.
If I were interested in going to graduate school, I would start my
senior project the summer before the senior year. I would not try to do undergraduate
“research” during the semester with a full course load. Lastly, I would do a technical
internship in the industry the summer before my junior year.
Again,
this simply reflects what I would have done as an undergrad. If you don’t
like what you see here, don’t be shy about asking another professor
closer to your area to tell you what he/she would do.
Topic: Undergraduate Research
Opportunities
It
is very good to do undergraduate research, especially if you are planning to go
on to graduate school. It will give
you a taste of “research”, and it will give your advisor something
concrete to write about in the recommendation letter (if you do a good job that
is).
I
do work with undergraduates on research.
Almost without exceptions, the following are true.
1.
The student is planning to go to graduate school.
2.
The student is interested in computer architecture and hardware.
3.
The student has taken 18-447 (and done well).
4.
The student has substantial experience with C (or some other programming
language) AND Verilog (or some other HDL).
5.
The student is available for full-time research (for pay) in the summer before
the fall of graduate school application.
I
only have resources to work with 1 or 2 students each year. So I prioritize heavily for those who
fit the above criteria. I have
stopped working with undergraduate students during the academic semesters,
except 1. someone continuing from a summer project, or 2. someone who just
needs a “consulting” mentor for his/her honors senior project of
his/her own design. I am generally
very willing to talk to you (CMU undergrads) especially if you come to my
posted office hours.
Topic: Going to
You
should be able to find me giving this talk
at one of the IEEE student meetings each Fall.
Topic: Asking for graduate school and
fellowship recommendation letters
Rule
#1: Unless the professor knows you by name without prompting (and for good
reasons), don’t bother asking him/her for a letter. Rule #2: If a professor appears
reluctant to write you a letter, it is little use to try to persuade
him/her. An impersonal, lukewarm
“form” letter will not help and may actually hurt your case. If you
know you are going to need recommendation letters in the future, start building
relationships early.
For
formal letters, make sure you ask your letter writers at least one if not two
months ahead of the deadline. Be
sure to provide very clear instructions to your letter writers. Provide pre-addressed and stamped
envelopes if appropriate. Remind
you letter writers again a couple of weeks before the deadline. If possible, take it upon yourself to
verify the letters have been received by the destination.
Topic: Asking for job application references
Much
of the above still applies, but references for industry jobs are much less
formal. Be sure to ask for
permission before you list someone as your reference. It is customary to just say
“Reference available upon request” on your resume. Usually companies won’t even
bother to ask you for your list of references until after you have gone through
an interview and done well.
Topic:
Do you have the knack?
College
is all about finding your knack.
Didn’t find the answers you were looking for? Try emailing me the
question directly. (How
to contact me.)