CMPSC
311,
Reading List for Final Exam
This list accumulates the textbook sections mentioned in the lecture
notes and project assignments, since the second exam, with a few
additions. The Intro
to
Unix notes cover material that is not always in the reading
assignments, so don't forget to review that. Similarly, the Unix
Command-Line
Structure notes, and the c2html
program, have useful
code examples. Don't forget to try the exercises that appear
in
the lecture notes. Some review of material covered on the
first
and second exams might not be a bad idea, especially if it involves
topics that
were covered in more depth after the exam.
Bryant & O'Hallaron, CS:APP
- Sec. 1.7.2, Threads
- Sec. 1.8, Systems Communicate with Other Systems Using
Networks
- Sec. 1.9.1, Concurrency and Parallelism
- Sec. 3.11, Using the GDB Debugger
- Ch. 11, Network Programming, Intro
- Sec. 11.1, The Client-Server Programming Model
- Sec. 11.2, Networks
- Sec. 11.3, The Global IP Internet
- Sec. 11.4, The Sockets Interface
- Ch. 12, Concurrent Programming, Intro
- Sec. 12.1, Concurrent Programming with Processes
- Sec. 12.2, Concurrent Programming with I/O Multiplexing
- Sec. 12.3, Concurrent Programming with Threads
- Sec. 12.4, Shared Variables in Threaded Programs
King, CP:AMA
- Don't forget to look at the Q&A at the end of each
chapter.
- Ch. 7, Basic Types
- Sec. 8.3, Variable-Length Arrays (C99)
- Ch. 10, Program Organization
- Ch. 11, Pointers
- Ch. 12, Pointers and Arrays
- Ch. 15, Writing Large Programs
- Ch. 16, Structures, Unions and Enumerations
- Sec.
17.5, Linked Lists
- Sec. 17.6, Pointers to Pointers
- Sec. 17.7, Pointers to Functions
- Sec. 17.8, Restricted Pointers (C99)
- Ch. 18, Declarations
- Ch. 20, Low-Level Programming
Anything involving pointers, linked lists, and make
is considered important.
For the following topics, see the lecture notes:
- Shell scripts
- GDB
- Regular expressions
For make and
makefiles,
see the lecture notes and projects.
Skill set (repeated from the Exam 1 reading list)
- You should be able to read a man page, or find equivalent
information on the web. But since the exam is closed-book,
closed-computer, we won't test this skill directly.
- You should be able to read a makefile. By the time of
the
second exam, you should be able to write one.
- You should be familiar with the Unix utilities that have been
demonstrated in the lectures and that were useful on the
projects. For example, od (octal dump, to see the bytes of
a
file), elfdump (to interpret the bytes of an executable file),
etc.
- There won't be any questions on the Unix editors, since we
never
specified which one you should use.
- Generally speaking, any programming example in the lecture
notes
or project solutions would be good to know.