Θεμελιώδη Θέματα Επιστήμης Υπολογιστών


Περιγραφή

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

Θεωρία. Υπολογισιμότητα και πολυπλοκότητα. Αποδοτικότητα αλγορίθμων. Μοντελοποίηση υπολογισμού: αυτόματα, μηχανές Turing, μηχανές τυχαίας προσπέλασης (RAM). Τυπικές γλώσσες και γραμματικές. Λογική για την επιστήμη των υπολογιστών. Αλγόριθμοι: τεχνικές και στρατηγικές (διαίρει-και-κυρίευε, άπληστη μέθοδος δυναμικός προγραμματισμός), αριθμητικοί υπολογισμοί (ΜΚΔ, ύψωση σε δύναμη, πολλαπλασιασμός ακεραίων και πινάκων), αλγόριθμοι γράφων και δικτύων (συντομότερες διαδρομές, ελάχιστα συνδετικά δένδρα), αλγόριθμοι συμβολοσειρών (κωδικοποίηση, συμπίεση, αναγνώριση).

Διαχείριση δεδομένων. Εισαγωγή στις βάσεις και τα μοντέλα δεδομένων. Το μοντέλο οντοτήτων-συσχετίσεων. Σχεσιακό μοντέλο και σχεσιακή άλγεβρα. Εισαγωγή στη γλώσσα SQL. Εισαγωγή στη σχεδίαση και ανάπτυξη εφαρμογών. Σύγχρονες τάσεις: ροές δεδομένων, κατανεμημένες βάσεις δεδομένων, μοντέλο υπολογισμού map-reduce.

Τεχνητή νοημοσύνη. Εισαγωγή στην τεχνητή νοημοσύνη: ιστορικά στοιχεία, τεστ του Turing, σύγχρονη τεχνητή νοημοσύνη και εφαρμογές, ορολογία και περιοχές τεχνητής νοημοσύνης. Επίλυση προβλημάτων με μεθόδους τεχνητής νοημοσύνης: αναπαράσταση προβλημάτων σε γράφους, αναζήτηση λύσης, αλγόριθμοι εύρεσης λύσης (κατά βάθος, κατά πλάτος, επαναληπτική εκβάθυνση), ευριστικοί αλγόριθμοι εύρεσης λύσης (hill climbing, best first, branch and bound, A*), αλγόριθμοι για παίγνια (min-max, alpha-beta). Συμβολική τεχνητή νοημοσύνη: από τη λογική στην τεχνητή νοημοσύνη, τυπική αναπαράσταση γνώσης, γράφοι γνώσης, αυτόματη συλλογιστική. Μηχανική μάθηση: ανάλυση δεδομένων, ταξινόμηση και πρόβλεψη, perceptrons, γραμμική παλινδρόμηση, ταξινόμηση με ομαδοποίηση.