Data Structures

Base Knowledge

Java Programming, Object Oriented Programming

Teaching Methodologies

In the theoretical class, the most representative and relevant data structures are presented, analyzed and discussed. In lab classes, the students operationalize this knowledge by doing practical exercises involving the analysis, selection, implementation and testing and data structures.
Periodic lab tests allow student performance to be continuously monitored, while Seminars promote student engagement in the learning process, by allowing them to study and present a specific topic to their colleagues. Evaluation includes three components:
–   Written exam(12 points)
–   Practical laboratory tests(conducted during Lab. classes)-5 points
–   Seminar(Resarch the properties of a specific data structure, its applications and implementation aspects and then present it before the class)-3 Points
Students can chose to do a practical assessment test that replaces the lab tests.This test included programming tasks and will be given concomitantly to the written exam, according to specified conditions.

Learning Results

Understanding complexity analysis Knowing the Collection API Applying the Collection API properly
Analysing algorithms to discover their complexity
Knowing a broad spectrum of basic and advanced data structures Choosing the correct data structures according to the problem Implementing correctly the data structures and associated algorithms.

Program

1   – Introduction
1.1   – Complexity Analysis
1.2   – Generic Programming
1.3   – Collection API
2   – Fundamental Strucutures 2.1- Stacks, Queues and Trees
2.1.1   – Basic Concepts
2.1.2   – Applications – Huffman Trees
2.1.3   – Applications – Expression representation and handling (infix and postfix)
2.2   – Search Trees
2.2.1   – Basic Concepts
2.2.2   -AVL trees
2.2.3   -Red-Black trees
2.2.4   -AA trees

2.2.5   – Trees with increased arity- B-Trees 3- Hash Tables
3.1   – Basic Concepts
3.2   – Linear and quadratic probing
3.3   – Separate Chaining Hashing 4- Advanced Structures
4.1   – Binary Heap
4.2   – Splay Tree
4.3   – Disjoint Sets
In Laboratory classes, the algorithms and data structures discussed in theoretical classes will be implemented, tested and applied, using the Java programming language.

Curricular Unit Teachers

Internship(s)

NAO