MacMurray College
Computer Science 303
Data Structures
Course Syllabus
Course Information
Credit hours: 3
Semester: Fall 1999
Day & Time: As arranged
Room: Mac Hall 15B
Prerequisite: Computer Science 203 or 205Instructor Information
Instructor: 9; Kent Palmer
Office: Mac Hall 15B
Office Hour: Monday-Friday 3:30-5:00 PM
(Except the following Thursdays: Sept. 16, Oct. 14, Nov. 18, Dec. 9)
Office Phone: (217) 479-7102
Home Phone: (217) 245-7675
E-mail: kpalmer@mac.eduRequired Text
Gilberg, Richard F., and Behrouz A. Forouzan. Data Structures: A Pseudocode Approach with C. Boston, MA: PWS Publishing Company, 1998 (list price $59.95)
Goals
Catalog Description: Introduction to data structures including lists, stacks, queues, trees, graphs, etc. Searching, sorting, merging, recursion are also covered
After completing this course a student should be able to:
Use linked lists in C programs Use queues Use recursive algorithms Implement stacks Design and implement Binary Search Trees Design and implement AVL Trees. Write efficient sort algorithms. Discuss the concepts of graphs and their use. Course Outline: CSC 303
Week
Section of text
Topics covered
August 31-Sept. 3
Chapter 1
Introduction to the concept of Data Structures
Abstract Data Types (ADT)
Efficiency of Algorithms
September 6-10
Chapter 2
Searching of linear Lists
Hashing Methods
Resolving collisions
September 13-17
Chapter 3.1 to 3.5
Algorithms for Linked Lists
September 20-24
Chapter 3.6 to 3.9
Implementing Linked Lists
Sept. 27 - Oct 1
Chapter 4.1 to 4.4
Application of Stacks
October 4 - 8
Chapter 4.5 to 4.8
Implementing Arrays
October 11-15
Chapter 5
Queuing Theory & Applications
October 18-20
Chapter 6
Recursion
October 25-29
Chapter 7
Binary Trees
Expression trees
General Trees
November 1-5
Chapter 8
Searching Binary Trees
AVL Trees (Adelson-Velskii & Landis)
November 8-12
Chapter 9
Heaps
November 15-19
Chapter 10
Multiway Trees
Nov. 29 - Dec. 3
Chapter 11
Insertions Sort
Bubble Sort
Quick Sort
External Sorts (Merging)
December 6-10
Chapter 12
Graphs
Homework Schedule
Week
Section of text
Homework questions
August 31-Sept. 3
Chapter 1
1,7,8,11,17,20,21,26,29
September 6-10
Chapter 2
1,3,7,11,13,16
September 13-24
Chapter 3
1,5,6,10,17,34,35
Sept. 27 - Oct 8
Chapter 4
1,2,3,4,5,7,10,11,12,20,22,25
October 11-15
Chapter 5
3,6,7,8,9,19,21
October 18-20
Chapter 6
1,4,6,19,20,28
October 25-29
Chapter 7
8,9,10,11,19,32,42,50
November 1-5
Chapter 8
1,13,18,21,23,28
November 8-12
Chapter 9
2,3,4,5,7,12,16
November 15-19
Chapter 10
1,8,9,12,23,24
Nov. 29 - Dec. 3
Chapter 11
5,6,7,11,12,13,14,15,16,18,19,20,27
December 6-10
Chapter 12
1,3,6,8,9,10,14,22
Exam Schedule
Week
Exam
Topics covered
Sept. 27 - Oct 1
Exam 1
Linked lists, linear lists, hashing, abstract data types
November 1-5
Exam 2
Recursion, queues, stacks
December 13-17
Final Exam
This will comprehensive, but greater emphasis will be placed on trees, sorts, and graphs
Grading Scale
Grade
Percentage
A
85-100%
B
75-85%
C
65-75%
D
55-65%
F
0-55%
Grade Distribution
Component
Percentage
Exam 1
20 %
Exam 2
20 %
Final Exam
30 %
Homework
30 %
Documentation for Programs
(All programming assignments must include at least the following comment lines)
/*TASK: Identify what the entire program will accomplish */
/* */
/*DATE: List creation date and modification dates */
/* Be sure to include name of person modify & creating */
/* For instance: */
/* 7/23/98 Created by Kent Palmer */
/* 1/14/99 Modified by Kent Palmer to add 1999 to menu */
/* 8/23/99 Modified by Kent Palmer to correct summary */
/* */
/*VARIABLES: List the variable names and what the represent */
/* */
/*INPUT: Identify the parameters the program accepts as */
/* input. Give examples */
/* */
/*OUTPUT: Identify the expected output. Give examples */
/* */
/*ALGORITHM: Briefly describe the algorithm used */
#include <stdio.h>
main()
{
}
(If your program includes any function modules,
each function needs to be documented )
/*TASK: Identify what the subprogram will accomplish */
/* */
/*DATE: List creation date and modification dates */
/* Be sure to include name of person modify & creating */
/* */
/*VARIABLES: List the variable names and what the represent */
/* */
/*INPUT: Identify the input parameters, if any. */
/* Give examples */
/* */
/*OUTPUT: Identify the output parameters, if any. */
/* Give examples */
/* */
/*ALGORITHM: Briefly describe the algorithm used */
int function1()
{
}
MacMurray College Homepage
Department of Computer Science Homepage
Kent Palmer Homepage
e-mail instructorPage Last modified: October 21, 1999