Paul E. Russell, PhD.
COSC 2415 Data Structures
Section 002, Synonym 39901
Fall Semester, 2009
Northridge Campus
Prerequisite: COSC 1320, C++ Programming, or department approval
Lecture: Tuesday and
Thursday,
Lab: Tuesday and
Thursday,
Office Hours: Tuesday and Thursday, 10:45 am - 11:45 am, and by appointment
Office: NRG 4239
Phones: 474-5992 (home), 223-4781 (ACC)
Email: prussell12@gmail.com, prussell@austincc.edu
Course Description:
Investigation of techniques for program design, testing, and debugging. Data structures are studied, including stacks, queues, linked lists,and binary trees.
Searching, sorting, recursion, strings, and arrays are also covered.
The language currently used in this course is the C++ programming language.
Introduction of the use of the Standard Template Library (STL) for incorporating data structures in C++ program.
Textbook:
ADT's, Data Structures, and Problem Solving with C++, Second Edition, by Larry Nyhoff, Pearson Prentice Hall, 2005, ISBN 0-13-140909-3
Reference Books and Other Material (not required):
(none)
Instruction Methodology:
The lectures will consist of discussions of the topics to be covered, examples illustrating those topics, and how the code in the examples works to achieve the desired results.
Each of the assigned programs is intended to require practice implementing one or two of the topics to be covered.
Course Rationale:
This is intended to present data structures, operations on them, and their implementation in an appropriate, object-oriented language (C++).
Course Objectives/Learning Outcomes:
Develop correct, well-documented programs containing complex data structures; perform searching and sorting operations on data structures; become familiar with the use of STL to incorporate and manipulate data structures in C++ programs.
Grading System:
percent
of course grade
Three examinations 60 (20% each)
Programs 40 (may have varying weights)
course score range course grade
90 - 100 A
80 - 89.9 B
70 - 79.9 C
60 - 69.9 D
0 - 59.9 F
Programs:
Programs are to be turned in by midnight of the due date for that program.
Programs must be turned in using the Digital Dropbox in BlackBoard. The program number must be in the title. It is preferable to use a zip file to include all of the program files in one zip file.
A program should include the source code, test results, and, if appropriate, test data. The source code should have a multi-line comment at the beginning that includes the name of the student, the course number (COSC 2415), the program number, and a description of what the program is intended to do. Every function except main should have a one or two line comment at its beginning, describing the purpose of that function.
Any cunning code written by a student should have an accompanying, explanatory comment.
Programs may be coded and tested at ACC facilities or using a computer owned by the student or, with appropriate permission, at a student's place of work. For non-ACC computers, an ANSI standard version of C++, including STL, must be installed.
Course/Class Policies:
Students are expected to attend all classes, read assignments before attending class, turn in all programming assignments on time, and take all examinations.
Make-up examinations will be given only in case of emergencies.
Incompletes will be given only in extreme cases and only for incomplete work. The student must request and justify the incomplete. The instructor's decision about this is final.
The instructor will not withdraw a student from this class, even if requested to do so by the student. The only exception to this is if the student is physically not able to complete and submit a withdrawal request, e.g., the student is out of the country for the rest of the semester.
Each student is strongly encouraged to participate in class. In any classroom situation that includes discussion and critical thinking, there are bound to be many differing viewpoints. These differences enhance the learning experience and create an atmosphere where students and instructor alike will be encouraged to think and learn. On sensitive and volatile topics, students may sometimes disagree not only with each other but also with the instructor. It is expected that faculty and students will respect the views of others when expressed in classroom discussions.
Acts prohibited by the College for which discipline may be administered include scholastic dishonesty, including not limited to cheating on an exam or quiz, plagiarizing, and unauthorized collaboration with another in preparing outside work. Academic work submitted by students shall be the result of their thought, research or self-expression. Academic work is defined as, but not limited to tests, quizzes, whether taken electronically or on paper; projects, either individual or group; classroom presentations, and homework. The penalty for the first violation of this policy is a grade of zero for the work involved. The penalty for a second violation is a failing grade in the course.
Each ACC campus offers support services for students with documented physical or psychological disabilities. Students with disabilities must request reasonable accommodations through the Office for Students with Disabilities on the campus where they expect to take the majority of their classes. Students are encouraged to do this three weeks before the start of the semester.
Data Structures Topics:
C++ classes
dynamic memory allocation and de-allocation
smart pointers and reference counting
inheritance and virtual functions
strings
C++ templates
linked lists
stacks
queues
binary trees
B-trees
priority queues
sorting
searching
STL (Standard Template Library)
Testing Center Policy:
This is not applicable to this course.