Enter Search Request 




Number of documents to retrieve
Sort type
WCU is a University of North Carolina Campus
 
CS 351 Syllabus

Data Structures and Algorithms

Revised: January 2007 (Mark Holliday)

Course Description

This course covers more advanced data structures, algorithm analysis, and design techniques so that students can write efficient programs that solve common and difficult problems.

Starting where CS 151 left off, we further develop the tree data structure and see more uses for it. We also introduce and analyse many other new data structures such as hashtables, sets, and graphs. The mathematical analysis will also be more sophisticated and well-defined in this course than it was in CS 151.

Text

Anany Levitin, Introduction to the Design and Analysis of Algorithms, Second Edition Addison Wesley, 2007.

Grading Procedure

Grading procedures and factors influencing course grade are left to the discretion of individual instructors, subject to general university policy.

Attendance Policy

Attendance policy is left to the discretion of individual instructors, subject to general university policy.

Course Outline

  • Chapter 1: Introduction. What is an algorithm; Fundamentals of Algorithmic Problem Solving; Important Problem Types; Fundamental Data Structures.
  • Chapter 2: Fundamentals of the Analysis of Algorithm Efficiency. Analysis framework; asymptotic notation and basic efficiency classes; mathematical analysis of nonrecursive algorithms; mathematical analysis of recursive algorithms.
  • Chapters 3: Design Technique: Brute Force. Selection sort and bubble sort; sequential search and brute force string matching; closest pair and convex hull problems by brute force; exhaustive search.
  • Chapters 4: Design Technique: Divide and Conquer. Mergesort; quicksort; binary search; binary tree traversals and related properties; closest pair and convex hull problems by divide and conquer
  • Chapter 5: Design Technique: Decrease and Conquer. Insertion sort; depth-first search and breadth-first search; topological sorting; variable size decrease algorithms.
  • Chapter 6: Design Technique: Transform and Conquer. Presorting; balanced search trees, heaps and heapsort; problem reduction.
  • Chapter 7: Design Technique: Space and Time Tradeoffs. Sorting by counting; input enhancement in string matching; hashing; b-trees.
  • Chapter 9: Design Technique: Greedy. Prim's algorithm; Kruskal's algorithm; Dijkstra's algorithm; Huffman trees.
  • Chapter 11: Limitations of Algorithm Power. P, NP, and NP-complete problems.
  • Chapter 12: Coping with Limitations of Algorithm Power. Backtracking; branch-and-bound.
Copyright 2009 by Western Carolina University       •     Cullowhee. NC 28723       •      Contact WCU
Maintained by the Office of Web Services       •      Map & Directions       •      Mapquest It       •      Emergency Information       •      Text-Only