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:
| Section | Time | TA | PT |
| 501 | TR 11:10 am –12:00 pm | Hui Lou | Kourtney |
| 232 HRBB | wslh@neo.tamu.edu | Kebodeaux | |
| MW 2–3pm, HRBB 526 | |||
| 502 | TR 2:20 pm – 3:10 pm | Hui Lou | Brad Twitty |
| 232 HRBB | wslh@neo.tamu.edu | MW 4 – 5 pm | |
| MW 2–3pm, HRBB 526 | F 12:30 – 1:30pm, HRBB 219 | ||
| 503 | TR 3:55 pm – 4:45 pm | Ajith Prasad | Kourtney |
| 232 HRBB | manoj.prasad@neo.tamu.edu | Kebodeaux | |
| MW 3–4 pm, HRBB 219 | |||
| 504 | MW 10:20 am –11:10 am | Ajith Prasad | Adam Griffin |
| 232 HRBB | manoj.prasad@neo.tamu.edu | TR 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:
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:
Notes
| No. | date | day | Topic | Chap. | homework | quiz | wk |
| 1 | Aug. 25 | Mon | Introduction to data structures | 1 | 1 | ||
| 2 | Aug. 27 | Wed | Vectors and arrays in C++ | 1, 5 | PA 1 | 1 | |
| 3 | Aug. 29 | Fri | Basic algorithms on vectors and arrays | 1, 5 | HW 1 | quiz 1 | 1 |
| 4 | Sep. 01 | Mon | Introduction to analysis of algorithms | 3 | 2 | ||
| 5 | Sep. 03 | Wed | Introduction to analysis of algorithms | 3 | 2 | ||
| 6 | Sep. 05 | Fri | Introduction to analysis of algorithms | 3 | quiz 2 | 2 | |
| 7 | Sep. 08 | Mon | Stack data structure | 4 | PA 2 | 3 | |
| 8 | Sep. 10 | Wed | C++ array based implementation of a stack | 4 | HW 2 | 3 | |
| 9 | Sep. 12 | Fri | Big-O asymptotic notation vs amortized analysis | 4 | quiz 3 | 3 | |
| 10 | Sep. 15 | Mon | Recursive algorithms | 4 | 4 | ||
| 11 | Sep. 17 | Wed | Sorting algorithms based on recursions | 10.1 | PA 3 | 4 | |
| 12 | Sep. 19 | Fri | Sorting algorithms based on recursions | 10.3 | HW 3 | quiz 4 | 4 |
| 13 | Sep. 22 | Mon | C++ array based implementation of a queue | 4 | 5 | ||
| 14 | Sep. 24 | Wed | Exam 1 | 5 | |||
| 15 | Sep. 26 | Fri | Linked lists and C++ implementation | 4, 5 | quiz 5 | 5 | |
| 16 | Sep. 29 | Mon | Operations on linked lists | 4, 5 | 6 | ||
| 17 | Oct. 01 | Wed | Linked lists implementations of stack and queue | 4, 5 | 6 | ||
| 18 | Oct. 03 | Fri | Stack and queue applications. | 6 | |||
| Parsing and evaluating algebraic expressions. | |||||||
| 19 | Oct. 06 | Mon | Tree data structure | 6 | 7 | ||
| 20 | Oct. 08 | Wed | Expressions trees | 6 | 7 | ||
| 21 | Oct. 10 | Fri | Binary search trees | 9 | PA 4 | quiz 6 | 7 |
| 22 | Oct. 13 | Mon | Binary search tree algorithms | 9 | HW 4 | 8 | |
| Midterm | |||||||
| 23 | Oct. 15 | Wed | Algorithms for balanced binary trees | 9 | 8 | ||
| 24 | Oct. 17 | Fri | Algorithms for balanced binary trees | 9 | 8 | ||
| 25 | Oct. 20 | Mon | Heap data structure | 7 | quiz 7 | 9 | |
| 26 | Oct. 22 | Wed | Exam 2 | 9 | |||
| 27 | Oct. 24 | Fri | Priority queues implementation based on a heap. | 7 | 9 | ||
| 28 | Oct. 27 | Mon | Heap sort | 7 | PA 5 | quiz 8 | 10 |
| 29 | Oct. 29 | Wed | Sorting algorithms not based on comparisons | 10 | HW 5 | 10 | |
| 30 | Oct. 31 | Fri | Dictionaries & hashing | 8 | 10 | ||
| Q-drop | |||||||
| 31 | Nov. 03 | Mon | Dictionaries & hashing | 8 | quiz 9 | 11 | |
| 32 | Nov. 05 | Wed | Set data structure. Operations on sets | 10 | 11 | ||
| 33 | Nov. 07 | Fri | Selection problem | 10 | 11 | ||
| 34 | Nov. 10 | Mon | Graph data structures | 12 | 12 | ||
| 35 | Nov. 12 | Wed | Graph terminology | 12 | PA 6 | 12 | |
| 36 | Nov. 14 | Fri | Search operations for a graph | 12 | HW 6 | 12 | |
| 37 | Nov. 17 | Mon | Directed graph algorithms | 12 | quiz 10 | 13 | |
| 38 | Nov. 19 | Wed | Shortest path algorithms | 12 | 13 | ||
| 39 | Nov. 21 | Fri | Minimum spanning tree algorithms | 13 | |||
| 40 | Nov. 24 | Mon | Exam 3 | 14 | |||
| 41 | Nov. 26 | Wed | Shortest path algorithms | 12 | 14 | ||
| Nov. 28 | Fri | No classes | 12 | 14 | |||
| 42 | Dec. 01 | Mon | Review (Friday schedule) | 15 | |||
| 43 | Dec. 10 | Wed | Final Exam for CPSC 221, 10:30am–12:30pm | 16 |