East Carolina University
Department of Computer Science
CSCI 2530
Algorithms and Data Structures
Standard Syllabus
4 credits |
Prepared by Karl Abrahamson, May 2018 |
Catalog entry
P: CSCI 1010; P/C: CSCI 2400. Computational problem solving using
fundamental algorithms and physical data structures. Design and
analysis of algorithms that operate on these data structures.
Course summary
This course concentrates on physical data structures and
algorithms associated with them, including elementary algorithm
analysis. Other issues include: memory management; programming
skills associated with building small multimodular program; and
fundamental concepts of abstract data types.
This course is currently taught using C++.
Course topics
-
The C++ programming language. Control structures. Functions.
Recursion. Types and data.
-
Building, testing and debugging programs.
-
Pointers and memory management. Dynamic memory allocation
and deallocation.
-
Physical data structures, including linked lists and trees.
Balanced binary search trees. Hash tables. Queues and/or
priority queues.
-
Developing algorithms on data structures. Understanding
algorithms from a conceptual viewpoint. How to justify that
an algorithm is correct.
-
Abstract data types
-
Additional physical data structures of instructors choosing.
Student learning outcomes
-
Hand-simulate fundamental data structures including
linked lists and balanced binary search trees.
-
Determine when it is safe to free memory.
-
Explain algorithmic issues related to data structures, and how
the data structure influences the efficiency of algorithms.
-
Choose an appropriate physical data structure for a given data representation problem, based
on the kind of operations needed on the data.
-
Employ programming language principles, including recursion,
to developing algorithms.
-
Apply physical data structure concepts to the implementation
of abstract data types.
-
Implement a working multimodular program that includes an implementation
of an abstract data type.
Textbook
Online course lecture notes
Grading
Grading will be based on midterm exams, a final exam and
programming projects. The midterm exams count a total of 36%,
the final exam 20% and the programming projects 34%. Attendance
counts an additional 10%.
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 |