Syllabus for CPSC 311
Fall 2008


Instructor: Dr. Teresa Leyk

Office: Richardson Bldg. 901E

phone: 845-4456

e-mail: teresa@cs.tamu.edu

Course web page: (all information about the course will be there):

http://courses.cs.tamu.edu/teresa/cpsc311/cpsc311-index.html

Class Time MWF 9:10–10:00 am, 105B ZACH

Office Hours: MWF 10:15–11:15 am, other times by appointment.


TA: Thomas George

TA’s E-mail: tgeorge@cs.tamu.edu

TA’s Office Hours: MTWR - 11:30-12:30 pm

PT: Jonthatan Leake

PT’s E-mail: jona527than@neo.tamu.edu

PT’s Office Hours: MW 1:40-2:40 pm 128D ZACH, TR 9:50-10:50 pm 214 HRBB, F 1:40-2:40 pm 214 HRBB.


Course Description: Credit 3. Design of computer algorithms for numeric and non-numeric problems, relation of data structures to algorithms; analysis of time and space requirements of algorithms; complexity and correctness of algorithms.


Prerequisite: CPSC 211 (Data Structures), C/C++ programming language and Math 302 (Discrete Mathematics).


Required Textbook: T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein “Introduction to Algorithms”, 2nd ed., McGraw-Hill, 2001.

Learning Objectives: At the end of this course students will be able to:

  1. Understand the relation between the amount of work done by an algorithm and Big-O, Ω, Θ asymptotic notations.
  2. Analyze the time and space complexity of fundamental algorithms.
  3. Determine recurrence for recursive algorithms and solve elementary recurrence relations.
  4. Design efficient algorithms using different algorithmic strategies like brute-force, greedy, divide and conquer, backtracking, dynamic programming, approximation algorithms.
  5. Justify correctness of algorithms using loop invariant and contradiction proving techniques.
  6. Design, implement and compare asymptotic notation and computational time for sorting and search algorithms.
  7. Classify problems using P and NP classes. Prove that a problem is NP-complete by reducing NP-complete problem to it.


Course Content:


Grading: Your grade will be determined based on homework assignments, quizzes, mid-term exams and the final exam. Exams and quizzes are closed book. All homework assignments will be announced in class and posted on the course web page. There will be two types of homework assignments: individually written and two group projects each of them will contain a programming part. You can get 100 points for each written assignment and 200 points for each project. All programs must be written in Standard C or C++, compiled and run on the Unix CS machines and transferred to a course directory for grading using the turnin program. Each project will be graded focusing on: algorithm design and its implementation; 40%; its correctness and tests: 30%; and typed report with comparison between theory and a computational experiment: 30%. A late homework assignment will be accepted up to four working days with a 5% penalty for each late day. There are no make-up quizzes or exams. Please discuss unusual circumstances in advance with the instructor.


Grading Scale: Grades will be assigned according to the following scheme:

90% –100% –> A, 80% – 89% –> B, 70% – 79% –> C, 60% – 69% –> D, 0% – 59% –> F

Schedule CPSC 311 Fall 2008
(tentative)
All changes in the schedule will be announced in the class
NodatedaytopicChap.homeworkquizwk
1Aug. 25MonIntroduction1  1
2Aug. 27WedExamples of different type of algorithms2,3HW 1 1
3Aug. 29FriClassification of algorithms2,3 quiz 11
4Sep. 01MonAsymptotic Notations of Algorithms3,4P1 2
5Sep. 03WedAsymptotic Notations of Iterative Algorithms3,4HW 2 2
6Sep. 05FriRecursive algorithms6 quiz 22
7Sep. 08MonSolving Recurrences7  3
8Sep. 10WedSolving Recurrences7HW 3 3
9Sep. 12FriComparison based Sorting Algorithms8 quiz 33
10Sep. 15MonSorting in Linear Time8  4
11Sep. 17WedSorting in Linear Time9  4
12Sep. 19FriOrder Statistics9 quiz 44
13Sep. 22MonOrder Statistics11P2 5
14Sep. 24WedExam 111HW 4 5
15Sep. 26FriHashing10 quiz 55
16Sep. 29MonHashing12  6
17Oct. 01WedBinary Search Trees   6
18Oct. 03FriAVL Trees   6
19Oct. 06MonRed-Black Binary Trees13  7
20Oct. 08WedRed-Black Binary Trees13  7
21Oct. 10FriIntroduction to Graphs22HW 5quiz 67
22Oct. 13MonGraph Search Algorithms22  8
 Midterm      
23Oct. 15WedGraph Search Algorithms22  8
24Oct. 17FriTopological Sort Algorithm22HW 6 quiz 78
25Oct. 20MonStrongly Connected Components22  9
26Oct. 22WedExam 2   9
27Oct. 24FriSingle-Source Shortest Paths24 quiz 89
28Oct. 27MonSingle-Source Shortest Paths24HW 7 10
29Oct. 29WedSingle-Source Shortest Paths23  10
30Oct. 31FriMinimum Spanning Tree23 quiz 910
31Nov. 03MonMinimum Spanning Tree21  10
32Nov. 05WedOperations on Disjoint Sets21  11
33Nov. 07FriOperations on Disjoint Sets HW 8 11
34Nov. 10MonAll-Pairs Shortest Paths25P 3 11
35Nov. 12WedAll-Pairs Shortest Paths25  12
36Nov. 14FriDynamic Programming15 quiz 1012
37Nov. 17MonDynamic Programming15  12
38Nov. 19WedIntroduction to NP-Completeness26  13
39Nov. 21FriIntroduction to NP-Completeness34  13
40Nov. 24MonExam 3   13
41Nov. 26WedApproximation algorithm35  14
 Nov. 28FriNo classes   14
42Dec. 01MonReview   14
43Dec. 08MonFinal exam 8 – 10 am    15