| CSC 242 - Digital Logic, Computer
Section 001: TR 20 BR 160
The Elements of Computing Systems
Building a Modern Computer from First Principles
Noam Nisan and Shimon Schocken
Prerequisites: CSC 121 (Introduction to Computer Science) and CSC 133 (Discrete Structures).
Fixed-precision binary numbers, binary representation of integers and real
numbers, combinational and sequential logic circuits, memory and logic devices,
instruction set architecture, CPU design, I/O and communication, cache memory,
introduction to a modern instruction set, machine, assembly and mix language
programming, procedure call and return, parameter passing, interrupt handling.
Our goal in this class is to build a computer. We employ abstraction to forget about the most basic levels of computer implementation so we can concentrate on the logical function of the computer. Our primitives will be digital gates: AND, OR, and NOT. We use these primitives to make flip-flops, registers, multiplexers, encoders, decoders, sequencers and other components of our computer. At the component level, the computer is made to work. First we describe its operations using register-transfer language then build a computer simulator to implement instruction set code. In the process, we will explore many ideas and techniques used in the design of modern hardware and software systems, and discuss major trade-offs and future trends. Throughout this journey, you will gain many cross-section views of the computing field, from the bare bone details of switching circuits to the high level abstraction of object-based software design.
COURSE REQUIREMENTS AND GRADING CRITERIA
There will be ~12 lab/homework/quiz assignments. This is mostly a hands-on course, which evolves around implementing a series of hardware and software modules. Each hardware or software development task will be accompanied by an executable solution (illustrating what your chip or program is supposed to do), a detailed design document (proposing how to build it), and a test script (specifying how to test it). The homework assignments will be spread out evenly, so there will be no special “crunch” toward the semester’s end. Each lecture will start by reviewing the work that was done thus far, and giving instructions on what has to be done next. The homework assignments can be done in pairs. Labs will be assigned in class and also posted in the course schedule. Assignments are due by the end of the day on the due date and late labs will be penalized 10% each day late. So assignments due Friday and turned in the following Monday would earn at most 70% of the available points. Lab/homework assignments will count a total of 3/5 of your course grade. The hardware projects will be done in a simple Hardware Description Language (HDL) that can be learned in a few hours. The resulting chips (as well as the topmost computer-on-a-chip system) will be tested and simulated on a supplied hardware simulator that can run on your home PC. The software projects can be done in any language of your choice (but if it’s not Java you have to get the instructor’s approval first). Labs must be submitted with the relevant code and required test runs as applicable in a zipped file labeled yourlastnameProjectXX.zip. Turning in the wrong file electronically does not alleviate late penalties. You are responsible for ensuring that the correct file(s) are submitted. Your name must be in the source code for all files with your work (.hdl, .tst, .java, .doc, etc.) Do not add your name to files that you do not modify. Turning in copied work or duplicate files will result in zero grades, as a minimum, for all parties regardless of fault. Share your ideas, not your files. You may discuss labs with each other but you are required to write up your own lab independently.
The final exam will be comprehensive and counts 2/5 of your course grade. The final exam may not be used to replace your lab/homework grade. All quizzes and exams are closed book, no calculators.
90 - 100 A
80 - 89.5 B
70 - 79.5 C
60 - 69.5 D
If your course score falls just below a cutoff, a higher, + grade may be assigned solely at the discretion of the instructor.
In choosing UNCW, you have become part of our community of scholars. We recognize that the UNCW learning experience is challenging and requires hard work. It also requires a commitment to make time available to do that hard work. The university expects you to make academics your highest priority by dedicating your time and energy to training your mind and acquiring knowledge. Academic success in critical thinking and problem solving prepares you for the changes and challenges you will encounter in the future. Our faculty and academic support resources are readily available as partners in this effort, but the primary responsibility for learning is yours.
You are expected to take an active role in your learning in this course. This includes regular attendance, contributing in class, reading the textbook, and completing all course requirements. Work together, form groups. Studies have shown that group study results in a full grade higher average. The library reserves study rooms for groups. I will post your group study times and locations on the web if a group representative so requests.
It is the responsibility of every student to uphold and maintain the UNCW Academic Honor Code. For specific information, refer to the Student Handbook and Code of Student Life.
If you have a disability and need reasonable accommodation in this course, you should inform the instructor of this fact in writing within the first week of class or as soon as possible. If you have not already done so, you must register with the Office of Disability Services in Westside Hall (extension 3746) and obtain a copy of your Accommodation Letter. You should then meet with your instructor to make mutually agreeable arrangements based on the recommendations of the Accommodation Letter.