Each week, in addition to the reading, I will post a "reading guide", like this one, to highlight some of the most important elements of the reading. The reading guides are not comprehensive -- they will not cover every piece of information in the readings -- but they will highlight some key issues that we can build on during lectures and labs.
In addition, I hope the reading guides will help you practice how to read technical material, which may reduce the amount of time you spend reading. In particular, I do not advocate that you "read from cover to cover" or reread if you don't understand the material. (It turns out, research shows these practices aren't as useful as "reading with a purpose".) Instead of reading passively, (1) look at the required questions to get a sense of what you expect to see and need to learn, (2) read or skim to find the points that address your expectations and questions, (3) read the text and examples, in detail, that are most relevant, and then (3) solve the questions to verify that you understand the material. If you have trouble with a question, it's time to (a) identify new material to search for and read or (b) get help on the discussion board or in office hours.
Note: I strongly recommend spending more time working through examples in the text and doing exercises than passively reading. I try to list odd-numbered exercises, since the solutions are available online, but if you need more practice, even-numbered exercises often echo an odd-numbered exercise nearby.
Topic | Reading | Recommended Exercises |
---|---|---|
Background/Intro | Digital Design and Computer Architecture Sections 1.1-1.3 | No exercises, but read this section like normal text, since it provides an introduction. |
Number Systems | DDCA 1.4 | odd exercises from 1.7-1.21, 1.25, 1.29, 1.33-1.37, 1.41 |
Boolean Operations | DDCA 1.5 | 1.48, 1.49, 1.51 |
This week's reading has two major components: an overview of the number systems we will need to use (1.4) and a summary of the fundamental logical operations that we will use to build every operation you can perform on a computer (1.5). Next week, we'll be looking at how to implement those operations (using the technology in 1.7) and to combine them into useful circuits (chapter 2).
The first few sections are a useful introduction and overview, so read them like you'd read non-technical material. Then, start looking at exercises and examples in section 1.4.
You may not even want to read much of this section at all. Look at the examples first and see if you are familiar with the bases and conversions being attempted. When you find something new or unfamiliar, slow down. Ask yourself, "What is the purpose of this number system? When or how will I use it?" Then, read to answer that question. Then ask, "How do I convert into or out of that system?" and start reading again. The number system that may be most unfamiliar is two's complement binary (section 1.4.6), and it's particularly important to us, so you will want to focus on that part of the section.
Once you have skimmed the section and looked at the examples, try to implement those conversions and to answer some basic questions about the number systems yourself. Most of the exercises are related to conversions, and they are all important. You should also be able to answer the fundamental questions about number systems posed by exercises 1.7 and 1.9 and to do the arithmetic in questions 1.33, 1.35, and 1.37.
The boolean operators introduced in this section are the basic operations that we will use to create computing hardware. In reality, we will be manipulating transistors (which we'll discuss next week), but transistor logic is relatively difficult to work with, so it's easier to abstract away the hardware, replacing it with a mathematical model (boolean algebra) that is easier to manipulate. Fortunately, it's fairly easy to create boolean gates with transistors, so we know that any boolean equation we can create can be implemented with transistor-based hardware.
The section is introducing a set of important operations, including a graphical representation for the operation that we will use within circuits, and is also demonstrating how to use a truth table. Read the examples to make sure you understand how to read and produce a truth table.