CMP507 Data Structure and Algorithm                     Spring, 98

Meets: Monday 16:00 - 19:00 in TGP004
Instructor: Dr. Peter Wang
Office: CCN104F
Credit Hours: 3 Credit Hours
Telephone: (205) 851-5570
Fax: (205) 851-5570
Website: http://ching.aamu.edu, http://cis.aamu.edu
Office Hours: T,R:11-2, F:8-12
Email: phwang@asnaam.aamu.edu

Course Objective:
	The objective of this course is to introduce the fundamental concepts of
	structured programming and data structures needed to solve real
	world problems and develop efficient programming skills.  This
	course would present the complex concepts in a concise, informal
	way, and explain theory coupled with concrete examples.  Upon
	completion of this course, the students should be able to write
	programs with the maximum amount of efficiency.

Prerequisites: CMP503 and CMP505

Textbook: Data Structures, Algorithms & Software Principles in C
	Thomas A. Standish. Addison Wesley.

Programming assignments: There are 5 programming assignments.
	All the programming assignments are due 2 weeks after
	assigned. Each program is 4 point. You must implement all
	assignments in C/C++.  Your programs must run on one of 
	the machines of CIS department PC lab.
        Due date:       P1: 1/26/98
                        P2: 2/9/98
                        P3: 2/23/98
                        P4: 3/9/98
                        P5: 4/20/98

	P1: To create a telephone directory system which allows 
		the user to build the telephone directory from a
		data file, to modify each field of a record, to
		insert an entire record, to delete an entire record,
		to display the telephone directory in ascending
		order of name, to inquire record(s) by name.

	P2: All solutions of eight queen problem.
		To place eight queens on an 8x8 chessboard so that
		no queens "attack", that is so that no two of
		them are on the same row, column, or diagonal.

	P3: To sort a set of 20 integer numbers:  618, 10, 298, 98,
		260, 313, 453, 133, 387, 228 by the following
		sorting methods and print out the comparisons of
		each sorting method.
		1. Bubble sort.
		2. Insertion sort.
		3. Binary Sort.
		4. Heap sort.
		5. Quicksort.

	P4: Using double link list to create a binary tree for 
		personnel system which allows the user to insert, list,
		modify, delete a record and list all the personnel
		records in ascending and decending order by name
		Each employee record should contain the employee
		name, address, telephone, sex, social security number,
		and salary.

	P5:  Write a program which solves a 15 by 15 maze
		problem.  The starting point is maze(0,0), the exiting
		point is maze(14,14). The original maze and the successful
		path must be produced.
             
		
Bonus programs: There are 10 bonus programs. Each bonus program 
		earns 1.0 point. The daue date for bonus programs:
                BP1, BP2:       2/2/98
                BP3:            2/16/98
                BP4, BP5        3/2/98
                BP6:            4/ 6/98
                BP7, BP8:       4/13/98
                BP9, BP10:      4/20/98
	BP1: Find the great common divisor of two nonnegative
		integer numbers.
	BP2: Generate the first 20 Fibonacci numbers by both of
		iteration and recursive versions, display the
		execution time each.
	BP3: Generate the first 50 prime numbers.
	BP4: Print out which day (Monday, Tuesday,..) is your birthday.
	BP5: Design a dictionary lookup powerbook with at least 30 
		entries, each entry consists of the page number in one
		of your dictionary, the word, and its definition & 
		examples. Your program should allow the user to 
		insert, delete, modify, and inquire individual entry 
		in the dictionary.
	BP6: Implement a reverse polish desk calculator.
	BP7: Coloring problem: to color the US states in no more than
		4 colors such that no adjacent states with the 
		same color.
	BP8: Write a program to convert an infix expression into
		postfix expression.
	BP9: Write a program to solve an 8x8 linear equations.
	BP10: Write a program to find the first 5 perfect numbers.

Bonus: Submit an report of analysis of data structure and algorithm
	related papers from ACM/IEEE with paper. Each earns 0.3 point.
		
Term Project:
	The student will be expected to submit a project that will 
        be due on April 20, 1998. The project will be given in class.
        Your project must be implemented in C/C++/VB, 
	the analysis, user manual, and project report.

	Source Code and documentation : Your source code should be delivered 
	and documentewd as follows:

	1. Hard copy of well documented source code
	2. Code documentation: Your code should be well documented.
	   (a) Each function should be identified with a distinguishing
	       header and a short description of what it does.
	   (b) You should provide sufficient documentation in your
	       code that it will be clear to the instructor what a 
	       given segment of code does with respect to youe 
	       overall system.

 
Midterm: The midterm will be March 2, 1998. It will cover the
	material presented in class through Feb. 23, 1998.  The 
	midterm will be a close books, close notes exam.

Final: The final exam is scheduled for May 5, 1998. It will
	be a comprehensive, close books, close notes exam covering 
	material from the entire course.

Course Policy: No test will be made up without prior approval
	of the instructor. Late assignments and tests will be
	penalized. (minus 30% late). No project, 
	assignments can be shared. Shared projects and assignments 
	will be panalized. (minus 50%).

Grading: Total 100 points
	Class participation			10%
        Programming assignments                 20%
	Homework				10%
	Midterm					30%
        Project                                 10%
	Final test				20%

Grade Scale:  100-90  A      89-80  B      79-70  C
               69-60  D      59-0   F

    Source: geocities.com/hsvfapa