CMPS 223, Data Structures and
Algorithms
Course Description
Catalog Description: |
Introduce
the fundamental concepts of data structures and the algorithms on the
foundation provided by the CMPS221-222 sequence within the framework of
object-oriented programming methodology.
Topics include recursion, fundamental data structures (including
stacks, queues, linked lists, hash tables, Binary trees, and graphs), and the
basics of algorithmic analysis. |
||||||||||||||||||||||||
Prerequisite: |
CMPS 222 |
||||||||||||||||||||||||
Units: |
5 |
||||||||||||||||||||||||
Coordinator: |
Woogon Chung |
||||||||||||||||||||||||
Goals: |
To
provide the students with the knowledge and understanding of: the basis for -
both data and data type abstractions, and - implementation possibilities for typical data structures, and related processing algorithms. |
||||||||||||||||||||||||
Current Text: |
Kruse and Ryba, Data Structures and Program Design in
C++ |
||||||||||||||||||||||||
Topics: |
·
[AL1] Object-oriented
design: problems are analyzed
via Object-Based Design paradigms ·
[AL2] Basic
algorithm design: Searching, Sortings are studied in depth ·
[AL1,2] Algorithms
and problem-solving: Classic techniques for algorithm design;
problem-solving in the object-oriented paradigm; application of algorithm
design techniques to a medium-sized project ·
[AL3] Basic algorithmic
analysis:
Asymptotic analysis of upper and average complexity bounds; identifying
differences among best, average, and worst
case behaviors; big "O" notation; standard complexity classes;
empirical measurements of performance; time and space tradeoffs in algorithms ·
[PF4] Recursion: The
concept of recursion; recursive mathematical functions; simple recursive
procedures; divide-and-conquer strategies; recursive backtracking;
implementation of recursion; recursion on trees and graphs ·
[AL3] Fundamental
computing algorithms: Searching algorithms, Sorting algorithms in
contiguous array, link and binary tree search and tree sorting. ·
[PF3] Fundamental
data structures: Pointers and references; linked list
structures; implementation strategies for stacks, queues, and hash table implementation strategies
for trees. · [PL6, SE8] Software
engineering: Software project management; building a mid-sized
system, in teams, with algorithmic efficiency in mind. |
||||||||||||||||||||||||
Laboratory: |
2.5-hours lab exercise to practice the
implementations.
|
||||||||||||||||||||||||
ACM/CSAB Category Content: |
|
||||||||||||||||||||||||
Oral and Written Communication: |
Students are required to submit documentation with their submitted projects. |
||||||||||||||||||||||||
Social and Ethical Issues: |
Software reuse via available libraries of
classes (such as Gnu libraries) and other open resources. Encouraged to collaborate to develop
moderate-sized project. |
||||||||||||||||||||||||
Problem Analysis: |
UML description of the problems in the
analysis phase. |
||||||||||||||||||||||||
Solution Design: |
UML description of the solution in the design phase. |
||||||||||||||||||||||||
Version & Date |
Version 2, |
||||||||||||||||||||||||
Comments |
Based on ACM curricula 2001 in the format of ABET sample course description. |