Section outline
-
-
Εδώ αναρτώνται οι γενικές ανακοινώσεις από τους διδάσκοντες προς τους εγγεγραμμένους φοιτητές, οι οποίοι τις λαμβάνουν και στην ηλεκτρονική τους διεύθυνση.
-
Σε αυτό το forum, μπορεί οποιοσδήποτε εγγεγραμμένος φοιτητής να αναρτά ερωτήσεις σχετικές με το μάθημα και να λαμβάνει απαντήσεις από τους διδάσκοντες. Οι ερωτήσεις και οι απαντήσεις θα είναι διαθέσιμες σε όλους τους φοιτητές.
Οι φοιτητές μπορούν να δηλώσουν με την εγγραφή τους αν θέλουν να ενημερώνονται για τις αναρτώμενες ερωταπαντήσεις.
-
-
- Δημήτρης Φωτάκης, Αναπλ. Καθηγητής ()
- Δώρα Σούλιου, Ε.ΔΙ.Π ()
Επικοινωνία και Πληροφορίες
- Μπορείτε να απευθύνετε τις ερωτήσεις σας στη διεύθυνση: .
Βοηθοί Διδασκαλίας
- Αλβέρτος Καλαβάσης, Υ.Δ. ()
- Δημήτρης Κελέσης, Υ.Δ. ()
- Παναγιώτης Πατσιλινάκος, Υ.Δ. ()
- Ελένη Ψαρουδάκη, Υ.Δ. ()
Βοηθοί Γραπτών Ασκήσεων
- Στέλιος Δρακονταειδής
- Μάριος Μερτζανίδης
- Αλκιβιάδης Μέρτζιος
- Παναγιώτης Ράπτης
- Θοδωρής Τσιλιβής
- Γιώργος Χιονάς
Ώρες Γραφείου Διδασκόντων
- Δημήτρης Φωτάκης: Πέμπτη 16:00 - 17:00, στο γραφείο 1.1.10, (Παλιό) Κτίριο Ηλεκτρολόγων.
- Δώρα Σούλιου: : θα ανακοινωθούν.
-
Οι διαλέξεις του μαθήματος γίνονται κάθε Δευτέρα 15:00 - 17:00 και κάθε Πέμπτη 17:00 - 19:00, στο Αμφ. 1, στο νέο κτήριο της ΣΗΜΜΥ.Οι πρώτες δύο διαλέξεις του μαθήματος θα γίνουν τη Δευτέρα 11/10, 15:00 - 17:00, και την Πέμπτη 14/10, 17:00 - 19:00, διαδικτυακά (μέσω Webex).
Στη συνέχεια, οι διαλέξεις του μαθήματος θα γίνονται δια ζώσης, με ταυτόχρονη αναμετάδοση μέσω Webex (εφόσον το τελευταίο κριθεί απαραίτητο) στα παρακάτω links.
- Webex link για τις αναμεταδόσεις κάθε Δευτέρα, 15:00 - 17:00.
- Webex link για τις αναμεταδόσεις κάθε Πέμπτη, 17:00 - 19:00
Κάθε Πέμπτη γίνονται πρόσθετες διαλέξεις για τους μεταπτυχιακούς φοιτητές. Σχετικά με το περιεχόμενο και το πρόγραμμα των διαλέξεων, δείτε τη σελίδα του μεταπτυχιακού μαθήματος.
-
Σημειώσεις - Συμπληρωματικό Υλικό- Προγραμματιστικές Ασκήσεις: Μια απλή συνάρτηση σε C για να διαβάζετε γρήγορα την είσοδο όταν αυτή αποτελείται από μη αρνητικούς ακέραιους και τα testcases είναι πολύ μεγάλα.
- Σύντομη Εισαγωγή στη Θεωρία Γραφημάτων (σημειώσεις του Δ. Φωτάκη).
- Συμπληρωματικές σημειώσεις του Δ. Φωτάκη. Καλύπτουν μόνο ένα μέρος της ύλης του μαθήματος.
- Ένα ενδιαφέρον άρθρο από τον Bernard Chazelle: The Algorithm: Idiom of Modern Science.
- Ένα ενδιαφέρον άρθρο από τον Jeff Ullman σχετικά με την θεωρητική και την πειραματική αξιολόγηση των αλγορίθμων: Experiments as Research Validation – Have We Gone too Far?
- Ένα review από τους Andrew Goldberg και Robert Tarjan των γνωστών αποδοτικών αλγόριθμων για το πρόβλημα της Μέγιστης Ροής. Το review είναι εξαιρετικά ενδιαφέρον, το ίδιο και το video για τη σημασία και τις εφαρμογές του προβλήματος.
- Ένα ενδιαφέρον άρθρο για τον Donald Knuth: The Yoda of Silicon Valley.
- Μια ενδιαφέρουσα παρουσίαση για το πως αρχικοποιούμε έναν πίνακα σε σταθερό χρόνο.
Προτεινόμενες Ασκήσεις (με τις λύσεις τους) και Παραδείγματα
- 1η σειρά: Ασυμπτωτικός συμβολισμός, αναδρομικές σχέσεις, ταξινόμηση.
- 2η σειρά: Άπληστοι αλγόριθμοι, δυναμικός προγραμματισμός.
- 3η σειρά: Αλγόριθμοι γραφημάτων, Ελάχιστο Συνδετικό Δέντρο.
- 4η σειρά: Συντομότερα Μονοπάτια, Μέγιστη Ροή, Αναγωγές.
- 5η σειρά: Παραδείγματα αναγωγών (διαφάνειες).
Βιβλιογραφία
- Thomas Cormen, Charles Leiserson, Ronald Rivest and Cliff Stein: Introduction to Algorithms, 3rd edition, MIT Press, 2009.
- J. Kleinberg, E. Tardos: Algorithm Design, Addison-Wesley, 2005.
- S. Dasgupta, C. H. Papadimitriou, and U. V. Vazirani: Algorithms, MacGraw-Hill, 2006 (Μπορείτε να βρείτε draft έκδοση του βιβλίου αυτού εδώ).
- J. Edmonds. How to Think About Algorithms. Cambridge University Press, 2008.
- J. Erickson. Algorithms, 1st edition, 2019.
- G. Brassard, P. Bratley: Algorithmics: Theory and Practice, Prentice-Hall, 1988.
- Sara Baase, Allen Van Gelder, Computer Algorithms: Introduction to Design and Analysis, 3rd edition, Addison Wesley Longman, 2000.
- Alfred V. Aho, John E. Hopcroft, The Design and Analysis of Computer Algorithms, Addison-Wesley Series in Computer Science and Information Processing, 1974.
- Dexter C. Kozen, The Design and Analysis of Algorithms, Springer, 1991.
- A. Levitin: Ανάλυση και Σχεδίαση Αλγορίθμων, Εκδόσεις Τζιόλα, 2007.
- G. J. E. Rawlings: Αλγόριθμοι: Ανάλυση και Σύγκριση, Εκδόσεις Κριτική, 2004.
Βιντεοσκοπημένες Διαλέξεις - Ιστοσελίδες Παλαιότερων Ετών
- Στην ιστοσελίδα του μαθήματος για το ακαδ. έτος 2020-2021, μπορείτε να βρείτε τις περυσινές βιντεοσκοπημένες διαλέξεις και συνδέσμους για τις ιστοσελίδες του μαθήματος σε προηγούμενες χρονιές.
-
- Διάλεξη 11/10/2021: Εισαγωγή και διαδικαστικά. Εισαγωγικές έννοιες, ασυμπτωτική εκτίμηση υπολογιστικής πολυπλοκότητας.
- Διάλεξη 14/10/2021: Ασυμπτωτικός Συμβολισμός (εκτενής επανάληψη).
- Διάλεξη 18/10/2021: Αποδοτικοί αλγόριθμοι, fine-grained complexity (απλή αναφορά, δείτε διαφάνειες, διαφάνειες και survey, για περισσότερες πληροφορίες). Δομές δεδομένων, abstract data types, λεξικό, hash tables (δείτε σημειώσεις και εκτενείς σημειώσεις για περισσότερες πληροφορίες) ουρές προτεραιότητας, σωρός (απλή αναφορά). Union - Find. Δείτε και τις βιντεοσκοπήσεις των αντίστοιχων περυσινών διαλέξεων: 15/10/2020 και 19/10/2020.
- Διάλεξη 21/10/2021: Union - Find. Λίγο περισσότερες δομές δεδομένων: Range Sum Queries και Binary Indexed Trees, Range Minimum Queries και Lowest Common Ancestor. Δείτε και τις βιντεοσκοπήσεις της αντίστοιχης περυσινής διάλεξης: 22/10/2020.
- Διάλεξη 25/10/2021: Range Minimum Queries και Lowest Common Ancestor. Ταξινόμηση σε γραμμικό χρόνo.
- Διάλεξη 1/11/2021:Σύντομη επανάληψη συγκριτικών μεθόδων ταξινόμησης. Ταξινόμηση σε γραμμικό χρόνo (links με σχετικό υλικό: 1, 2, 3, 4, 5). Αλγόριθμοι Διαίρει-και-Βασίλευε: mergesort, master theorem. Δείτε και τις βιντεοσκοπήσεις των αντίστοιχων περυσινών διαλέξεων: 26/10/2020 και 29/10/2020.
- Διάλεξη 4/11/2021: Master theorem και εφαρμογές. Πλησιέστερο ζεύγος σημείων. Quicksort.
- Διάλεξη 8/11/2021: Πιθανοτική Quicksort. Το πρόβλημα της επιλογής. Ντετερμινιστική επιλογή σε γραμμικό χρόνο. Δείτε και τις βιντεοσκοπήσεις των αντίστοιχων περυσινών διαλέξεων: 2/11/2020, 5/11/2020 και 9/11/2020.
- Διάλεξη 11/11/2021: Αναζήτηση: Γραμμική αναζήτηση, δυαδική αναζήτηση, αναζήτηση με παρεμβολή. Σημειώσεις με την θεωρητική ανάλυση της αναζήτησης με παρεμβολή. Εφαρμογές δυαδικής αναζήτησης σε προβλήματα βελτιστοποίησης.
- Διάλεξη 18/11/2021: Άπληστοι Αλγόριθμοι.
- Διάλεξη 22/11/2021: Άπληστοι Αλγόριθμοι. Δυναμικός Προγραμματισμός.
- Διάλεξη 25/11/2021: Δυναμικός Προγραμματισμός.
- Διάλεξη 29/11/2021: Δυναμικός Προγραμματισμός.
- Διάλεξη 2/12/2021: Περισσότερα παραδείγματα και ασκήσεις σε δυναμικός προγραμματισμό. Δείτε ακόμη το 1ο πρόβλημα από μια παλιά σειρά προγραμματιστικών ασκήσεων.
- Διάλεξη 9/12/2021: Αναζήτηση κατά Πλάτος (BFS) και Αναζήτηση κατά Βάθος (DFS) (γρήγορη επανάληψη - για μια πιο αναλυτική παρουσίαση, δείτε τις περυσινές διαλέξεις: 3/12/2020 και 7/12/2020). Εφαρμογές: αναγνώριση διμερούς γραφήματος, υπολογισμός σημείων κοπής και γεφυρών, τοπολογική ταξινόμηση, υπολογισμός ισχυρά συνεκτικών συνιστωσών. Ελάχιστο Συνδετικό Δέντρο: άπληστος αλγόριθμος, ορθότητα.
- Διάλεξη 13/12/2021: Ελάχιστο Συνδετικό Δέντρο: άπληστος αλγόριθμος, ορθότητα (επανάληψη). Αλγόριθμοι Kruskal, Prim, Boruvka. Ασκήσεις (μοναδικότητα, bottleneck spanning tree, second best spanning tree). Δείτε και τις περυσινές διαλέξεις: 7/12/2020 και 10/12/2020.
- Διάλεξη 16/12/2021: Συζήτηση 2ης σειράς γραπτών ασκήσεων. Συντομότερα μονοπάτια από μία αρχική κορυφή: βασικές έννοιες.
- Διάλεξη 20/12/2021: Συντομότερα μονοπάτια από μία αρχική κορυφή: Αλγόριθμος Bellman-Ford (επανάληψη), συντομότερα μονοπάτια σε DAG, αλγόριθμος Dijkstra. Ασκήσεις.
- Διάλεξη 21/12/2021: Συντομότερα μονοπάτια για όλα τα ζεύγη κορυφών: αλγόριθμος Floyd-Warshall, αλγόριθμος Johnson. Μέγιστη ροή - ελάχιστη τομή.
- Διάλεξη 10/1/2022: Μέγιστη ροή - ελάχιστη τομή: Αλγόριθμος Ford-Fulkerson, βελτιώσεις Edmonds-Karp. Μηχανές Turing και Υπολογισιμότητα.
- Διάλεξη 11/1/2022: Μηχανές Turing και Υπολογισιμότητα. Υπολογιστική Πολυπλοκότητα. Αναγωγές.
- Διάλεξη 13/1/2022: Αναγωγές. Μη Ντετερμινισμός.Η κλάση NP.
- Διάλεξη 17/1/2022: NP-Πληρότητα και NP-πλήρη προβλήματα. Παραδείγματα Αναγωγών.
- Διάλεξη 20/1/2022: Παραδείγματα Αναγωγών. Συζήτηση για εξετάσεις.
-
- Θα ανακοινωθούν τρεις (3) σειρές γραπτών ασκήσεων και τρεις (3) σειρές προγραμματιστικών ασκήσεων.
- Οι γραπτές ασκήσεις υποβάλλονται στη σελίδα του μαθήματος, στο helios. Δεν γίνεται δεκτή η παράδοση ασκήσεων με e-mail.
- Οι προγραμματιστικές ασκήσεις υποβάλλονται (source code) στον grader, και αξιολογούνται ηλεκτρονικά. Για την υποβολή, θα χρησιμοποιήσετε το login name με το οποίο έχετε κάνει enroll στο μάθημα. Τα προγράμματά σας πρέπει να είναι σε C/C++, να διαβάζουν την είσοδο από το standard input και να τυπώνουν την έξοδο στο standard output. Μια υποβολή θεωρείται επιτυχής (και συνεχίζει στο στάδιο της αξιολόγησης) αν "περάσει" επιτυχώς τα επιλεγμένα test cases για το αντίστοιχο ερώτημα. Η αξιολόγηση γίνεται με αντίστοιχα (κοινά για όλους, αλλά διαφορετικά από αυτά που ελέγχονται κατά την υποβολή) test cases, μετά την λήξη της προθεσμίας. Με κάθε άσκηση, θα δίνεται και ένας αριθμός test cases (με τις απαντήσεις τους), τα οποία μπορείτε να χρησιμοποιήσετε για προκαταρκτικό έλεγχο των λύσεων σας.
- Συνεργασία επιτρέπεται και μάλιστα ενθαρρύνεται (εάν γίνεται σωστά, π.χ. αφού αφιερώσετε ικανό χρόνο ατομικής προσπάθειας), αλλά τελικά κάθε φοιτητής πρέπει να διατυπώσει μόνος του τη λύση. Πανομοιότυπες διατυπώσεις θα εκλαμβάνονται ως αντιγραφή και δεν θα προσμετράται ο βαθμός τους, ενώ πιθανόν να υπάρξουν συνέπειες για όλες τις σειρές ασκήσεων.
Εκφωνήσεις Γραπτών Ασκήσεων
- 1η σειρά γραπτών ασκήσεων. Προθεσμία υποβολής: 18/11/2021.
- 2η σειρά γραπτών ασκήσεων. Προθεσμία υποβολής: 14/12/2021.
- 3η σειρά γραπτών ασκήσεων. Προθεσμία υποβολής: 9/2/2022.
Εκφωνήσεις Προγραμματιστικών Ασκήσεων
- 1η σειρά προγραμματιστικών ασκήσεων (αρχεία εισόδου). Προθεσμία υποβολής: 30/11/2021.
- 2η σειρά προγραμματιστικών ασκήσεων (αρχεία εισόδου). Προθεσμία υποβολής: 6/1/2022.
- 3η σειρά προγραμματιστικών ασκήσεων (αρχεία εισόδου). Προθεσμία υποβολής: 8/3/2022.
-
-
Κάθε φοιτητής μπορεί να κάνει μία επιλογή. Οι διαθέσιμες θέσεις ανά διάλεξη ανανεώνονται σε πραγματικό χρόνο. Μπορείτε να αλλάξετε την επιλογή σας. Η συγκεκριμένη επιλογή αφορά αποκλειστικά τις διαλέξεις 10 και 11, που θα γίνουν δια ζώσης την Πέμπτη 18 Νοεμβρίου, 17:00 - 19:00, και τη Δευτέρα 22 Νοεμβρίου, 15:00 - 17:00, στο Αμφ. 1. Όλοι όσοι παρακολουθούν δια ζώσης υποχρεούνται να ακολουθούν τις οδηγίες της Σχολής (https://www.ece.ntua.gr/gr/announcement/979) και να φέρουν μαζί τους τα αντίστοιχα πιστοποιητικά/βεβαιώσεις.
-