Το μάθημα στοχεύει σε μια ολοκληρωμένη εισαγωγή των σπουδαστών σε θεμελιώδεις έννοιες και μεθόδους της Πληροφορικής. Αποτελείται από τις παρακάτω ενότητες. **Θεωρία.** Υπολογισιμότητα και πολυπλοκότητα. Αποδοτικότητα αλγορίθμων. Μοντελοποίηση υπολογισμού: αυτόματα, μηχανές Turing, μηχανές τυχαίας προσπέλασης (RAM). Τυπικές γλώσσες και γραμματικές. Λογική για την επιστήμη των υπολογιστών. Αλγόριθμοι: τεχνικές και στρατηγικές (διαίρει-και-κυρίευε, άπληστη μέθοδος δυναμικός προγραμματισμός), αριθμητικοί υπολογισμοί (ΜΚΔ, ύψωση σε δύναμη, πολλαπλασιασμός ακεραίων και πινάκων), αλγόριθμοι γράφων και δικτύων (συντομότερες διαδρομές, ελάχιστα συνδετικά δένδρα), αλγόριθμοι συμβολοσειρών (κωδικοποίηση, συμπίεση, αναγνώριση). **Διαχείριση δεδομένων.** Εισαγωγή στις βάσεις και τα μοντέλα δεδομένων. Το μοντέλο οντοτήτων-συσχετίσεων. Σχεσιακό μοντέλο και σχεσιακή άλγεβρα. Εισαγωγή στη γλώσσα SQL. Εισαγωγή στη σχεδίαση και ανάπτυξη εφαρμογών. Σύγχρονες τάσεις: ροές δεδομένων, κατανεμημένες βάσεις δεδομένων, μοντέλο υπολογισμού map-reduce. **Τεχνητή νοημοσύνη.** Εισαγωγή στην τεχνητή νοημοσύνη: ιστορικά στοιχεία, τεστ του Turing, σύγχρονη τεχνητή νοημοσύνη και εφαρμογές, ορολογία και περιοχές τεχνητής νοημοσύνης. Επίλυση προβλημάτων με μεθόδους τεχνητής νοημοσύνης: αναπαράσταση προβλημάτων σε γράφους, αναζήτηση λύσης, αλγόριθμοι εύρεσης λύσης (κατά βάθος, κατά πλάτος, επαναληπτική εκβάθυνση), ευριστικοί αλγόριθμοι εύρεσης λύσης (hill climbing, best first, branch and bound, A*), αλγόριθμοι για παίγνια (min-max, alpha-beta). Συμβολική τεχνητή νοημοσύνη: από τη λογική στην τεχνητή νοημοσύνη, τυπική αναπαράσταση γνώσης, γράφοι γνώσης, αυτόματη συλλογιστική. Μηχανική μάθηση: ανάλυση δεδομένων, ταξινόμηση και πρόβλεψη, perceptrons, γραμμική παλινδρόμηση, ταξινόμηση με ομαδοποίηση.
Διδακτικές Μονάδες : 5
Φόρτος Εργασίας : theory 4, lab 0
Γλώσσα : el, en
Μαθησιακά Αποτελέσματα : Μέχρι το τέλος αυτού του μαθήματος, οι φοιτητές θα είναι σε θέση να: -Κατανοήσουν τις έννοιες των αλφαβήτων, των συμβολοσειρών, των γλωσσών και των γραμματικών. -Σχεδιάσουν και αναλύσουν πεπερασμένα αυτόματα (DFA και NFA) για την αναγνώριση γλωσσών. -Μετατρέψουν μεταξύ κανονικών εκφράσεων και πεπερασμένων αυτομάτων. -Ελαχιστοποιήσουν πεπερασμένα αυτόματα. -Αποδείξουν εάν μια γλώσσα είναι κανονική ή μη κανονική χρησιμοποιώντας εργαλεία όπως το λήμμα άντλησης και τις ιδιότητες κλεισίματος. -Περιγράψουν και κατασκευάσουν γραμματικές χωρίς συμφραζόμενα (CFGs). -Κατανοήσουν ανοιχτά προβλήματα όπως το P έναντι του NP και τις επιπτώσεις τους. -Κατασκευάσουν τυπικές αποδείξεις που σχετίζονται με αυτόματα, γλώσσες και υπολογισμούς. -Μάθουν πώς να αναλύουν αλγόριθμους. -Εκφράζουν την πολυπλοκότητα χρόνου σε ασυμπτωτικό συμβολισμό. -Μάθουν πώς να επιχειρηματολογούν για την ορθότητα των αλγορίθμων. -Ενημερωθούν για βασικές αλγοριθμικές στρατηγικές και τεχνικές σχεδιασμού αλγορίθμων (διαίρει και βασίλευε, μέθοδοι Greedy, δυναμικός προγραμματισμός). -Κατανοήσουν αριθμητικούς αλγόριθμους για τον υπολογισμό του ΜΚΔ, δυνάμεις ακεραίων, πολλαπλασιασμό Karatsuba. -Να εξοικειωθούν με τις εισαγωγικές έννοιες της τεχνητής νοημοσύνης. -Να κατανοήσουν τη λειτουργία αλγορίθμων ΤΝ όπως εύρεσης λύσης (κατά βάθος, κατά πλάτος, επαναληπτική εκβάθυνση), ευριστικοί αλγόριθμοι εύρεσης λύσης (hill climbing, best first, branch and bound, A*.