California State University, Chico
Department of Computer Science

CSCI 650 Syllabus/Course Requirements



Design and Analysis of Algorithms

Prerequisite: CSCI 311(Algorithms and Data Structures), MATH 317 (Discrete Math Structures) and classified status or faculty permission

Prerequisite by Topic: Experience, skill, and a love of abstractions, mathematical proofs and computers

Units: 3

Class Dates and Times: TR , 9:30PM-10:45AM (Pacific)

Instructor: Anne Keuneke

Office Hours: see http://www.ecst.csuchico.edu/~amk/foo/hours.html for current information

Office Phone: (530) 898-5998

email: akeuneke@csuchico.edu

WWW Homepage: http://www.ecst.csuchico.edu/~amk/foo/csci356

FAX: (530) 898-5995

Textbook Required:

Suggested Reading:

Course Description:

Course Objectives:
A student will:


Course outline:

  1. Introduction: Review of Algorithms

    • a. pseudocode conventions
    • b. induction
    • c. performance analysis
    • d. recursion

  2. Review of Data Structures

  3. Algorithm Types

    • a. divide and conquer
    • b. greedy method
    • c. dynamic programming
    • d. basic traversal and search
    • e. backtracking
    • f. branch-and-bound

  4. Determistic/non-deterministic machines
    Lower Bound Theory

    • a. oracles

  5. Reducibility

    • a. Cook/Turing
    • b. determining power of languages/algorithms

  6. Intractability

    • a. P, NP and co-NP
    • b. NP-complete
        i. Satisfiability
    • c. NP-hard
        i. Halting Problem

  7. PRAM algorithms (if time allows)

Grade Evaluation Procedures:

Homeworks and Exams might be take-home or in-class. It depends on the semester.
Homeworks: The best way to learn the material is by solving problems. You are encouraged to work with others, for the best way to understand the subtleties of the homework problems is to argue about the answers with someone. Each of you should look at all the problems independently, and not just divide the problems. The only way to learn how to do these problems is by intensely thinking about them.
Tests: Tests must be done individually (whether in-class or take-home). Unless you learn how to solve problems through the homeworks, you will have trouble on the exams and thus for your final grade.

Any academic dishonesty will be grounds for receiving a grade of F. See the campus policy

"Few technical terms have gained such notoriety as the appelation 'NP-complete. ' In the short time since its introduction in the early 1970's, this term has come to symbolize the abyss of inherent intractability that algorithm designers increasingly face as they seek to solve larger and more complex problems. A wide variety of commonly encountered problems from mathemetics, computer science, and operations research are now known to be NP-complete, and the collection of such problems continues to grow almost daily. Indeed, the NP-complete problems are now so pervasive that it is important for anyone concerned with the computational aspects of these fields to be familiar with the meaning and implication of this concept." (Computers and Intractability , Garey and Johnson,W.H. Freeman and Co, 1979)