East Carolina University
Department of Computer Science
CSCI 2540
Data Abstraction and Object-Oriented Data Structures
Standard Syllabus
3 credits |
Prepared by Qin Ding, May 2018 |
Catalog entry
P: CSCI 2530; P/C: CSCI 2405. Data abstractions including stacks,
queues, graphs, tables, sets and domain-specific data
abstractions. Implementations of data abstractions in
object-oriented style and principles of class design.
Course summary
This course concentrates on data abstractions such as lists,
stacks, queues, graphs, tables, and sets, and implementations in
object-oriented style, including principles of class
design. Other issues include: elementary algorithm analysis;
analysis of tradeoffs in alternative implementations of abstract
data types, and programming skills associated with building
multimodular programs that use class libraries. This course is
currently taught using Java.
Course topics
-
Fundamental concepts of object-oriented programming, including inheritance, polymorphism, dynamic binding, abstract classes, generic class and interface, as well as exceptional handling and file input/output.
-
Abstract data types, including lists, stack, queues, trees, tables, graphs, maps, and sets.
-
Implementations choices for various abstract data types.
-
Elementary algorithm analysis and various sorting algorithms.
-
Building, testing and debugging programs, including using JUnit to test programs.
Student learning outcomes
-
Simulate, implement and apply various abstract data types, including lists, stacks, queues, trees, graphs, maps, and sets.
-
Choose and justify the appropriate abstract data structure for a given computational problem.
-
Explain algorithmic issues related to data structures, and how the choice of implementation of an abstract data structure influences the efficiency of algorithms.
-
Employ programming language principles, including recursion, to develop algorithms.
-
Implement multimodular program(s) that involve the use of class libraries for one or more abstract data structures.
Textbook
Data Abstraction & Problem Solving with Java: Walls & Mirrors (3/e), J. Prichard and F. Carrano, Addison Wesley, 2011
Grading
Grading will be based on a midterm, a final exam, assignments, and quizzes. The midterm exam counts 25%,
final exam 30%, assignments and quizzes 45%.
Grade cutoffs are 94% for an A, 90% for an A-, 87% for a B+, 83% for a B, 80% for a B-, 77% for a C+, 73% for a C, 70% for a C-, 67% for a D+, 63 for a D, 60% for a D-, below 60% for a F.
Grade meanings
Grade |
Meaning |
A |
Achievement substantially exceeds basic course expectations |
A− |
|
B+ |
|
B |
Achievement exceeds basic course expectations |
B− |
|
B+ |
|
C |
Achievement adequately meets basic course expectations |
C− |
|
D+ |
|
D |
Achievement falls below basic course expectations |
D− |
|
F |
Failure – achievement does not justify credit for course |