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