Στόχος μαθήματος: η εισαγωγή των φοιτητών σε θεμελιώδεις αλγοριθμικές έννοιες και τεχνικές. Ύλη: Βασικά στοιχεία σχεδιασμού και ανάλυσης αλγορίθμων, αποδοτικότητα αλγορίθμων, ασυμπτωτικός συμβολισμός, ορθότητα αλγορίθμων, βασικές δομές δεδομένων, ουρές προτεραιότητας και εφαρμογή τους στην ταξινόμηση στοιχείων (heapsort). Γραφήματα και αλγόριθμοι γραφημάτων, συνεκτικότητα και διάτρεξη γραφήματος, αναζήτηση πρώτα-κατά- βάθος, αναζήτηση πρώτα-κατά-πλάτος, ακυκλικά γραφήματα, τοπολογική διάταξη. Μέθοδος «Διαίρει & Βασίλευε» και εφαρμογές της στην ταξινόμηση στοιχείων (mergesort), αναδρομή και επίλυση αναδρομικών σχέσεων. Μέθοδοι απληστίας και δυναμικού προγραμματισμού και εφαρμογής τους σε προβλήματα βελτιστοποίησης: ελάχιστα γεννητικά δένδρα, συντομότερες διαδρομές, ροές δικτύων. Εισαγωγή σε επιλεγμένα θέματα (προσεγγιστικοί αλγόριθμοι, στοιχεία γραμμικού προγραμματισμού, τυχαιοποιημένοι αλγόριθμοι).