CS 202 - Analysis of Algorithms, Fall 2019

Instructor: Ge (Frank) Xia
Section 1: MWF 1:10 - 2:00pm, RISC 562
Section 2: MWF 3:10 - 4:00pm, RISC 562
Office: RISC 567
Phone: 610-330-5415
Office hours: MWF 2:00 - 3:00 pm or by appointment


[Announcements] [Textbook] [Grading] [Schedule]


Announcements


Course Description

This course introduces students to the design and analysis of computer algorithms and their complexity. We will survey the basic algorithm design techniques. We will study fundamental algorithms, data structures, methods of measuring the performance of algorithms, and the notion of tractable and intractable problems.

Prerequisite: CS 150 and Math 182

Course Objectives:

  • (ABET Outcome 1) Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
    • Students will be familiar with basic algorithms and algorithmic techniques
    • Students will be able to apply the appropriate techniques to design algorithms for solving problems.
    • Students will be able to prove correctness and analyze the complexity of algorithms.

Required Textbook

  • Algorithms, by Sanjoy Dasgupta, Christos Papadimitriou, and Umesh Vazirani, Mcgraw Hill, 2006 (ISBN: 0073523402).

Optional Books

  • Introduction to Algorithms, 2nd Edition, by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, MIT Press/McGraw-Hill, 2001 (ISBN: 0262032937). The standard text book on algorithms.
  • Algorithms, 4th Edition, by Robert Sedgewick, Kevin Wayne, Addison-Wesley 2011. (ISBN: 978-0321573513). The basic data structures and algorithms in Java
  • Algorithms in Java, 3rd Edition, Parts 1-5, by Robert Sedgewick, Addison-Wesley, 2002. It provides extensive coverage of fundamental data structures and algorithms. Plus, the author provides real (not pseudo) code in Java.

Grading Policy

  • Homework Assignments and Quizzes -- 40%
  • Midterm exam -- 30%
  • Final exam -- 30%

The final letter grades will be assigned based on criteria specified in the Student Handbook.

All homework assignments are to be submitted on Moodle at 11:59pm on the due date. Each student is allowed a one-time lateness of homework submission for up to 48 hours. Beyond this, no exceptions will be made on late or missing homework assignments unless the student has an allowed excuse.

Quizzes will be give in class. Zeros will be given to all missing quizzes unless the student has an allowed excuse. An allowed excuse is an approved Dean's excuse or the instructor's permission obtained prior to the excuse.


Academic Honesty

Discussion of concepts with others is encouraged, but all assignments must be done on your own, unless otherwise instructed. If you use any source other than the text, reference it/him/her, whether it is a person, a book, a solution set, a web page or whatever. You MUST write up the solutions in your own words. Copying is strictly forbidden.

The Student Handbook of Lafayette College has a section on Principles of Intellectual Honesty that defines academic dishonesty to include:

  • Use of other persons' writings without proper acknowledgment,
  • Use of reference material without properly crediting sources used,
  • Use of other students' work, with or without revision,
  • Collaboration beyond the limits established by the instructor,
  • Submission of the same work in more than one course
A student who commits academic dishonesty is subject to Disciplinary actions including suspension or expulsion.

Attendance

Students are expected to attend classes unless there is a reasonable excuse. A reasonable excuse is a previously approved Dean's excuse or the instructor's permission.

Tentative Schedule

Changes will be made according to the progress of the course.

  1. Introduction and syllabus
  2. Review of basic math and asymptotic notation
  3. Arithmetic algorithms
  4. Devide-conquer technique
  5. Recurrence relations
  6. Sort and selection
  7. Graphs
  8. Depth-first search
  9. Strongly connected components
  10. Breadth-first search
  11. Shortest paths
  12. Greedy algorithms
  13. Dynamic programming
  14. NP-complete problems



Federal Credit Hours:

The student work in this course is in full compliance with the federal definition of a four [two or one as appropriate for half and quarter unit courses] credit hour course. Please see the Registrar’s Office web site (http://registrar.lafayette.edu/additional-resources/cep-course-proposal/) for the full policy and practice statement.