
306-136 Elementary Data Structures Credits:
3
Building & Room: LKD 3116
Meeting Times: TTH 11:10 12:30 AM
Professor:
Harry N. Keeling , Rm. 2120B
Office Hours: TTH 10:00 11:00 AMTextbook: "Data Structures with C++", Ford, William, William Topp
Email : [email protected] TTH 1:30 2:30 PM
Call : (202) 806-4830 W 9:00 11:00 AM and by appointment
Prerequisites:
Knowledge and programming ability in C++
Experience implementing programs in a Unix environment
Course Objectives:
To expose students to concepts and algorithms for the manipulation of standard data structures using the C++ language. Emphasis will be placed on the use of object-oriented paradigm in problem analysis and the subsequent development of solution systems. Several abstract data types will be discussed and the student will gain an understanding of issues relating to the use, design and implementation of each type in C++. A major focus of the lectures will be to provide an overview of the key paradigms used in developing useful and reusable data abstractions. Software reuse will be emphasized and object-oriented concepts will be used throughout the course.
Educational Goals:
Each student will increase his or her repertoire of useful and reusable data abstractions. This course is designed to enhance the students ability to engineer software that is cost efficient over its entire life cycle. Students will learn to debug and develop C++ programs that are both understandable and maintainable. After the successful completion of this course, students will be able to more effectively develop software in project teams for medium to large systems. The students skill in software design will be enhanced along with their ability to properly employ abstractions that are closer to the domain of the problem area being addressed.
Topics: (not necessarily in order)
Algorithms and algorithm analysis
Classes and methods
Single and multiple inheritance
Polymorphism
Abstract operators
Lists
Sorting algorithms
Stacks and queues
Trees and searching
Collections
Generic data types
Laboratory Projects:
There will be several short assignments given each week designed to familiarize students with specific data structures and related language constructs. Some assignments will be individual while others will b group assignments. Each assignment must be well documented and timely submission will be required. No late projects will be accepted.Grading:
Quizzes . 15%Makeup Exams:
Laboratory projects .. 45%
In-class exams (3) .. 30%
Final exam 10%
No makeup for an exam will be given unless the student has a University approved excuse and we agree on a time and date before the day of the exam. Only one makeup per student will be given.Academic Integrity:
Individual projects must be completed individually. Group projects must be completed in groups. Cheating will not be tolerated. Students should read the "Academic Code of Conduct" which is published in the H-Book and the Student Reference Manual and Directory of Classes.Student Notebooks
Students will be expected to maintain and turn in a completed course notebook. This three-ring notebook should contain this syllabus, tests, quizzes, assignments and completed projects, and other course material. The purpose of the notebook is to compile an organized reference for use during study and self assessment. These notebooks should be brought with you during all visits to my office and will be collected and graded at midterm and at the end of the semester.References:
Mercer, Rick, Computing Fundamentals with C++, Franklin, Beedle & Associates, 1995.
Lippmann, Stanley B., C++ Primer, Second Edition, Addison-Wesley, 1992
Budd, Timothy A., Classic Data Structures in C++, Addison-Wesley
Main | Assignments | Schedule| Student Info | Study Guides
Comments/Questions? Send Mail to: [email protected]