Το μάθημα αυτό αφορά το σχεδιασμό και ανάλυση αλγόριθμων για υπολογιστικά προβλήματα, και τον τρόπο σκέψης για την ανάλυση και την ορθότητα λειτουργίας ενός αλγόριθμου καθώς και τον υπολογισμό του χρόνου εκτέλεσης του.. Ο στόχος του μαθήματος αυτού είναι να παρέχει τα εργαλεία που απαιτούνται για το σχεδιασμό και ανάλυση αλγόριθμων και εφαρμογή τους για την ανάπτυξη αλγόριθμων σε νέα προβλήματα. Παρουσιάζονται αλγόριθμοι για μια σειρά από προβλήματα κατηγοριοποιημένοι ως προς τις τεχνικές που χρησιμοποιούν όπως τεχνικές απληστίας, διαίρει και βασίλευε, δυναμικός προγραμματισμός, και άλλες, καθώς και γενικές τεχνικές σχεδιασμού και ανάλυσης.