CS 531 Planned Schedule, Fall 2019
1 Projects
All projects will be posted and announced as early as we
have them prepared, generally with two weeks to complete the
assignment.
These dates are subject to change as needed during the
semester.
- Project 1: Linked Lists (Sep 18 - Oct 2)
- Project 2: Hash Tables (Oct 18 - Nov 8)
- Project 3:
Graphs
(Nov 13 - Dec 2)
2 Test Schedule
Tests are bigger milestones, and their dates are announced
ahead of time.
Only severe scheduling anomalies would force a delay in test
dates.
- Midterm : Oct 22 (Tuesday) in the first half of
the class. (Normal Lecture in the second half)
- Final Exam: See Exam Schedule. Any weather or closures during the semester may affect your entire exam schedule in all courses.
3 Topics and Readings
Note, you can access our textbooks in the Library or through the Safari Tech Book service through the library.
Notation:
- (K&R) - The C Programming Language
- (MA) - Mastering Algorithms with C
- (APUE) - Advanced Programming in the Unix Environment
Below is a tentative schedule, which is subject to change as needed.
Lecture |
Topic | Lecture Topics | Textbook Readings |
---|---|---|---|
Date | (For this week) |
||
8/27 |
Foundations of C |
Course Intro, Foundations of C | K&R - 1, 2, 3, 5.3-5.4 |
Operators, Control Flow, Arrays | |||
9/3 |
Functions, Scope, Headers |
K&R - 4, 5 |
|
Preprocessor, Pointers, Arrays |
|||
9/10 |
Libraries, Dynamic Memory |
K&R - 7 |
|
Dynamic Array Operations |
MA - 2 |
||
9/17 |
Structs and Unions, Enums |
K&R - 6 |
|
Linked Lists and Operations |
MA - 5 |
||
9/24 | Data Structures |
Algorithm Analysis |
MA - 4 |
Stacks and Queues |
MA - 6 |
||
10/1 |
File I/O and Streams |
K&R 7.5-7.7, 8.1 |
|
Recursion, Searching, Sorting |
MA - 3, 12 |
||
10/8 |
Hash Tables and Operations |
MA - 8 |
|
Collision Resolution |
|||
Fall Break |
|||
10/22 | Midterm |
||
CLI Arguments, Debugging |
K&R - 5.10, 7.6 |
||
10/29 | Trees, Tree Traversals, AVL |
MA - 9 |
|
Binary Search Tree, String Procs. |
|||
11/5 |
Heaps, Heap Operations |
MA - 10 |
|
Priority Queues |
MA - 10 |
||
11/12 |
Graphs, Adjacency List/Matrix |
MA - 11 |
|
Graph Algorithms (Dijkstra/Prim) |
MA - 16 |
||
11/19 |
Systems Programming |
Unix, Processes and Signals |
APUE - 8, 10.1-10.3,14.1-14.2 |
Exceptions, Daemons, I/O |
|||
11/26 |
Concurrency and Synchronization |
APUE - 11 (Only Concepts) |
|
Threads, Python Threads |
|||
12/3 |
IPC (Pipes/FIFO/Shared), Sockets |
APUE - 15 (Only Concepts) |
|
Client/Server in Python, OOP, Java |