CSCI 205 Data Structures and Abstraction

  A continuation of Computer Science 200.  Topics include pointers, recursion, principles of language design, and an introduction to object-oriented programming.  Standard data structures and algorithms for sorting and searching data will be introduced, including lists, stacks, queues, and trees.  Software engineering concepts such as top-down design, stepwise refinement, modularization, testing, and documentation will be emphasized.  All concepts will be reinforced through programming assignments in C++ or Java.  Prerequisites: CSCI 200 and Math 120.


The course is designed to cover the CS2 curriculum recommendations of the ACM (Association of Computing Machinery).  The major objectives are:


The course material will be delivered through a combination of classroom lecture, recitation and work on a structured set of programming exercises and projects.  Students are expected to turn in the programming assignments assigned in the previous week at the first class of the new week.  Discussion will be encouraged in the classroom to debrief the previous week's work.


Grades will be based on student performance on 1) Programming Assignments, 2) a Mid-term Examination, 3) a Final Examination, and 4) other quizzes and assignments as the teacher shall assign.  The final grade will be computed using a set of weights with the programming assignments weighted highest and the other weights declining in precedence order: Final Exam, Mid-Term, Misc Assignments.  An example set of weights which reflects the intention but may be modified somewhat would be: 60 Programming Assignments, 15 Mid-Term, 20 Final, 5 Misc.  This may vary depending on the scope of the assigned efforts.

Policy Statements: Generic Policies

You are expected to attend all class sessions.  If you miss a class you are responsible for getting the material you missed.  Late work is equivalent to not doing the assignment.  Exceptions (rarely approved) may be granted in emergency situations.