East Carolina University
Department of Computer Science
CSCI 2540
Data Abstraction and Object-Oriented Data Structures
Standard Syllabus
4 credits |
Prepared by Qin Ding, May 2021 |
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 will also cover
fundamentals of Java programming language.
Course topics
- Fundalmentals of Java programming language.
- 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 |