Computer Science
Generic Course Syllabus
(For actual course syllabi please consult the schedule of classes, determine the instructor for the courses and consult his or her home page.)


 
Course #: C243
Course Title: Introduction to Data Structures
Prerequisites: C151, C201
Credits: 4
Text Book: Data Structures and Problem Solving Using C++, by Mark Weiss, 2nd edition
Supplemental Texts: Class notes
Course Information:  The course assumes thorough mastery of the 
advanced parts of C++ programming up through template classes and
inheritance.  Students will be introduced to the standard abstract data types
of professional computing.  Students will also learn to use the UNIX operating
system and the Emacs editor.  About ten programming assignments allow
students to practice their programming skills, especially using pointers.
Other Information: 1.  UNIX;  Emacs.
2.  Abstract data types (ADTs).
3.  Stacks (LIFO structures) and their applications;  implementations.
4.  Queues (FIFO structures) and their applications;  implementations.
5.  Performance issues;  analysis of algorithms;  big-oh notation.
6.  Tables (associative container classes);  implementations.
7.  Binary trees;  recursion.
8.  Binary search trees;  AVL trees;  splay trees.
9.  Hash tables.
10.  Priority queues;  binary heaps.
11.  Collection of disjoint sets;  union/find operations.
12.  Sorting concepts;  in-place sorts;  stable sorts;  internal sorts
13.  Selection sorts:  Straight Selection and Heap Sort
14.  Exchange sorts:  Bubble Sort and Quicksort
15.  Insertion sorts:  Linear Insertion Sort, Binary Insertion Sort
16.  Merge Sort;  Bucket Sort
17.  Sorting linked lists
18.  External sorting;  replacement selection algorithm
19.  Polyphase merges
20.  B-trees
21.  Data compression
22.  The UNIX make facility
23.  The Standard Template Library