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.

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