CSC 180: textbook coverage
Here is
an analysis of the coverage
of the textbook in terms of what material from the textbook is and is not "in
the course".
While you're definitely encouraged to read all parts of the textbook which
catch your interest,
right now
you might choose to focus on the ones
I've decided to include in the course, which is why I present this web page.
Much of this is the same as the previous midterm textbook coverage
web page, until it differs towards the bottom.
- Preface: Seems to be directed more at me than at you.
- Chapter 1: Some interesting background. You might not have been
in a
position to follow much of this at the beginning of the course, but you
probably are now. Worth reading now I think, although not the subject of the
course.
NOTE: This last statement does NOT mean that if you see something in
chapter 1, then it is not on the midterm. For a silly
example, the word "the" appears
in chapter 1 several times, but will appear on the midterm. You can skip
chapter 1 if you like, but you can't take it as a list of things you are
not
responsible for, because they may occur elsewhere too. This applies to all of
my exclusions below.
- Chapter 2: All of this material is in the course.
(I feel I need to
comment on the second "Q&A" on page 29: I've heard of studies about
optimum amount of indentation, and as far as I know the answer is four,
not three spaces. In any case, I and the textbook author agree that the two
spaces used in the textbook is too small.)
- Chapter 3: All of this material is in the course except that
the printf modifiers which control the spacing of the output are not going to
be the subject of tests or exams.
- Chapter 4: This is a pretty big one, even though it's not many more
pages.
We've covered all this material, but
I stretched it out over most of the first half of the course.
- Chapter 5: All of this material is in the course.
(I'd like to take the
opportunity to disagree with his comment on page 73 that the use of Bool and
TRUE and FALSE contribute to a C program. For TRUE and FALSE it's arguable,
but I think you want to set a sharp limit on how much playing around like
this you want to do. The reader of your program knows C, so they know that
"int" can store a boolean value; but they don't know what strange definition
you may have given "Bool" or TRUE or FALSE, so when they see these things
(especially Bool; TRUE and FALSE are fairly common and invariably defined as
1 and 0 respectively),
they have to look elsewhere in your program
to find the definitions to find out what's going on. It's not helpful.)
- Chapter 6: All of this material is in the course, except that I wouldn't
expect you to recognize the do-while construct on the midterm nor to produce it,
and we don't use
goto
.
Note:
Don't use goto
.
Period.
The rationale was discussed in some detail in class.
The goto statement isn't even available in more recently-designed similar
programming languages (e.g. java).
The original C programming language book (Kernighan & Ritchie, 1978)
doesn't use goto and points out that it doesn't. It's obsolete (and already
was in 1978); we know how to write programs better than that now.
- Chapter 7: All of this material is in the course,
but often not with the same emphasis.
In particular, you don't need to know all the different weirder types such as
"unsigned short", etc.
You are not responsible for section 7.6 (typedef) on the midterm.
- Chapter 8: All of this material is in the course.
- Chapter 9: All of this material is in the course
except for the quicksort algorithm.
We did this chapter's
sections 9.1 through 9.4 first,
because functions are needed to write the
smallest program in C.
Your textbook author has put this material at about the usual point
for an introductory programming course, but I think that the C programming
language suggests a different sequence, which I followed.
I should comment about the terminology in section 9.3. As far as I know this
is idiosyncratic. The usual terms are "formal parameter" and "actual
parameter", as I discussed in class. He mentions this on page 177. You
should know the standard terms: formal and actual.
- Chapter 10: All of this material is in the course.
- Chapter 11: All of this material is in the course, except
for the combination of
const
with pointers and function
parameters and such.
- Chapters 12 and 13: All of this material is in the course.
Note that on page 248, he says not to use gets
.
I wish he didn't first give examples of using it.
Anyway, don't use gets
.
- Chapter 14: We talked about this just a bit. You certainly need to know
about #include, and it's hard to rule any of this stuff out as not being in
the course. However, other than #include, it's not on the midterm.
- Chapter 15: Some of this is in the course, but all that's on the midterm is
the top part of page 320, separate compilation.
- Chapter 16: Sections 16.1 through 16.3 and section 16.5
are in the course but not on the midterm.
Section 16.4 was not in the course.
- Chapter 17 we'll talk about near the end of the course, but we haven't yet.
- Chapter 18: Most of this isn't in the course and none of it is on the
midterm.
- Chapter 19 we'll talk about a bit later, but we haven't yet.
- Chapters 20 and 21: This material is not in the course.
- Chapter 22: Section 22.1 is in the course, except for the bit about
text versus binary files; section 22.2 is in the course up to mid page 481;
the little details in section 22.3 I don't expect you to know for a test; from
22.4 we just have
putc, putchar, getc, and getchar; from 22.5 we basically just have fgets().
22.6 and 22.7 are not in the course. We touched upon 22.8 a bit and you
should understand this, especially the combination of fgets() and sscanf()
(bottom of page 507).
- Chapters 23, 24, 25, and 26 are not in the course.
[main course page]