Contents
Welcome to the work-in-progress class page for CS 3330 – Computer Architecture. This material represents the best current estimate of course flow and content.
Instruction delivery
This course will be online. See this page for a description of how we intend to deliver lectures and labs.
Course Content
There are two common expectations that this course does not fulfill:
- You won’t learn how transistors work or how to combine them into gates; that’s ECE 2630.
- You won’t learn how to combine gates into processor components; that’s ECE/CS 2330.
- You won’t learn how to put processor components into physical chips; that’s the ECE 4332.
Instead, you will learn
- How computers are built and how that impacts you as a programmer.
- How to make code run quickly, or at least how to avoid making it run slowly.
- A reasonable amount of C, a moderate amount of x86 assembly, and a little of a hardware description language called HCL.
- How hardware guesses what your code will do before it does it.
- More than you knew there was to know about memory and caching.
Relationship to other courses
CS 3330
-
has minimal overlap with ECE/CS 2330.
-
assumes you did well in CS 2150. In particular, it assumes you know
- either C or C++
- pointers and addresses
- how the call stack works
- what assembly and machine language are
- binary and hexadecimal numbers, basic exponentiation and logarithms
-
has enough overlap with ECE 4435 that you may only receive credit for one of those two courses.
-
is prerequisite for CS 4414 (OS), CS/ECE 4457 (Networks), and a few less-commonly-offered electives. In each cases, either ECE 3430 or ECE 4435 also meets the CS 3330 prerequisite.
Course Staff
- Piazza
- This is the place to get help for almost any issue. Access via Collab or from piazza.com.
- Anonymous Feedback
- Anonymous feedback, which is available through Collab,
is appreciated by at least one of the instructors.
The feedback is really truly anonymous; there is no way we can find out who posted it, so posting things like “you misgraded my homework” there will not be effective.
- Charles Reiss
- Office: Rice 205. (Not likely to be occupied this semester.)
Email: creiss@virginia.edu
Telephone: 434-924-8274
Office Hours: (see calendar below) - TAs
- Alif Ahmed, Giovanni Cianciaruso, Bryce Foster, Kevin Ivey, Atishay Kasera, Minjae Lee, Evan Miller,
Gustavo Moreira, Lukas Peng, Falsai Refai, Evan Rose, Bennett Ross, Rajiv Sarvepalli, Kelly Schaefer, Nikita Semichev,
Trey West, Hanzhi Zhou
Please respect the fact that our TAs are also students in other classes, with assignments and so on of their own, and limit your 3330-related contact with them to the times they have scheduled to act as TAs.
Office Hours
- Office hours will use Discord (instructions) and this office hour queue.
You will need
-
A copy of Bryant & O’Halleron’s Computer Systems: a Programmer’s Perspective, third edition. The changes to chapters 3, 4, and 5 make the 2nd edition strongly discouraged. The first edition will not work.
-
Time.
The intent is to meet policy PROV-022, which provides a
minimum standard
of 1 credit ≥ 3 hours of academic work per week for 15 weeks. We target a level of work where the median student will spend approximately the following each week:- 2.5 hours lecture
- 1.25 hours lab
- 3 hours reading and online open-book quizzes
- 2.25 hours homework in weeks with homework; in other weeks, this time will be expected to be spent reading and otherwise studying.
We encourage you to set aside this time on your weekly calender in advance.
Grading and Academic Honesty
See this page.
Accomodations
If you need any kind of special accommodations, including but not limited to disability, learning needs, illness, or personal circumstances, please contact us as soon as you are aware of these needs. We aim to be as accommodating and fair as possible.
If you are not sure if your situation warrants special attention, ask us.