Overview
The design and analysis of efficient data structures and algorithms has long been recognized as a key subject in computing and information systems. This course discusses the fundamental concepts, principles, and techniques for effective programming, algorithm analysis, and design. Within the object-oriented paradigm, this course uses the object concept, software engineering design patterns, and their programming features to deal with object structure analysis and design. It covers the traditional data structures and algorithmic design patterns, and provides an object-oriented approach to abstract design and algorithm analysis.
Objectives
This course is designed to
- introduce the concepts, principles, and approaches of object and data structures, design patterns, and algorithm development and programming.
- perform object structure analysis, design, and application through the use of object concept and its programming features.
- provide both the traditional data structures and object-oriented approach to advanced abstract design and algorithm analysis.
Learning outcomes
Upon successful completion of this course, you should be able to
- explain key concepts of both software engineering and algorithm design.
- interpret, analyze, and design algorithms expressed in pseudo-code.
- analyze the running time of algorithms.
- explain and apply software engineering design patterns.
- explain and apply algorithmic design patterns.
- describe the principles and abstract data types (ADTs) of the most important data structures.
- explain the principles of the most widely used search, sort, text processing, and graph algorithms.
- use data structures and algorithms to model and solve problems.
- implement the abstract data types (ADTs), data structures, and algorithms in Java.
Evaluation
To receive credit for COMP 504, you must achieve a course composite grade of at least B– (70 percent), an average grade of at least 60 percent on the assignments, and a grade of at least 60 percent on the final exam.
The weighting of the composite grade is as follows:
Activity | Weight |
Assignment 1 | 15% |
Assignment 2 | 20% |
Assignment 3 | 20% |
Participation | 5% |
Final Examination | 40% |
Total | 100% |
Materials
Digital course materials
Links to the following course materials will be made available in the course:
Goodrich, M. T., Tamassia, R., & Goldwasser, M. H. (2014). Data structures and algorithms in Java™ (6th ed.). John Wiley & Sons.