Εύη Παπαϊωάννου
ΠΠΣ Διαχείρισης Πολιτισμικού Περιβάλλοντος και Νέων Τεχνολογιών, Τμήμα Ιστορίας-Αρχαιολογίας, Πανεπιστήμιο Πατρών
Αρχική › Εισαγωγή στους Αλγόριθμους › Γενικές πληροφορίες

Εισαγωγή στους Αλγόριθμους

Γενικές πληροφορίες

Κωδικός μαθήματος: Υ204
Εξάμηνο: 2ο
Ακαδημαϊκό ημερολόγιο 2020-2021

Ένας αλγόριθμος είναι μια ακριβής "συνταγή" που καθορίζει την ακολουθία βημάτων που απαιτούνται για να λυθεί ένα πρόβλημα.

Στόχος του μαθήματος είναι η εξοικείωση με βασικά χαρακτηριστικά (που δεν είναι εξαιρετικά δύσκολα ή πολύπλοκα) μεθόδων επίλυσης προβλημάτων καθώς και η κατανόηση θεμελιωδών και πρακτικά χρήσιμων σχετικών εννοιών.

  • Αναζητώντας κάποια πληροφορία στον Παγκόσμιο Ιστό, έχει τύχει να καταλήξετε από εκατομμύρια έγγραφα σε 2 ή 3 που είναι σχετικότερα με αυτό που ψάχνετε;

  • Έχετε αποθηκεύσει ή μεταδώσει μεγάλες ποσότητες πληροφορίας χωρίς ούτε ένα λαθάκι – παρά τις ηλεκτρομαγνητικές παρεμβολές που επηρεάζουν όλες τις ηλεκτρονικές συσκευές;

  • Έχετε ολοκληρώσει επιτυχώς μια ηλεκτρονική τραπεζική συναλλαγή, ακόμα κι αν χιλιάδες άλλοι πελάτες χρησιμοποιούν ταυτόχρονα τον ίδιο εξυπηρετητή (server);

  • Έχετε στείλει κάποια απόρρητη πληροφορία (για παράδειγμα, τον αριθμό της πιστωτικής σας κάρτας) ασφαλώς πάνω από καλώδια που είναι σε «κοινή θέα» πολλών άλλων υπολογιστών;

  • Έχετε χρησιμοποιήσει συμπίεση για να μικρύνετε το μέγεθος μιας εικόνας προκειμένου να την επισυνάψετε και να την στείλετε με email;

  • Ή – χωρίς ίσως καν να το σκεφτείτε – έχετε χρησιμοποιήσει τεχνητή νοημοσύνη σε κάποια φορητή συσκευή (π.χ., κινητό τηλέφωνο) που διορθώνει από μόνη της το κείμενο που πληκτρολογείτε στο μικροσκοπικό της πληκτρολόγιο;

Πίσω από αυτές τις - δεδομένες πλέον - καθημερινές δραστηριότητες του σύγχρονου πολιτισμού υπάρχουν απλές, εντυπωσιακές ιδέες δηλ. "αλγόριθμοι"...

Αντικείμενο του μαθήματος είναι (1) η περιγραφή και ανάλυση τέτοιων θεμελιωδών τεχνικών (δηλ., αλγορίθμων) που τις συναντάμε – σχεδόν χωρίς να το αντιλαμβανόμαστε – καθημερινά στη ζωή και τις δραστηριότητές μας και (2) η εισαγωγή στην ανάλυση αλγορίθμων για μελέτη ζητημάτων ορθότητας και απόδοσης, δηλ., για να διαπιστώνουμε αν οι αλγόριθμοι που σχεδιάζουμε λειτουργούν σωστά και με τι κόστος σε χρόνο, χώρο και λοιπούς πόρους.

Καταλήγοντας, επισημαίνουμε, ότι η μελέτη και εξοικείωση - σε βασικό ή και σε προχωρημένο επίπεδο - με τη σχεδίαση και ανάλυση αλγορίθμων αποτελεί αναγκαιότητα για κάθε πρόγραμμα σπουδών, προπτυχιακών και μεταπτυχιακών.

Ο Donald Knuth, εξέχων επιστήμονας στη Θεωρητική Επιστήμη των Υπολογιστών, τεκμηριώνει:

"A person well-trained in computer science knows how to deal with algorithms: how to construct them, manipulate them, understand them, analyze them. This knowledge is preparation for much more than writing good computer programs; it is a general-purpose mental tool that will be a definite aid to the understanding of other subjects, whether they be chemistry, linguistics, or music, etc. The reason for this may be understood in the following way: It has often been said that a person does not really understand something until after teaching it to someone else. Actually, a person does not really understand something until after teaching it to a computer, i.e., expressing it as an algorithm . . . An attempt to formalize things as algorithms leads to a much deeper understanding than if we simply try to comprehend things in the traditional way."

Ενδιαφέροντες σύνδεσμοι: