Course Overview (pdf ps)
Department of Electrical and Computer Engineering
The University of Texas at Austin
EE 379K, Fall, 2000
Yale Patt, Instructor
TAs: Kathy Buchheit, Laura Funderburg, Chandresh Jain, Onur Mutlu,
Danny Nold, Kameswar Subramaniam, Francis Tseng, Brian Ward
Introduction to EE 379K
August 30, 2000
Class meets: 5 to 6:30pm, MW in Welch 2.224. There will be twenty discussion sections, as shown on the
accompanying discussion sheet. You are registered for one of them, and in fact, your registration is tied to
the unique number of that section. However, if you find it more comfortable to change sections for any
reason, feel free to do so. Education works best when you and the instructor are on the same wavelength, so
you are encouraged to shop around for the TA who teaches best for your needs. If you do change sections,
the only thing we need you to do is let the two relevant TAs know, so you will not fall through the cracks
regrading. Problem sets and exams will be returned in discussion section, so we will need to know which
section you are attending. Furthermore, if you miss your discussion section, and want to attend one of the
others, that is fine also.
We will not take attendance. You get to decide whether or not you come to class. However, this is not our
first year teaching, and our experience tells us that if you don't come to class, you probably don't pass
the course.
You are strongly encouraged to form study groups, and share your insights as well as challenge each other's
mastery of the material. Our experience also tells us that if you form an effective study group, you will
probably all do better in the course than if you go it alone. Life (and certainly life after graduation)
is about working in teams, and we encourage you to do so here.
Achievement will be based to a large extent on your performance on the three exams. Copying others' homework
without it going through your head is a sure way to fall flat on your face on the exams.
This is an engineering course. It will continually build on the knowledge you have already gained in the
course. It probably is not a good idea to let it slide and try to catch up at the last minute. Please do not
consider that a challenge.
Statement of the objectives of the course:
This course is a serious introduction to the fundamental underpinnings of computing. It is a first course.
We assume you are enrolled because you want a serious introduction to computing.
Our objective is to remove a good deal of the mystery of how computers work and to teach you enough programming
methodology to enable you to get the computer to do useful work for you. In that vein, we will start at the
bottom and work our way up. In every case, when we cover a sophisticated topic, we will try to tie it to what
you already know. We expect you to come out of this course not only knowing how to do some things, but also
having a deeper understanding of why some of those things are as they are.
We should also tell you at the outset that this course represents a major departure from the way computing
has been introduced at most universities in the last 30 years. Most universities have been starting with an
introduction to programming. However, there is a lot of talk among computer education professionals lately
that the historical approach is not the best approach. We pioneered the approach of 379K for the first time
at the University of Michigan in Fall of 1995. A number of schools have started adopting it. That number
is continuing to grow. We in ECE at UT strongly agree with this approach. That is why EE 379K was born this
fall. So, you are the first group to travel what in the faculty's judgment is the correct road to begin the
study of computers.
Course materials:
Textbook: "From Bits and Gates to C and Beyond," by Yale Patt and Sanjay Patel.
Simulator: Available on both Windows and Unix platforms. Your TA will show you how to access it. Information
on the course web page.
The programming assignments will require using the LC-2 (for Little Computer 2), a machine invented
specifically for this course. The reason for the "2" is that we did not get it right the first time. You will
write, debug and run each of the programs on the LC-2 Simulator.
Finally, we will post material from time to time on the web that we think you will find useful.
What we expect from you: We do not expect to read the book to you. You should consider the lectures, the
discussion sections, the book, and any material on the web as different mechanisms for helping you learn
the same material. We will expect you to write six programs and solve five problem sets. On the
problem sets you are encouraged to work together in groups. The programming assignments you may work in
groups up to the point where you begin the actual construction of the program. That is, you can work together
on the high-level development of an algorithm. But once you start writing code, you are on your own. The
problem sets and the programming assignments are ways for you to check to see if you are getting the material.
We encourage you to study in groups, and, where practical, to come to various office hours in groups. That
usually will result in all of you understanding the material better. You are encouraged to ask questions after
you have thought about the material, and to challenge assumptions. Computer Engineering deals with "nature"
that is man-made (person-made, actually, but that is awkward) and so we the people may have made it wrong.
Your own work: Although we encourage you to study together, the actual programs you write and examinations you
take must be your own work. Providing information to another student during an examination (or where otherwise
prohibited), or obtaining information from another student during an examination (or where otherwise prohibited) is
considered cheating. Allowing another student to read something on your paper during an examination (or where
otherwise prohibited) is also considered cheating. If you cheat, you violate the soul of the University, which
we take very seriously, and will deal with in the harshest possible way.
For those of you who decide to continue in this course, Good Luck. We hope you find the experience an effective
initiation to your computing education. We also hope you have a good time during it.