Instructor: |
Yale Patt |
Web: http://www.ece.utexas.edu/~patt Office: 5.802 Engineering Education and Research Center (EERC) Phone: 512-471-4085 Email: patt@ece.utexas.edu Office hours: MW, right after class, and by appointment Course Descriptor August 25, 2021 |
|
COVID-19 and its Effect on EE306: |
Before we even begin to discuss EE306, it is important to acknowledge the
current COVID-19 pandemic, its recent resurgence, and its affect on our course.
I have kept up with the reports from the various government agencies (CDC, FDA,
etc.) and I believe I understand the dangers we are facing. I have also
visited the classroom that we were scheduled to use (WCH 1.120) and recognize
that it would be foolhardy to conduct the class there in person right now. I
say this very reluctantly because I think you can learn much better and I can
teach much better if we do it in person. However, I am mindful of comments I
have heard from many parents that they are looking forward to your graduation
four years from now, and NOT your funeral later this semester.
Given all of the above, I have asked for and gotten approval to teach the first
four weeks of the course on line using Zoom. Discussion sections will also
operate over Zoom. Office hours will also be conducted over Zoom. Hopefully,
the virus will subside over the next month so that we can hold most of the
course in-person, something I very much want to do.
The Zoom Meeting ID will be posted on Canvas. Please be sure to check the
CANVAS website for it. Our first class will be this coming Wednesday, at
3:30pm. Because I have 172 students in my class, I would like to be sure none
of you fall through the cracks. That is harder to do remotely than in person.
To help me, please send email to Jason Math, one of my TAs, telling him you
received this first email. His email address is ta.jason@my.utexas.edu.
I must add that all science tells us the best way we can kill COVID-19 is by all
of us getting vaccinated. I am told that I can not require you to get
vaccinated, and in fact, I can't even inquire as to whether or not you are
vaccinated. But I can encourage you to get vaccinated. I will also tell you
that when I was in high school, we had an epidemic caused by polio that was
killing and maiming too many people. Fortunately, Dr. Jonas Salk came up with
a vaccine, we all took it, and we wiped out polio almost instantaneously, and
life returned to normal. I would like to see us do the same thing here so we
can again get back to life as normal. Anything you can do to help make that
happen will be appreciated by all of us.
Now, on to EE306. |
Additional information about EE 306 is also contained in a handout titled:
Additional introductory comments about EE 306. Please be sure to read
it. It expands on a number of items in this Course Descriptor. Also, make sure
you read the handout titled: Course Outline (aka, Syllabus). It contains a
lecture by lecture schedule of topics for the entire semester, the major
emphasis of each discussion session, the due dates of problem sets and
programming assignments, and the dates of all examinations.
|
|
Course Overview: |
This is the first course in computing for students of computer engineering and
electrical engineering. The objective is to provide a strong foundation that a
serious student can build on in later courses across the spectrum of computer
science and engineering. The idea is that a more complete understanding of the
fundamentals early in your education will help you acquire a deeper
understanding of more advanced topics later, whether that topic is in computer
architecture, operating systems, data base, networks, algorithm design,
software engineering, or whatever. I call my approach "motivated" bottom-up.
That is, after providing some overview of why a new concept is important
(motivation), we attempt to tie that new concept to what you already
understand. Starting with the transistor as a switch (much like wall switches
you have been using all your life to turn on/off lights), we build logic gates,
then more complex logic structures, then gated latches, culminating in an
implementation of memory and a finite state machine. From there, we study the
computer's instruction cycle, and then a particular computer, the LC-3 (for
Little Computer 3). Why "3"? ...because we got it wrong the first couple of
times! The LC-3 captures the important structures of a modern computer, while
keeping it simple enough to allow complete understanding. The first
programming assignment is in the machine language of the LC-3. From there, we
will move up to Assembly Language, and learn how an assembler works. The
remaining programming assignments are in LC-3 Assembly Language. We cover good
programming style and practice, and teach debugging from the gitgo. An LC-3
Simulator allows you to debug your own programs. Input (via the keyboard) and
output (via the monitor) both use physical device registers. System service
routines, written in LC-3 Assembly Language are used to perform Input and
Output functions. They are invoked by user programs by the TRAP instruction and
corresponding trap vector. Subroutine calls and returns complete the LC-3
instruction set.
|
Course Description: |
The course will cover the material of Chapters 1 through 10 of the textbook. See the handout, Course Outline (aka Syllabus), available on the class website.
|
Meeting Info: |
The course consists of three hours of lecture + a one hour discussion section
each week. Lectures will initially be over Zoom, MW 3:30pm - 5:00pm, but
hopefully we will move to WCH 1.120 before too long. Discussion sections are
scheduled at various times of the day on Thursdays and Fridays. The Course website
lists the meeting times and room numbers for each of the 8 discussion sections.
Initially, discussion sessions will also be over Zoom, but hopefully here to, we
will be able to move to the rooms specified before long. Note that each
discussion section has its own unique id. Students are free to attend the
discussion section of their choice, although I would like you to attend your
assigned discussion section during the first week of the course. After the
first week, you are free to move to whatever discussion session you prefer. In
fact you are free to shop around as long as you wish. My hope is that you will
find the TA whose explanations are best suited to your learning style.
|
Teaching Assistants: |
I have six TAs, three graduate students and three undergraduates. The graduate
students are Sabee Grewal (the Head TA), Ali Fakhrzadehgan, and Ying-Wei Wu.
The three undergraduates are Michael Chen, Jason Math, and Adeel Rehman. All
three undergrads took EE306 with me not long ago, and so have particularly good
insights re: helping you learn the material of the course. I interviewed more
than 30 students who wanted to TA this course, and think I have picked the best
six for the job. Please take advantage of them. They are here to help you
learn.
|
Course Home Page: |
http://www.ece.utexas.edu/~patt/21f.306 |
Textbook: |
"Introduction to Computing Systems: from bits and gates to C, C++ and
beyond"; Yale N. Patt and Sanjay J. Patel; Mc-Graw Hill, 3rd edition,
2019. You will need the 3rd edition. I made many substantial changes since the
second edition. A digital version of this book is available through the
Longhorn Network at a greatly reduced price, so I encourage you to take
advantage of this. For those who want a hard (paper) version, I recommend the
loose leaf version as the most effective. Because you are enolled in EE306,
the digital version is available to you right now. You can use it at no cost
until the 12th day of classes, at which point, you will need to commit to
either buying it or rejecting it. If you go to your CANVAS webpage and click
on "My Textbooks," it should be clear what you need to do to access the
textbook.
|
Additional Course Resources: |
Class handouts will be supplied when necessary to supplement the concepts
discussed in lecture. Other information will be downloadable from the course
homepage.
|
Prerequisites: |
There are NO computer pre-requisites. NO programming experience is assumed. On
the other hand, we do assume that the student is able and highly motivated to
learn and has the energy and intelligence to support that motivation. We also
assume that your mathematics background is at least at the level where you are
enrolled in a strong calculus sequence. EE 306 is intended for freshmen, but is
open to all students who want a serious introduction to computing in general
and computer engineering in particular.
If you are one of those with no experience using computers, please do not be intimidated by those in the classroom with years of computer experience. It has been the case many times that students with no computer experience earn A in the course, and students with lots of experience earn C or lower. |
Homework Policy: |
Problem sets will be assigned periodically. Usually, students will have between
one and two weeks to complete them. Students are encouraged to form study
groups to work homework problems. Only one copy of a problem set per group need
be turned in. There will be five programming assignments, one in machine
language, four in assembly language. Dates and times when problem sets and
programming assignments are due are contained on the Course Outline. Students
are encouraged to discuss the structure of a program with other members of
their group. However, the detailed algorithm and actual coding must be done by
the student working alone. Collaboration on the algorithm and/or giving or
accepting actual code for a program constitutes cheating, and will be dealt
with harshly. Please see the handout: Introduction to EE 306 for more
information on what constitutes cheating.
|
Quiz and Exam Policy: |
There will be two midterms during the semester, one on October 13, the other on
November 17. There will be a final exam during the normal final exam period.
Our preliminary information has the Final Exam scheduled for December 10 from 7
to 10pm. However, the university sometimes changes the dates of some final
exams, so it is important to check the final exam schedule when it is formally
posted, probably sometime in October. All exams will be closed book, with two
exceptions: (1) Each student may bring into the exam three sheets of paper on
which the student is free to write anything he/she wishes. All three sheets
must be original sheets in the student's own handwriting. (2) The student may
bring into the exam any handouts that have been expressly permitted by the
instructor prior to the exam. The student may not have in his possession
during any exam a calculator, a mobile phone, or any other mechanism that in
the view of the instructor can distract from a fair and balanced examination.
The purpose of each exam is to measure the student's comprehension of the
course material. Therefore, the exam must be the student's own work with no
help from anyone else during the exam period.
|
Final Exam: |
See above. |
Grading Mechanics: |
Course Grade: Problem sets (2% each, times 5 assignments = 10%) Programming Assignments (5% each, times 5 assignments = 25%) Two in-class exams (17% each = 34%) Final exam (25%) Other (6%) Policy: Problem sets and programming assignments are due on the date and at the time specified. Make-up exams will not be given, except under very rare circumstances. Excused absence from an in-class exam must be obtained in advance, except in very rare circumstances. |