CIS 385 Data Structures and Algorithms (3)

Catalog Description:

Data and procedural abstraction for larger programs. Using the Java language for programming, topics include analysis of algorithms and the implementation of various internal dynamic data structures including strings, linked lists, queues, trees, and networks. These data structures are then used in applications including simulations, parsing, searching and sorting, and others. (Offered fall semester only.)


CIS 284 Computer Programming II

Required Course Materials:

John Lewis and Joe Chase, Java Software Structures: Designing and Using Data Structures, 4th edition, Pearson, 2014 (ISBN: 978-0133250121)

Course Coordinator:

Gene Rohrbaugh, Ph.D., Professor of Computer Science

Course Audience:

Required by Information Science majors. Open to all students.

Course Objectives:


Students who successfully complete this course will be able to:

  1. design and implement Java applications, both individually and as a member of a team,
  2. propose and implement appropriate data structures and algorithms for specific problems,
  3. evaluate alternative data structures and algorithms for a given problem,
  4. implement these data structures and algorithms in a modern programming language (Java),
  5. analyze the time complexity of recursive and iterative algorithms and express that complexity using Big-O notation,
  6. classify the performance of an algorithm based on empirical data,
  7. design and implement empirical tests for program efficiency, and
  8. produce thorough, accurate, and concise internal and external documentation for code.


  1. Introduction, UML, review of object-oriented programming
  2. Analysis of algorithms
  3. Collections
  4. Linked data structures
  5. Queues
  6. Lists
  7. Recursion
  8. Searching and sorting
  9. Trees
  10. Binary search trees
  11. Priority queues and heaps
  12. Hashes


Revised: October 2013 (textbook); February 2013 (course renumbering); Spring 2012 (textbook, objectives, topics); July 2011 (catalog description)

Return to Course Index