Τμήμα Πληροφορικής - Ιόνιο Πανεπιστήμιο

Εισαγωγή στην Επιστήμη των Υπολογιστών

Χειμερινό εξάμηνο 2023-24

Διδάσκων: Μ.Στεφανιδάκης

Εξεταστέα Ύλη

Δείτε: Σύνοψη

Ενότητα 1η: Εισαγωγή στους Υπολογιστές - Aρχές λειτουργίας και τεχνολογία

Παρουσίαση του μαθήματος. Η γενική εικόνα του υπολογιστή. Η μνήμη και το μοντέλο von Neumann. Το πρόγραμμα ελέγχου - εκτέλεση εντολών. Η τρέχουσα τεχνολογία: ηλεκτρονική - ψηφιακή - δυαδική. Το τρανζίστορ και η συρρίκνωσή του. Παραγωγή ολοκληρωμένων κυκλωμάτων.

Διαφάνειες ενότητας.

Ενότητα 2η: Πράξεις με δυαδικούς αριθμούς - λογικές πράξεις

Πράξεις με δυαδικούς αριθμούς. Bits και Bytes. Λογικές πράξεις με bits. Η λογική συνάρτηση και η πύλη NOT. Η λογική συνάρτηση και η πύλη (Ν)AND. Η λογική συνάρτηση και η πύλη (Ν)OR. Οι συναρτήσεις XOR και XNOR. Λογικές πράξεις σε ομάδες bits. Μάσκες AND, OR, XOR. Ολίσθηση bits.

Διαφάνειες ενότητας.

Συμπληρωματικό υλικό

Ενότητα 3η: Πράξεις με δυαδικούς αριθμούς - αριθμητικές πράξεις

Πράξεις με δυαδικούς αριθμούς. Bits και Bytes. Μετατροπή δεκαδικού σε δυαδικό. Δεκαεξαδικό σύστημα. Φυσικοί και Ακέραιοι αριθμοί. Συμπλήρωμα ως προς 2. Πρόσθεση μη προσημασμένων και προσημασμένων δυαδικών αριθμών. Ημιαθροιστής και πλήρης αθροιστής. Η έννοια της υπερχείλισης. Κλασματικοί Αριθμοί. Αριθμοί κινητής υποδιαστολής. Πράξεις με αριθμούς κινητής υποδιαστολής. Παράδειγμα πρόσθεσης.

Διαφάνειες ενότητας.

Συμπληρωματικό υλικό

Ενότητα 4η: Αναπαράσταση Μη Αριθμητικών Δεδομένων - κείμενο, ήχος και εικόνα στον υπολογιστή

Αναπαράσταση δεδομένων με δυαδικούς αριθμούς. Θέματα αποθήκευσης στη μνήμη: little- και big-endian αποθήκευση. Αναπαραστάσεις κειμένου. Ο κώδικας ASCII και οι επεκτάσεις του. Αναπαράσταση Unicode και κωδικοποίηση κατά UCS-2 και UTF-8. Αρχές αναπαράστασης ήχου, εικόνας και βίντεο.

Διαφάνειες ενότητας.

Συμπληρωματικό υλικό

Ενότητα 5η: Οργάνωση Υπολογιστών (Ι) - η κεντρική μονάδα επεξεργασίας

Η κεντρική μονάδα επεξεργασίας και τμηματά της. Μονοπάτι δεδομένων (datapath). Αριθμητική-λογική μονάδα (ΑΛΜ) και καταχωρητές. Έλεγχος εκτέλεσης εντολών και Program Counter. Αρχιτεκτονικές συνόλου εντολών. Ο κύκλος μηχανής. Διακοπές (interrupts) και σφάλματα (exceptions).

Διαφάνειες ενότητας.

Συμπληρωματικό υλικό

Ενότητα 6η: Οργάνωση Υπολογιστών (ΙΙ) - κύρια και κρυφή μνήμη

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

Διαφάνειες ενότητας.

Ενότητα 7η: Οργάνωση Υπολογιστών (IΙI) - συσκευές εισόδου-εξόδου

Συσκευές εισόδου-εξόδου (Ε/Ε ή input-output - I/O): χαρακτηριστικά. Βασικές συσκευές Ε/Ε. Μαγνητικοί δίσκοι, SSDs και προσπέλαση πληροφορίας. Διασύνδεση συσκευών Ε/Ε. Ελεγκτές και περιφερειακοί δίαυλοι Ε/Ε. Χώροι διευθύνσεων: αντιστοιχισμένη στη μνήμη και απομονωμένη Ε/Ε. Εξυπηρέτηση αιτήσεων Ε/Ε. Polling και διακοπές (interrupts). Μετακίνηση δεδομένων στη μνήμη και DMA.

Διαφάνειες ενότητας.

Ενότητα 8η: Λειτουργικά Συστήματα - Διαχείριση επεξεργαστή, μνήμης και συσκευών Ε/Ε

Το Λειτουργικό Σύστημα ως μέρος του Υπολογιστή. Διαχείριση πόρων. Μονοπρογραμματισμός και πολυπρογραμματισμός. Τεχνικές διαχείρισης μνήμης: σελιδοποίηση και εικονική μνήμη. Προγράμματα, εργασίες και διεργασίες. Χρονοπρογραμματισμός. Συγχρονισμός διεργασιών. Διαχείριση συσκευών.

Διαφάνειες ενότητας.

Ενότητα 9η: Λειτουργικά Συστήματα (II) - Διαχείριση αρχείων

Τι είναι ένα αρχείο; Δυαδικά αρχεία και αρχεία κειμένου. Αρχεία εκτελέσιμου κώδικα και κατασκευή τους. Συστήματα αρχείων. Διαμερίσεις δίσκων. Αποθήκευση αρχείων και δέσμευση μπλοκ: συνεχόμενα μπλοκ, διασυνδεδεμένες λίστες, έμμεση δεικτοδότηση. Ιεραρχική δομή καταλόγων και μονοπάτι αρχείου. Δικαιώματα χρήσης αρχείων.

Διαφάνειες ενότητας.

Συμπληρωματικό υλικό
  • Παράδειγμα κώδικα C για εγγραφή σε δυαδικό αρχείο και αρχείο κειμένου.

Ενότητα 10η: Δίκτυα υπολογιστών και το Διαδίκτυο.

Δίκτυα και δικτυακά πρωτόκολλα. Επίπεδα δικτυακών πρωτοκόλλων. Το μοντέλο OSI. Διάσχιση πρωτοκόλλων κατά την αποστολή και λήψη δεδομένων. Τα επίπεδα πρωτοκόλλων στο Διαδίκτυο. Πρωτόκολλα TCP/IP. Διάσχιση επιπέδων στο Διαδίκτυο. Διαδικτυακές εφαρμογές: τα μοντέλα client-server και peer-to-peer. Ο παγκόσμιος ιστός και τα τμήματα που τον συγκροτούν: web server, web client, γλώσσα HTML, πρωτόκολλο HTTP. Εφαρμογή ηλεκτρονικού ταχυδρομείου (e-mail). Σχήματα παραδοσιακού e-mail και web mail. Η εφαρμογή DNS. Ιεραρχία DNS servers.

Διαφάνειες ενότητας.

Ενότητα 11η: Αλγόριθμοι και Δομές Δεδομένων (Ι) - Εισαγωγικές έννοιες.

Αλγόριθμοι και βασικές αλγοριθμικές δομές. Αναδρομή. Πολυπλοκότητα ενός αλγορίθμου και ο ασυμπτωτικός συμβολισμός Ο(). Εγγραφές και πίνακες (arrays). Λειτουργίες σε πίνακες. Αναζήτηση σε πίνακα, δυαδική αναζήτηση. Ταξινόμηση. Οι αλγόριθμοι insertion sort και quicksort. Διασυνδεδεμένες λίστες.

Διαφάνειες ενότητας.

Ενότητα 12η: Αλγόριθμοι και Δομές Δεδομένων (ΙI) - Γράφοι και Δένδρα.

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack). Ουρά (Queue). Γράφοι (Graphs). Υλοποίηση γράφων: λίστα γειτνίασης (adjacency list) και πίνακας γειτνίασης (adjacency matrix). Διάσχιση Γράφου με προτεραιότητα βάθους (DFS) και προτεραιότητα εύρους (BFS). Δένδρα (Trees). Διάσχιση δένδρων. Επεξεργασία σε διάσχιση DFS: pre-order, post-order, in-order. Δυαδική αναζήτηση και η χρήση δένδρων δυαδικής αναζήτησης. Εναλλακτικές μέθοδοι κατακερματισμού.

Διαφάνειες ενότητας.