Data Structures and Algorithms

The aim of the course is to introduce students to the basic concepts of Data Structures and Algorithms in order to acquire theoretical and practical knowledge that will allow the most efficient representation of data leading to high quality and documentation programs and on the other hand to product free, creative and inductive thinking. Keywords: Data Structures, Tables, Stacks, Queues, Lists, Trees, Graphs, Algorithms, Complexity, Asymptomatic Symbols, Simple Repetitive Algorithms, Searching and Classification Algorithms, Retrograde Algorithms, Greedy Algorithms, Graph Algorithms, C Programming Language.
  • Lecturer 1 : John Tsaknakis
  • Semester : Semester 3

Learning Outcomes

Upon successful completion of the course, a student will be able to:

At the knowledge level:

  1. understand the basic principles of using Data Structures and Algorithms,
  2. understand the basic concepts of Algorithms such as Representation, Analysis, and Complexity, Asymptomatic Symbols, notation, Function Classification,
  3. now the basic concepts of using basic Data Structures such as Tables, Stacks, Queues, Linked Lists, Trees and Graphs,
  4. know the basic concepts of using basic Algorithms such as Simple Repetitive, Searching and Classification, Retrospective, Greedy and Graph Algorithms,
  5. understand how the requirements of a microcosm can be converted into interdependent data,
  6. know how to effectively organize data at the physical level and how these can be grouped, stored, and executed in their basic search, sorting and updating operations.
  7. know the syntactic features of the C language in order to implement the basic Data Structures and Algorithms and the basic operations on their data,
  8. understand the basic principles of co-operation and teamwork in order to design and implement a case study.

At the skill level:

  1. be able to select in each case study the Data Structure for the most efficient data management and representation,
  2. be able to take into account the requirements of the application to design appropriate algorithms for solving problems and managing its data,
  3. use the C language properly to define the basic building blocks of Data Structures and Algorithms in order to manage their data efficiently for the benefit of the application requirements,
  4. implement programmable solutions that incorporate dynamic programming features in the implementation of Data Structures and Algorithms,
  5. design and implement with the C language simple graphical user interfaces for data structure management,
  6. develop those skills of acquiring knowledge, which he needs to continue in further studies with a high degree of autonomy.

At the level of abilities:

  1. promote free, creative and inductive thinking,
  2. adapt efficiently to the search, analysis, and synthesis of data and information using the necessary technologies,
  3. have the ability to apply the knowledge of design and implementation of Data Structures and Algorithms acquired in the design and implementation of real labor market applications,
  4. have the ability to understand new knowledge and views arising from modern developments at the forefront of the field of Data Structures and Algorithms with the aim of both continuous professional development and research activity,
  5. have the ability to solve problems in the context of the field of Data Structures and Algorithms,
  6. have the ability to apply his knowledge in a new or unknown environment, within a broader (or interdisciplinary) context, related to the field of Data Structures and Algorithms.