ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Ιορδάνης Κουτσόπουλος Αναπληρωτής Καθηγητής Οι διαφάνειες βασίζονται σε μεγάλο βαθμό σε αυτές που συνοδεύονται με το προτεινόμενο σύγγραμμα, καθώς και στις διαφάνειες προηγούμενων ετών του κ. Κουρκουμπέτη. 1
Περιγραφή Μαθήματος Σκοπός του μαθήματος είναι να κάνει μια συνοπτική περιγραφή στα θέματα που ενδιαφέρουν την Επιστήμη των Υπολογιστών. Τα θέματα αυτά περιλαμβάνουν την αλγοριθμική λύση προβλημάτων, τον προγραμματισμό υπολογιστών, την επεξεργασία δεδομένων και τη λειτουργία συστημάτων και δικτύων υπολογιστών. Θα αποκτήσουμε μία πλήρη εικόνα για τις σημερινές και μελλοντικές εφαρμογές των υπολογιστών. 2
Περιεχόμενα Μαθήματος Κεφάλαιο1: Αποθήκευση δεδομένων Κεφάλαιο2: Χειρισμός δεδομένων Κεφάλαιο3: Λειτουργικά συστήματα Κεφάλαιο4: Δικτύωση και Διαδίκτυο Κεφάλαιο5: Αλγόριθμοι Κεφάλαιο6: Γλώσσες προγραμματισμού Κεφάλαιο8: Αφαίρεση(αφαιρετικότητα) δεδομένων Κεφάλαιο9: Συστήματα βάσεων δεδομένων Κεφάλαιο12: Θεωρία υπολογισμών 3
Περιεχόμενα Μαθήματος (1) Αποθήκευση και αναπαράσταση δεδομένων (μπιτ, λογικές πράξεις, μνήμη και άλλα αποθηκευτικά μέσα, αναπαράσταση πληροφοριών ως σχήματα μπιτ) Χειρισμός δεδομένων (αρχιτεκτονική υπολογιστών, μνήμη, γλώσσα μηχανής, εκτέλεση προγράμματος) Λειτουργικά συστήματα και Μεταγλωττιστές (αρχιτεκτονική λειτουργικών συστημάτων, διεργασία, διαχείριση διεργασιών, Διερμηνεία, Μεταγλωττισμός Λεξικογραφική ανάλυση, Συντακτική ανάλυση, Γέννηση κώδικα, Πολυ- προγραμματισμός) 4
Περιεχόμενα Μαθήματος (2) Δικτύωση και Διαδίκτυο(κατηγορίες δικτύων, μοντέλο πελάτης- διακομιστή, κατανεμημένα συστήματα, Πολυπλεξία, αρχιτεκτονική Διαδικτύου, Έλεγχος ροής με TCP, Εφαρμογές (WWW, DNS, FTP, Email, Web Services, HTTP, HTML) Αλγόριθμοι (σχεδίαση αλγορίθμων, προγράμματα, δομές επανάληψης, στοιχειοποίηση (modularity), αναδρομή, παραλληλισμός, αποδοτικότητα αλγορίθμων) 5
Περιεχόμενα Μαθήματος (3) Γλώσσες προγραμματισμού (βασικές έννοιες προγραμματισμού, διαδικασίες, παράμετροι, συναρτήσεις, κλάσεις, αντικείμενα) Αφηρημένοι τύποι δεδομένων (δομές δεδομένων, πίνακες, λίστες, στοίβες, ουρές, δυαδικά δέντρα, δείκτες) Βάσεις δεδομένων (εισαγωγή, δομή ΒΔ, σχεσιακό μοντέλο, εξόρυξη γνώσης, μηχανική μάθηση) Θεωρία υπολογισμών (θέση Church- Turing, πρόβλημα του τερματισμού, μη- επιλυσιμότητα προβλημάτων, πολυπλοκότητα προβλημάτων, Γραμματικές) 6
Βιβλιογραφία Βασικό Σύγγραμμα: J.C. Brookshear, "Η επιστήμη των υπολογιστών: Μια ολοκληρωμένη παρουσίαση" 10 η έκδοση Μετάφραση: Δ. Καρτσακλής, Επιμέλεια: Κ. Κουρκουμπέτης, Κλειδάριθμος, 2010, ISBN: 978-960- 461-270- 3 Άλλη βιβλιογραφία: L.Coldschlager- A. Lister, Εισαγωγή στη Σύγχρονη Επιστήμη των Υπολογιστών, Εκδοσεις Διαυλος, 2000. A.V. Aho, J.D. Ullman, "Foundations of Computer Science» 7
Διαλέξεις Ώρες Διαλέξεων Τετάρτη 3-5μμ (Αμφ. B) Παρασκευή 1-3μμ (Αμφ. Β) Ιστότοπος μαθήματος : πλατφόρμα eclass (eclass.aueb.gr) ΑΜΕΣΗ εγγραφή στο μάθημα για λήψη ανακοινώσεων μέσω email και πρόσβαση στο υλικό (απαιτείται εγγραφή στην πλατφόρμα eclass, αφού ενεργοποιήσετε το λογαριασμό σας για την πρόσβαση στις δικτυακές υπηρεσίες του Πανεπιστημίου) Διαλέξεις (slides) Πρόγραμμα εργαστηρίων Υλικό εργαστηρίων Ανάθεση/υποβολή εργασιών Βαθμολογίες των εργασιών και της εργαστηριακής εξέτασης καθώς και των εξετάσεων. 8
Ασκήσεις (1) Στο μάθημα θα δοθούν σειρές με ασκήσεις ανά θεματική ενότητα. Οι ασκήσεις είναι υποχρεωτικές για όλους τους πρωτοετείς φοιτητές και όσους από τα προηγούμενα έτη δεν έχουν παραδώσει ποτέ. Για τους υπόλοιπους είναι προαιρετικές. Όσοι έχουν παραδώσει ασκήσεις σε παλαιότερα έτη, μπορούν να κρατήσουν το βαθμό τους. 9
Ασκήσεις (2) Παράδοση κάθε σετ ασκήσεων μόνο μέσω της πλατφόρμας του e- class (eclass.aueb.gr). Όλα τα σετ ασκήσεων θα παραδοθούν ΜΑΖΙ μετά τις γιορτές Στις ασκήσεις θα πρέπει να αναφέρονται το όνομα και ο αριθμός μητρώου των φοιτητών. Μπορεί να γίνονται σε ομάδες 3-4 ατόμων. Μόνο ένας φοιτητής από κάθε ομάδα θα υποβάλει κάθε σετ ασκήσεων από το e- class. 10
Εργαστήρια (1) Τα εργαστηριακά τμήματα του μαθήματος θα ανακοινώνονται μέσω eclass και οι φοιτητές θα πρέπει να εγγράφονται σε αυτά ανά τακτά διαστήματα. Η παρακολούθηση των εργαστηρίων δεν είναι υποχρεωτική. Όλο το εκπαιδευτικό υλικό των εργαστηρίων θα αναρτάται στο eclass. Η ύλη των εργαστηρίων περιλαμβάνει: εισαγωγή στην HTML, που αποτελεί δομικό στοιχείο για την ανάπτυξη ιστοσελίδων εισαγωγή στη γλώσσα προγραμματισμού Python εισαγωγή στο λειτουργικό σύστημα Unix 11
Εργαστήρια (2) Η πρώτη εργασία των εργαστηρίων θα αφορά την ανάπτυξη μιας ιστοσελίδας και τη φιλοξενία της σε web server (εξυπηρετητή) του Πανεπιστημίου. Η δεύτερη εργασία θα αφορά προγραμματισμό με χρήση της γλώσσας Python. Η εξέταση στην ύλη των εργαστηρίων πραγματοποιείται πριν την έναρξη της εξεταστικής της χειμερινής περιόδου (αρχές/μέσα Ιανουαρίου). Θα περιλαμβάνει ερωτήσεις σχετικά με τις βασικές εντολές του Unix, τον τρόπο ανάπτυξης της ιστοσελίδας καθώς και τη γλώσσα Python. Βάρος 30% στον τελικό βαθμό. Οι φοιτητές προηγούμενων ετών μπορούν να κατοχυρώσουν τον βαθμό τους από προηγούμενα έτη. 12
Εργαστήρια (3) Θα υπάρξει ενημέρωση μέσω ανακοίνωσης (στέλνεται με email) στο eclass για την εγγραφή στα τμήματα του εργαστηρίου και την έναρξή τους. Καλείστε να επισκέπτεστε τακτικά τον Ιστότοπο του μαθήματος στο eclass και να παρακολουθείτε μέσω email τις ανακοινώσεις του μαθήματος. Τα εργαστήρια ξεκινάνε την εβδομάδα 17-21/10 13
Βαθμολογία για τους πρωτοετείς φοιτητές Βαθμός εργασιών και εργαστηριακής εξέτασης: 30% Βαθμός του τελικού διαγωνίσματος: 70%. Η ελάχιστη βάση στις γραπτές εξετάσεις Ιανουαρίου/Σεπτεμβρίου είναι 4/10 για να προσμετρήσουν τα υπόλοιπα. 14
Βαθμολογία για φοιτητές παλαιότερων ετών Οι φοιτητές που έχουν παραδώσει σετ ασκήσεων και έχουν βαθμό εργαστηρίου, μπορούν να διατηρήσουν αυτούς τους βαθμούς και ο τρόπος υπολογισμού του τελικού βαθμού θα γίνεται ως εξής: (0.2*βαθμός ασκήσεων+0.2*βαθμός εργαστηρίου+0.6*βαθμός γραπτού) Οι φοιτητές που έχουν παραδώσει σετ ασκήσεων αλλά δεν έχουν βαθμό εργαστηρίου, μπορούν να διατηρήσουν τον βαθμό ασκήσεων και να εξεταστούν κανονικά στο εργαστήριο και ο τρόπος υπολογισμού του τελικού βαθμού θα γίνεται ως εξής: max {0.2*βαθμός ασκήσεων+0.2*βαθμός εργαστηρίου+0.6*βαθμός γραπτού, 0.3*βαθμός εργαστηρίου+0.7*βαθμός γραπτού} Οι φοιτητές που δεν έχουν παραδώσει σετ ασκήσεων και έχουν βαθμό εργαστηρίου, θα εξετάζονται στο εργαστήριο μόνο στην Python και ο τρόπος υπολογισμού του τελικού βαθμού θα γίνεται με τον νέο τρόπο: (0.3*βαθμός εργαστηρίου+0.7*βαθμός γραπτού) Οι φοιτητές που δεν έχουν παραδώσει σετ ασκήσεων και δεν έχουν βαθμό εργαστηρίου, θα εξετάζονται κανονικά στο εργαστήριο και ο τρόπος υπολογισμού του τελικού βαθμού θα γίνεται με τον νέο τρόπο: (0.3*βαθμός εργαστηρίου+0.7*βαθμός γραπτού) Για όσους δεν θέλουν να διατηρήσουν βαθμούς από προηγούμενα έτη, θα ισχύσει ότι και για τους πρωτοετείς φοιτητές. Οι δευτεροετείς φοιτητές που έχουν παραδώσει ασκήσεις και έχουν εξεταστεί μπορούν να κρατήσουν το βαθμό τους και για τη βαθμολόγηση ισχύει ό,τι για τους πρωτοετείς 15
Επικοινωνία Διδάσκων: Ιορδάνης Κουτσόπουλος: jordan@aueb.gr Γραφείο: Ύδρας 28, 4 ος όροφος Ώρες γραφείου: Δευτέρα 10.00-12.00 ή κατόπιν συνεννόησης Οτιδήποτε ερωτήσεις έχετε: Παρακαλώ ΜΟΝΟ μέσω eclass Βοηθοί: Άννα Κεφάλα, μέλος ΕΤΕΠ: A.Kefala@aueb.gr Παναγιώτα Μιχολιά, Υποψ. Διδάκτορας: panamixo@aueb.gr 16
Εξωτερική Ιστοσελίδα μαθήματος Οι ενδιαφερόμενοι για κατατακτήριες θα ενημερώνονται από τη σελίδα http://pages.cs.aueb.gr/courses/epl131/ όπου θα αναρτάται όλο το υλικό του μαθήματος που αναρτάται και στο e- class 17