CS 202 - Analysis of Algorithms, Fall 2017

Instructor: Ge (Frank) Xia
Lectures: TR 11:00 am - 12:15pm, AEC 429
Office: AEC 506
Phone: 610-330-5415
Office hours: TR 9:00 - 10:00 am 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.

Course Goals: At the end of the semester you should:

  • be familiar with basic algorithms and algorithmic techniques,
  • be able to apply knowledge of computing and mathematics appropriate to the discipline; in particular, be able to design efficient algorithms for new problems using the techniques learned, and be able to prove correctness and analyze the complexity of an algorithm,
  • be able to analyze a problem, and identify and define the computing requirements appropriate to its solution; in particular, be able to analysis the time and space requirements for algorithms for certain problems.

Textbook

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

Reference Books

(no need to purchase)
  • 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.
  • The Art of Computer Programming, volumes 1-3, by Donald E. Knuth, Addison-Wesley, 1997-1998 (ISBN: 0201485419). A canonical text on computer science. It covers core algorithms such as searching and sorting in great depth.
  • 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:55pm 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.

Fall 2017
Sunday Monday Tuesday Wednesday Thursday Friday Saturday
08/27
Week 1
  Ch 0.
Introduction, syllabus
  Ch 0.
Basic math, Asymptotic notation
   
09/03
Week 2
  Ch 1.
Basic arithmetics
  Ch 1.
Basic arithmetics
   
09/10
Week 3
  Ch 2.
Devide & conquer technique
  Ch 2.
Recurrence relations
   
09/17
Week 4
  Ch 2.
Sort and selection
  Ch 3.
Graphs algorithms
   
09/24
Week 5
  Ch 3.
Graphs algorithms
  Ch 3.
Graphs algorithms
   
10/1
Week 6
  Ch 3.
Depth-first search
  Midterm    
10/8
Week 7
Fall Break Fall Break   Ch3. DFS    
10/15
Week 8
  Ch 3.
Strongly connected components
Ch 4.
BFS, Shortest paths
Midterm Grade Due  
10/22
Week 9
  Ch 4.
Shortest paths
  Ch 5.
Greedy algorithms
   
10/29
Week 10
  Ch 5.
Greedy algorithms
  Ch 5.
Greedy algorithms
   
11/05
Week 11
  Ch 5.
Greedy algorithms
  Ch 6.
Dynamic programming
   
11/12
Week 12
  Ch 6.
Dynamic programming
Withdraw Deadline
  Ch 6.
Dynamic programming
   
11/19
Week 13
  Ch 6.
Dynamic programming
Thanksgiving Break Thanksgiving Break Thanksgiving Break  
11/26
Week 14
  Ch 8.
P and NP
  Ch 8.
P and NP
   
12/03
Week 15
  Ch 8.
P and NP
  Ch 8.
P and NP
   
12/10 Reading Day Final Exam period begins        
12/17   Final Exam period ends     Final grades due  

           

           





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.