Generated on Tue Oct 25 10:19:18 2022

CS 272: Introduction to Data Structures (JSON)

Catalog description: Design, implementation, use of fundamental abstract data types and their algorithms: lists, stacks, queues, deques, trees; imperative and declarative programming. Internal sorting; time and space efficiency of algorithms.

Prerequisites: At least a C- in C S 172, or placement    (Catalog Link)

Credits: 4 (3+2P)

Coordinator: Huiping Cao

Textbook: Not fixed. (1) Data Structures and Other Objects Using JAVA, 4th Edition, by Michael Main, Addison Wesley, ISBN 0-132-57624-6 (or a newer edition), (2) ZyBooks
    (also: course handouts)

BS degree role: required

Course Learning Objectives

  1. LO1: Be able to implement and use lists
  2. LO2: Be able to implement and use stacks
  3. LO3: Be able to implement and use queues
  4. LO4: Be able to implement and use trees
  5. LO5: Be able to perform the run time analysis of basic algorithms using Big O notation
  6. LO6: Be able to implement, use, and analyze searching algorithms
  7. LO7: Be able to solve a problem recursively
  8. LO8: Take a problem statement from a user and convert it into a Java program that fulfills the user's needs
  9. LO9: Create object oriented Java classes that effectively separate and hide implementation details from client applications

Course Practicum Requirements

  1. Be able to use IDE to write, debug, and run Java programs
  2. Be able to define and implement classes (including generic classes) and functions using Java
  3. Be able to use inheritance mechanism in Java
  4. Be able to utilize classes, functions, and interfaces using Java
  5. For one programming task, be able to define and implement multiple classes, and a main function by utilizing different classes and functions to accomplish the task using Java

Course Topics

  1. Object oriented Java classes
  2. Generic programming
  3. Lists
  4. Stacks
  5. Queues
  6. Trees (including binary search trees, AVL trees)
  7. Running time analysis and big-O notation
  8. Recursion
  9. Searching

Course Improvement Decisions

(Course improvement decisions or recommendations from past assessments)

  1. SP19 improvements: improve initial lab work on linked lists; need better use of non-tree recursion; suggest more self-practice on big-O
  2. SP16: no specific recommendations

ABET Outcome Coverage

(Provide Mapping to ABET Student Outcomes)

  1. TBD

Other Notes

(Any important notes or issues to consider)

  1. The goal of this course is to provide students with a good knowledge of the different methodologies to organize data for their automatic processing. Upon completion of this course, participants are expected to become proficient in computer programming (in the Java programming language) using all the basic structures for data organization. In particular, the students are expected to gain the knowledge of data structure techniques and be able to
  2. Implement and use the basic data structures: classes, bags, lists, stacks, queues, heaps, hashing tables, and trees
  3. Understand and apply recursive thinking in programming
  4. Understand and implement several fundamental searching algorithms
  5. Perform running time analysis of basic algorithms in big-O
  6. Understand and use basic Java program constructs and skills which include reference variables, basic data type variables, exceptions, file operations, generic programming
  7. Take a problem statement and convert it into a Java program that fulfills the problem requirements
  8. Understand and apply the basics of programming cycle such as designing, coding, testing, and debugging through the usage of an Integrated Development Environment (IDE).