WILLIAM PATERSON UNIVERSITY OF NEW JERSEY
COLLEGE OF SCIENCE AND HEALTH
Computer Science Syllabus
- Course: CS342-60 Data Structures, 3 credits
Prerequisites: CS 240 and CS 260 (with grades of C- or better). - Department secretary: Carol Parken,
Office: Coach House 118, Phone: (973)720-2649, E-mail: . - Semester offered: Spring 2009,
Time: Tuesday & Thursday 5:10PM-6:25PM, Location: Coach House T101C - Faculty: Dr. John Najarian, Professor of Computer Science,
Office:Coach House 201,Phone:(973)-720-3383,E-mail:
Office Hours: Tuesday 11:00AM - 12:15PM and 3:30PM-4:45PM
Thursday 11:00AM - 12:15PM and 3:30PM-4:45PM
and by appointment (preferably limited toFriday 11:00AM - 1:45PM ).
Required Texts:
Data Structures and Algorithms in C++,
3rd edition, Adam Drozdek,
Course Technology, 2004.
ISBN-10: 0534491820,
ISBN-13: 978-0534491826.
Out of Print: “Schaum's Outline of Data Structures with C++”, John R. Hubbard,
McGraw-Hill, 2000. (optional)
Suggested Readings (not required):
Data Structures in C++ Using the Standard Template Library, T.A. Budd,
Addison Wesley, 1998
Data Structures with C++ Using STL, : 2nd edition, W. Ford and
W. Topp, Prentice Hall, 2002
Data Structures with Java, : W. Ford and W. Topp, Prentice Hall, 2005
Fundamentals of Data Structures in C++, E. Horowitz, S. Sahni, and D. Mehta,
Computer Science Press, 1995.
Data Structures and Program Design in C++, Kruse, Robert L. and Ryba, Alex, Prentice Hall, 1999.
Data Structures and other Objects Using C++, 3rd edition, M. Main and
W. Savitch, Addison-Wesley, 2004.
Data Structures Using C and C++, 2nd edition, Tenenbaum, Langsam, and Augenstein, Prentice Hall, 1996
Algorithms, Data Structures, and Problem Solving with C++, 2nd edition, M. A. Weiss, Addison Wesley 2000
Required Websites:
http://www.mathcs.duq.edu/drozdek/DSinCpp/ (Drozdek's source code)
http://www.cs.princeton.edu/~rs/
(The Best Source Code: Robert Sedgewick’s for Algorithms in C++, Parts 1-4 and 5 )
http://www.itk.ilstu.edu/faculty/chungli/ITK279/index.html
http://www.cs.wfu.edu/~turketwh/CS221/Spring2007/index.html
(For Videos on Data Struc and PPT’s for Drozdek and more)
http://staff.eng.bahcesehir.edu.tr/~alper/courses/cmpe2003/lecture_notes/
http://cpp.datastructures.net/source/index.html (Goodrich, Tamassia, & Mount code)
More forthcoming over here… (???)
- Course Objectives:
a. To learn the classic data structures that are found in most practical
computer algorithms.
b. To develop analytical techniques with which to evaluate algorithms.
c. To apply object-oriented programming techniques.
d. To become familiar with the pragmatic of implementation of data
structures and the related algorithms.
DESCRIPTION OF THE COURSE: Concepts and implementations of lists, stacks, queues, trees, graphs, sorting and searching algorithms, hashing, memory management and advanced data structure applications using object-oriented technology.
6. Student Learning Outcomes:
Upon completion of this course, students will be able to:
· Explain and apply the fundamental data structures used in programming in terms of their definitions, examples, trade-offs, optimal application of them in different programming situations, their implementation, and other aspects.
· Program, debug, and maintain source-code for data structures and incorporate them into larger programming frame-works.
· Critically analyze programs to determine where particular data-structures would be most beneficial. This capacity to apply data-structures methodologies is necessary in several directions of further Computer Science work such as Data Communications, Operating Systems, and Computer Graphics.
· Have a reinforced level of experience in Object-Oriented-Programming which they first studied in CS240.
· Appreciate the inter-related issues of complexity and program design which will be further developed in CS372.
· Through classroom participation in problem-solving sessions and discussions, homework, papers, and other assignments, this course also reinforces the following student learning outcomes in accordance with the university:
a) Effectively express themselves in written and oral form. Measure: exams, homework and projects.
b) Demonstrate the ability to think critically. Measure: exams, homework and projects.
c) Locate and use information. Measure: projects.
d) Demonstrate the ability to integrate knowledge and ideas in a coherent and
meaningful manner. Measure: exams, surveys, and projects.
- Topical Outline of Class Sessions (Course Content):
1. Object-Oriented Programming Using C++
2. Complexity Analysis
3. Linked Lists
4. Stacks and Queues
5. Recursion
6. Binary Trees
7. Multiway Trees
8. Graphs
9. Sorting
10. Hashing
11. Data Compression
12. Memory Management
13. String Matching
14. Computing BIG-O
15. Algorithms in the Standard Template Library
16. NP-Completeness
8. Teaching methods:
a) Classroom lectures, discussions, and problem solving sessions
b) Homework reviews
c) Lab work programming with compilers, IDE's, debuggers, &profilers.
- Course Expectations:
a. Reading Assignments
Item 8 (above) addresses the reading schedule issue.
b. Tentative timeline for submission of written assignments or other work
Projects and class work will be collected as scheduled.
c. Attendance: Attendance will be recorded. Departmental guidelines require
that:
3 absences (2 for night classes) results in a departmental warning letterand
7 absences (4 for night) results in automatic coursefailure.
Only valid excuses (in writing) allay these consequences.
Attendance and success coincide.
d. Participation in out-of-class activities: Not Applicable
e. Examinations (dates, make-up policy, etc.):
All exams will be announced at least one full week in advance.
If you are absent on the day an exam is announced, you areresponsible for
finding outabout it from a fellow student or the professor.
No make-up exams will be given except forextraordinary circumstances.
Item 8 (above) addresses the examination schedule issue.
Final Exam. Period: Tuesday5/12/2008 at 5:00PM – 7:30PM,T101C.
f. Class participation
Bring the specified textbook to each class session.
Before lab sessions and lectures, read relevant text to optimize productivity.
- Grading and other methods for assessing student academic performance: Periodic examinations, the culminating one being a final examination. Assignments (Classwork, Homework, and Programming Projects)
Computation:Final Grade = (20%) * Classwork & Projects + (80%) * Average of Quizzes
- Additional information (Calendar):
Additional information:
Last day for course withdrawal 3/10/2009.
Classes will be in session from 1/20/2009 to 5/7/2009.
Holidays:
2/16 (Presidents Day), 2/17 (Tuesday = Monday Schedule = CS342 cancelled),
3/16 - 3/21 (Spring Break),
4/10 - 4/12 (Good Friday-Easter Sunday).
1