Data Structures
About this course
The course is an introduction to structured programming using the C programming language, where the student will start with the basic concepts of variable, data type, loop and will continue learning to structure his code correctly in functions.
Expected learning outcomes
Upon successful completion of the course the student will be able to:
- mention and describe the characteristics of the basic data structures.
- mention and describe the basic algorithms for searching and sorting data (internal and external).
- mention and describe binary trees traversal methods.
- mention basic algorithms in Graphs.
- analyze a complex problem and design the solution on an abstract level.
- analyze the quality of a solution in relation to the execution time of its individual procedures.
- Tcompose the solution of a problem based on the individual parts of the solution.
- check the correctness of a solution and to evaluate the various alternative solutions to a problem.
- Eevaluate both the quality of the design and the implementation of the solution of a problem.
- modify known algorithms so that they can be better utilized in solving a problem.
- evaluate the algorithmic solutions in relation to the execution time of the respective algorithm.
- design and write code for programs that require the use of data structures.
- use the most appropriate sorting or searching technique taking into account the expected distribution of data.
- find solutions to complex problems, to describe its algorithmic solutions in pseudo-code and / or in a flowchart, and of course to be able to encode them.
Indicative Syllabus
- Introduction to the basic concepts of data structures and algorithms.
- Accessing sequential files. Define new type or variable as a data union.
- Arrays, linearization of multidimensional arrays.
- Define the most important operations that can be performed in a stack, implemented using either static or dynamic data types.
- Queues and fundamental operations that can be defined in a queue. Queue implementation with circular array (static) and queue implementation with nodes (dynamic).
- Singly linked lists. Doubly linked lists and function definitions for basic operations.
- Two-way interconnection technique using just a single link.
- Binary tree traversal methods. Binary search trees. Balanced search trees.
- Design and implementation of appropriate data structures for specific programming problems.
- Evaluation of different data structures.
- Straight sorting methods: sort by selection, shaker sort and bubble sort.
- Quick sort technique. Sort variable-length sequences.
- Sorting files using natural merge sort. Sequential search. Binary search.
- Performance and analysis of algorithms. Time complexity. Algorithm performance comparison.
- Learn software design and implementation principles in the Dev-C ++ or CODE :: BLOCKS or MS Visual Studio environment.
Teaching / Learning Methodology
Weekly Lectures 5hr/week (if the number of students is greater than 4), else project based
Recommended Reading
TBA
Prerequisites
Basic knowledge of Computer Programming using C
Start Date
2023
End Date
2024
Apply
2023
Local Course Code
TBA
Cycle
TBA
Year of study
TBA
Language
English
Study Load
5ECTS
Mode of delivery
Written exams, class contribution, delivery of small individual projects every two weeks.
Instructors
Dr. Nikolaos Petrakis
Course coordinator
Dr. Nikolaos Petrakis
nik.s.petrakis@hmu.gr