Further applications of programming techniques, introducing the fundamental concepts of data structures and algorithms. Topics include data structures including stacks, queues, linked lists, hash tables, trees, and graphs, searching, sorting, recursion, and algorithmic analysis. Programs will be implemented in an appropriate object oriented language. This course is included in the Field of Study Curriculum for Computer Science. 48 lecture hours + 32 laboratory hours

Upon completion, students will be able to:

  • Design and develop programs that implement basic data structures, including stacks, queues, linked lists, hash tables, trees, and graphs
  • Apply recursive techniques and algorithms to solve problems
  • Implement searching and sorting algorithms
  • Understand algorithm efficiency, Big-O notation, and why it should be considered in programming
  • Analyze and select appropriate data structures to implement a solution to a problem
  • Design and implement data structures using classes and incorporating object-oriented concepts
  • Demonstrate best practices of software development including testing, validation, and documentation

Grade Basis: L
Credit Hours: 4