Algorithms and data structures for data science

Course info:

Semester: 2

General Foundation

ECTS: 6

Hours per week: 3

Professor: T.B.D.

Teaching style: Face to face, distance learning, homeworks and projects

Grading: 100% final exam

Activity Workload
Lectures 26
Tutorials 9
Laboratory Projects 25
Homeworks and Projects 25
Individual Study 62
Examination 3
Course total 150

Learning Results

Upon successful completion of the course, students will have obtained:

  • Knowledge of the theoretical principles of Algorithms and Data Structures and the necessity of their efficient use in an integrated application
  • Skills to design, implement and modify appropriately the most important algorithms and data structures and their variations, adapting them to the requirements of the problem addressed
  • Ability to assess and exploit the relevant programming tools for algorithmic expression as well as for data management and organization offered by contemporary as well as future programming languages, understanding the advantages and disadvantages of each language
  • Ability to understand the needs and restrictions arising in data management and organization and provide consulting for the design of the relevant solutions
  • Competent background rendering them ready to successfully participate in courses pertaining to advanced algorithms and data structures both at the theoretical and technological level

 

Skills acquired

  • Individual Work
  • Team Work
  • Research, analyze and synthesize information and data, with the use of necessary technologies
  • Advance free, creative and causative thinking
  • Introduction
  • Data and Information
  • Fundamental Concepts of Algorithms and Complexity
  • Searching and Sorting
  • Stacks and Queues
  • Lists
  • Trees
  • Graphs
  • Files and Permanent Storage

Bibliography:

  1. Goodrich, M.T, Tamassia, R., Goldwasser, M.H. (2013). Data Structures and Algorithms in Python, Wiley
  2. Horowitz, E., Sahni, S., Anderson-Freed, S. (2008), Fundamentals of Data Structures in C: 2nd Edition, Silicon Press.
  3. Melhorn, K., Sanders, P. (2014). Algorithms and Data Structures: The Basic Toolbox, Springer , 2008
  4. Schaffer, C. (2008) A Practical Introduction to Data Structures and Algorithm Analysis 3rd Edition (Java), Prentice Hall
  5. Sedgewick, R. (2005), Algorithms in C, Parts 1-4, 3rd Edition, Addison-Wesley, Κλειδάριθμος.

Online sources:

  1. 1. Algorithms and Data Structures, Robert Sedgewick and Kevin Wayne, Computer Science, Princeton, https://www.cs.princeton.edu/~rs/AlgsDS07/
  2. Data Structures web-based learning modules, Computer Science, Virginia Tech, http://courses.cs.vt.edu/csonline/DataStructures/Lessons/
  3. Stony Brook Algorithms Repository: Data Structures http://algorist.com/sections/Data_Structures.html
Learning Results - Skills acquired

Learning Results

Upon successful completion of the course, students will have obtained:

  • Knowledge of the theoretical principles of Algorithms and Data Structures and the necessity of their efficient use in an integrated application
  • Skills to design, implement and modify appropriately the most important algorithms and data structures and their variations, adapting them to the requirements of the problem addressed
  • Ability to assess and exploit the relevant programming tools for algorithmic expression as well as for data management and organization offered by contemporary as well as future programming languages, understanding the advantages and disadvantages of each language
  • Ability to understand the needs and restrictions arising in data management and organization and provide consulting for the design of the relevant solutions
  • Competent background rendering them ready to successfully participate in courses pertaining to advanced algorithms and data structures both at the theoretical and technological level

 

Skills acquired

  • Individual Work
  • Team Work
  • Research, analyze and synthesize information and data, with the use of necessary technologies
  • Advance free, creative and causative thinking
Course content
  • Introduction
  • Data and Information
  • Fundamental Concepts of Algorithms and Complexity
  • Searching and Sorting
  • Stacks and Queues
  • Lists
  • Trees
  • Graphs
  • Files and Permanent Storage
Recommended bibliography

Bibliography:

  1. Goodrich, M.T, Tamassia, R., Goldwasser, M.H. (2013). Data Structures and Algorithms in Python, Wiley
  2. Horowitz, E., Sahni, S., Anderson-Freed, S. (2008), Fundamentals of Data Structures in C: 2nd Edition, Silicon Press.
  3. Melhorn, K., Sanders, P. (2014). Algorithms and Data Structures: The Basic Toolbox, Springer , 2008
  4. Schaffer, C. (2008) A Practical Introduction to Data Structures and Algorithm Analysis 3rd Edition (Java), Prentice Hall
  5. Sedgewick, R. (2005), Algorithms in C, Parts 1-4, 3rd Edition, Addison-Wesley, Κλειδάριθμος.

Online sources:

  1. 1. Algorithms and Data Structures, Robert Sedgewick and Kevin Wayne, Computer Science, Princeton, https://www.cs.princeton.edu/~rs/AlgsDS07/
  2. Data Structures web-based learning modules, Computer Science, Virginia Tech, http://courses.cs.vt.edu/csonline/DataStructures/Lessons/
  3. Stony Brook Algorithms Repository: Data Structures http://algorist.com/sections/Data_Structures.html