C343 Course Outline

This course outline is under construction. This page will be updated periodically with the highlights from each week, so visit here often.

Week 1: September 3.

Introduction. Definitions, and induction.
Chapters 1--2 Introductory material. Big-O notations; Problem 1-22.
Simple summations.

Problems 1-50, 1-52.

UNIX and C environment. Learn about editors, file systems, and course machinery. Tutorials


Week 2: September 8--10.


Chapter 3 Linear lists: stacks, queues, deques: Sequential allocation of linear lists....many of them.

queue.c and queue.h files.

Layered memory. The heap as an array.


Week 3: September 15--17

Career Day September 16, IMU Alumni Hall, 11am--3pm. Required.
Chapter 3 Linear lists: stacks, queues, deques with linked allocation.

AVAIL.h . AVAIL.c .

Insert/delete in middle. Pointer-chasing.

Header cells, double linking, circular lists.

Problems 3-5, 3-7, 3-13.


Week 4: September 22--24.

Quiz on Monday.

Chapter 4 Tree terminology.

Binary trees. Traversal.


Week 5: September 29--October 1.

Chapter 3 XOR linking.
Topological Sort.

Chapter 4 Tree threading. Insert node, delete node.
Sequential representation of trees.


Week 6: October 6--8.

Level-order, Blind Triple order.
Chapter 5. Vectors, Row-major arrays. Multi-dimensional Arrays, Dope/Iliffe vectors.


Week 7: October 13--15.

Chapter 5.3. Sparse arrays.
Midterm October 15.


Week 8: October 20--22.

Chapter 5.4. String representation, character frequency, compression.
String search problem.
Strings and Lempel-Zif compression
Problems for Discussion section: Lewis and Dennenberg 5.37 and 5.39.


Week 9: October 27--29.

Chapter 5.5. Knuth, Morris, Pratt and Boyer-Moore string search.

Chapter 10: Storage Management: Reference counting vs. Garbage Collection.


Week 10: November 3--5.

Chapter 10 Storage Management. And hybrids.


Week 11: November 10--12.

Chapter 6: Skip Lists, Static search structures.
Chapter 7: AVL trees.


Week 12: November 17--19.


Chapter 7: AVL(balanced)-trees. B-trees.


Week 13: November 24

Second Quiz on November 19.


Chapter 7: B+trees.


Week 14: December 1--3.

Hash tables (Chapter 8).

Chapter 9.1: Priority Queues via dynamic search algorithms.

Designing the COBOL data structure.


Week 15: December 8--10.

Implementing the COBOL data structure.
Floyd's Hare 'n Tortise algorithm.



Final: December 17,

5:00--7:00pm