Advanced Algorithmic Topics (ΠΛ3)

Από Wiki Τμήματος Μαθηματικών

General

School School of Science
Academic Unit Department of Mathematics
Level of Studies Graduate
Course Code ΠΛ3
Semester 1
Course Title Advanced Algorithmic Topics
Independent Teaching Activities Lectures (Weekly Teaching Hours: 3, Credits: 7.5)
Course Type Specialization
Prerequisite Courses

Undergraduate courses in Data structures and Algorithms (optionally a course in Discrete mathematics)

Language of Instruction and Examinations

Greek

Is the Course Offered to Erasmus Students Yes (in English)
Course Website (URL) See eCourse, the Learning Management System maintained by the University of Ioannina.

Learning Outcomes

Learning outcomes

The goal of this course is the deeper understanding of the design and analysis of algorithms and address specific classes of problems and algorithms to solve them as well as the introduction of students to critical thinking and research process. A detailed examination of advanced methods of analysis and design of algorithms is done during the course. The analysis of an algorithm studies ways of finding its complexity. For the design of an algorithm for a problem we discuss basic design methods such as: greedy methods, dynamic programming, backtracking, recursion, exhaustive search of solution space, and branch and bound. We examine algorithms for problem categories such as sorting, searching, selection, graphs processing, integers and polynomials arithmetic, algorithms in matrices, and string handling algorithms. Complexity classes such as P, NP, NP-complete are defined. Some specific topics are also presented. After completing the course the student:

  • Can analyze an algorithm
  • Can select the most effective algorithm between algorithms for solving a problem.
  • Has a good understanding of design methods and can design efficient algorithms for solving a problem.
  • Knows algorithms to solve basic categories of problems and can use them as a building block for the design of other algorithms.
General Competences
  • Independent work
  • Bibliographic search
  • Complexity analysis of an algorithm
  • Effective selection of an algorithm to solve a problem
  • Design of efficient algorithms for the solution of a problem

Syllabus

  • Complexity of algorithms
  • Asymptomatic complexity
  • Complexity analysis of algorithms
  • Methods of algorithm design (divide and conquer greedy method, dynamic programming, backtracking, recursion, exhaustive search, branch and bound, etc.)
  • Problems categories and corresponding algorithms (sorting, searching, selection, graph algorithms, sorting networks, matrix algorithms, integers and polynomials arithmetic, string processing, computational geometry, etc.)
  • Complexity classes P, NP, NP-complete, etc.
  • Specific topics

Teaching and Learning Methods - Evaluation

Delivery

Face to face

Use of Information and Communications Technology

Yes

Teaching Methods
Activity Semester Workload
Lectures 39
Self study 78
Exercises 70.5
Course total 187.5
Student Performance Evaluation

Final examination (40%) comprised of:

  • questions about the design and analysis of algorithms and their properties
  • questions requiring critical thinking

Exercises: design, analysis, implementation, algorithm properties (30%). Presentations of related issues (30%).

Attached Bibliography

  • Cormen, Leiserson and Rivest, Introduction to Algorithms, MIT Press, 1990. (επίσης μεταφρασμένο από τις Πανεπιστημιακές Εκδόσεις Κρήτης)
  • Δομές δεδομένων, αλγόριθμοι και εφαρμογές c++, Sahnii Sartaj, Εκδόσεις α. Τζιόλα
  • Αλγόριθμοι σε C++, μέρη 1-4: θεμελιώδεις έννοιες, δομές δεδομένων, ταξινόμηση, αναζήτηση, Robert Sedgewick, Εκδόσεις Κλειδάριθμος
  • Αλγοριθμοι σε C, μέρη 1-4: θεμελιώδεις έννοιες, δομές δεδομένων, ταξινόμηση, αναζήτηση, Robert Sedgewick, Εκδόσεις Κλειδάριθμος
  • Mark Allen Weiss, Data Structures & Algorithm Analysis in Java, Addison-Wesley
  • Clifford A. Shaffer, Data Structures and Algorithm Analysis, ebook, http://people.cs.vt.edu/shaffer/Book/
  • A. Aho, J. Hopcroft, J. Ullman, (1983). Data Structures and Algorithms, Addison-Wesley.
  • Baase, S., Computer Algorithms - Introduction to Design and Analysis, Second Edition, , Addison Wesley, Reading, Massachusetts, 1988.
  • Knuth, D., The Art of Computer Programming - Vol. 1 Fundamental Algorithm, Addison Wesley, Reading, Massachusetts, 1973.
  • Knuth, D., The Art of Computer Programming - Vol. 2 SemiNumerical Algorithm, Addison Wesley, Reading, Massachusetts, 1973.
  • Knuth, D., The Art of Computer Programming - Vol. 3 Sorting and Searching, Addison Wesley, Reading, Massachusetts, 1973.