COSC 3100 – DATA STRUCTURES

advertisement
COSC 3100 – ALGORITHMS & DATA STRUCTURES II SPRING 2, 2004
SYLLABUS
Course Description:
Algorithms and Data Structures lie at the heart of Computer Science. The goal of
this course is to present detailed coverage of all the fundamental data structures used
in computer science. These include: stacks, queues, lists, heaps, trees, and graphs.
Both array-based and linked implementations are covered where appropriate.
Analysis of algorithms is covered for each new topic. Software engineering
principles are maintained throughout. Searching and sorting algorithms are also
covered. This course introduces the student to a broad variety of important and
useful algorithms (methods for solving problems that are suited for computer
implementation).
The course will deal with many different areas of applications, always trying to
concentrate on “fundamental” algorithms that are important to know and interesting
to study. Each algorithm will be examined in order to understand its essential
characteristics and to respond to its subtleties. The goal is to learn a large number of
the most important algorithms used on computers today, well enough to be able to
use and appreciate them.
Objectives:
1.
Develop a disciplined approach to design, coding, and testing of programs.
2.
To understand the concept of algorithm analysis in terms of Big-O.
3.
To understand and implement a number of fundamental algorithms, including
in particular the fundamental algorithms for searching and sorting, to solve
real problems that arise in computer applications.
4.
To master the basic techniques for designing efficient (according to criteria of
time and space usage) algorithms to solve practical problems.
5.
To understand and use recursion, trees, graphs, searches and sorts.
6.
To be skilled at comparing and making a critical assessment of algorithms that
solves the same problem.
Required Text:
Malik, D.S.. Data Structures Using C++. Course Technology, Incorporated, 2003,
ISBN 0-619-15907-3.
Attendance:
Attendance will be taken at each class meeting. Attendance is required. Please
notify the instructor in advance of any schedule problems. You will be responsible
for all materials covered in class and in the text.
Assignments:
Programming assignments are due at the beginning of class on the due date indicated.
Late assignments will receive a lower grade, but must still be submitted when
competed. No student can receive a passing grade with missing assignments. The
penalty for late assignments is a 20% deduction per week or fraction therein that it is
late.
COSC 3100 – ALGORITHMS & DATA STRUCTURES II SPRING 2, 2004
Grade Evaluation:
Your grade is based on three items:
Midterm Exam
- 30%
Final Exam
- 30%
Quizzes & Attendance
- 10%
Assignments
- 30%
The grading scale is the university standard scale.
Instructor:
Jim Hare
Phone:
Work:
E-Mail:
Web:
(636) 207-7552 (evening)
(314) 466-5165
james_hare @ sbcglobal.net
http://mercury.webster.edu/hare-gallery
This syllabus is subject to change at the teacher’s discretion….
COSC 3100 – ALGORITHMS & DATA STRUCTURES II SPRING 2, 2004
Week
1
Chapter
Chapter 6: Recursion
Topics

Learn about recursive definitions

Base and general case of recursion

Discover recursive algorithms

Learn about recursive functions

Explore how to use recursive functions
to implement recursive algorithms

Learn about recursion and backtracking
2
Chapter 9: Searching Algorithms


Various search algorithms
Sequential and binary search
algorithms
Lower bound on comparison-based
search algorithms
Hashing
Searching Assignment
Sorting Assignment


Selection, insertion, quick, merge and
heap sorting algorithms
Performance of the sorting algorithms
Priority queues


Continuation of week 3
Midterm over chapters 6, 9, and 10
None



Binary Tree Assignment

Binary trees
Binary tree traversal algorithms
Insert and delete items in a binary
search tree
AVL (height-balanced) trees


3
4
Chapter 10: Sorting Algorithms
Chapter 10: Sorting (cont)
Required
Programs
Recursion Assignment

And
MIDTERM EXAM
5
Chapter 11: Binary Trees
6
Chapter 11: Binary Trees (cont)

Continuation of week 5
7
Chapter 12: Graphs



Graph Assignment





Graphs
Basic terminology of graph theory
Representation of graphs in computer
memory
Graphs as ADTs
Graph traversal algorithms
Shortest path algorithm
Minimal spanning tree
Topological sort


Continuation of week 7
Final exam over Chapters 10, 11, 12
None
8
Chapter 12: Graphs (cont)
And
FINAL EXAM
Download