Syllabus for CPSC 221, Sections: 501,  502,  503 & 504
Fall 2008


Instructor: Dr. Teresa Leyk

Office: 901E Richardson Bldg

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/cpsc221/cpsc221-index.html

Class Time: MWF 11:30 am – 12:20 pm, 124 HRBB

Lab Time:

SectionTimeTAPT
501TR 11:10 am –12:00 pmHui LouKourtney
 232 HRBBwslh@neo.tamu.eduKebodeaux
  MW 2–3pm, HRBB 526 
502TR 2:20 pm – 3:10 pmHui LouBrad Twitty
 232 HRBBwslh@neo.tamu.eduMW 4 – 5 pm
  MW 2–3pm, HRBB 526F 12:30 – 1:30pm, HRBB 219
503TR 3:55 pm – 4:45 pmAjith PrasadKourtney
 232 HRBBmanoj.prasad@neo.tamu.eduKebodeaux
  MW 3–4 pm, HRBB 219 
504MW 10:20 am –11:10 amAjith PrasadAdam Griffin
 232 HRBBmanoj.prasad@neo.tamu.eduTR 12 – 2pm, HRBB 219
    


Office Hours: MWF 10:15 am – 11:15 am, other times by appointment, 901E Richardson




Course Description: Credit 4. Specification, analysis and implementation of abstract data types for lists, stacks, queues, trees, hash tables, graphs, and their associated algorithms. Performance trade-offs of different implementations; asymptotic analysis of running time and memory usage. Includes the execution of students programs written in C++; emphasis on adherence to good software engineering principles.

Prerequisite:


Required Textbook: "Data Structures and Algorithms in C++" by M.T. Goodrich, R. Tamassia and D. Mount, 2004, John Wiley & Sons, Inc. (ISBN 0-471-20208-8). Also, you may need a C++ reference book.


Learning Objectives: After this course students should be able to:

  1. Apply the principles of abstraction, encapsulation and information hiding to design data structures and algorithms.
  2. Apply the concept of basic data structures and algorithms for stacks, queues, lists, trees, graphs and hash tables in designing solutions to other problems.
  3. Classify algorithms using Big-O asymptotic notation and compare tradeoffs of their implementations in terms of running time and memory usage.
  4. Develop better C++ programming skills by implementing data structures and algorithms.
  5. Explore the latest developments in Computer Science and describe their impact on society.


Course Content (the topics and related chapters from the textbook):


Grading: Your final grade will be determined based on programming homework assignments, quizzes, mid-term exams and the final exam.

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
You can also get 2 points to your final score if you have perfect lab attendance, or 1 point if you have only one absence.


Learning process: From the syllabus you may have noticed that this course focuses on obtaining a computer science background and developing programming skills. Programming is not something what you can learn overnight by reading a textbook or lecture notes, it requires a lot of practice. The class TAs, PTs and I are willing to help you to learn and understand the course material and master your programming skills so please see us during our office hours.

A few hints that will help you to succeed in this course:

In general, Computer Science is not an easy subject but it will payoff after graduation. I think that you are aware that the four years you spent in college set the stage for your life. You must learn how to balance school and fun.

CNNMoney posted on Feb. 8, 2007 the results of the survey called "The most lucrative college degrees". The value of degree was measured by the average starting salaries for the class 2007. The top salary offers are:

Chemical Eng. – 60,054

Electrical Eng. – 54,599

Mechanical Eng. – 54,587

Computer Science – 51,070

. . .

Liberal Arts Majors – 30,502.

Also, CNN Money produced a top fifty list of the Best Jobs in America:

  1. Software Engineer
  2. College professor
  3. Financial adviser
  4. Human Resources Manager
  5. Physician assistant
  6. Market research analyst
  7. Computer IT analyst
  8. Real Estate Appraiser
  9. Pharmacist
  10. Psychologist


Notes

Schedule for CPSC 221, Sections 501,  502,  503,   504,
Fall 2008 (tentative)
All changes in the schedule will be announced in the class
No.datedayTopicChap.homeworkquizwk
1Aug. 25MonIntroduction to data structures1  1
2Aug. 27WedVectors and arrays in C++1, 5PA 1 1
3Aug. 29FriBasic algorithms on vectors and arrays1, 5HW 1quiz 11
4Sep. 01MonIntroduction to analysis of algorithms3  2
5Sep. 03WedIntroduction to analysis of algorithms3  2
6Sep. 05FriIntroduction to analysis of algorithms3 quiz 22
7Sep. 08MonStack data structure4PA 2 3
8Sep. 10WedC++ array based implementation of a stack4HW 2 3
9Sep. 12FriBig-O asymptotic notation vs amortized analysis4 quiz  33
10Sep. 15MonRecursive algorithms4  4
11Sep. 17WedSorting algorithms based on recursions10.1PA 3 4
12Sep. 19FriSorting algorithms based on recursions10.3HW 3quiz 44
13Sep. 22MonC++ array based implementation of a queue4  5
14Sep. 24WedExam 1   5
15Sep. 26FriLinked lists and C++ implementation4, 5 quiz 55
16Sep. 29MonOperations on linked lists4, 5  6
17Oct. 01WedLinked lists implementations of stack and queue4, 5  6
18Oct. 03FriStack and queue applications.   6
   Parsing and evaluating algebraic expressions.    
19Oct. 06MonTree data structure6  7
20Oct. 08WedExpressions trees6  7
21Oct. 10FriBinary search trees9PA 4quiz 67
22Oct. 13MonBinary search tree algorithms9HW 4 8
 Midterm      
23Oct. 15WedAlgorithms for balanced binary trees9  8
24Oct. 17FriAlgorithms for balanced binary trees9  8
25Oct. 20MonHeap data structure7 quiz 79
26Oct. 22WedExam 2   9
27Oct. 24FriPriority queues implementation based on a heap.7  9
28Oct. 27MonHeap sort7PA 5quiz 810
29Oct. 29WedSorting algorithms not based on comparisons10HW 5 10
30Oct. 31FriDictionaries & hashing8  10
 Q-drop      
31Nov. 03MonDictionaries & hashing8 quiz 911
32Nov. 05WedSet data structure. Operations on sets10  11
33Nov. 07FriSelection problem10  11
34Nov. 10MonGraph data structures12  12
35Nov. 12WedGraph terminology12PA 6 12
36Nov. 14FriSearch operations for a graph12HW 6 12
37Nov. 17MonDirected graph algorithms12 quiz 1013
38Nov. 19WedShortest path algorithms12  13
39Nov. 21FriMinimum spanning tree algorithms   13
40Nov. 24MonExam 3   14
41Nov. 26WedShortest path algorithms12  14
 Nov. 28FriNo classes12  14
42Dec. 01MonReview (Friday schedule)   15
43Dec. 10WedFinal Exam for CPSC 221, 10:30am–12:30pm   16