Course Information

This course covers the design and implementation of fundamental data structures which allow one to store collections of data with fast updates and queries. Course work involves both written exams and Java programming assignments.

Prerequisites

$C+$ or better in EN.600.120 OR EN.601.220 OR EN.600.107 OR EN.601.107 OR EN.500.112 OR (EN.500.113 AND EN.500.132) OR (EN.500.114 AND EN.500.132) or by permission of instructor.

Upon successful completion of this course, you should be able to:

  1. Understand the operation of common data structures and algorithms.
  2. Use analysis techniques to choose the data structure/implementation appropriate for a given problem.
  3. Write advanced object-oriented solutions in Java to significant problems, by implementing appropriate data structures and algorithms
  4. Evaluate and compare the time complexity of functions using mathematical techniques.
  5. Design an algorithm that produces the correct results according to specified inputs and time or space complexity constraints.

This course will address the following Computer Science BS Program Student Outcomes:

  • Analyze a complex computing problem and apply principles of computing and other relevant disciplines to identify solutions. [SO1]
  • Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline. [SO2]
  • Apply computer science theory and software development fundamentals to produce computing-based solutions. [SO6]