Η επιστήμη των υπολογιστών
Τι μελετά, και πώς φτάσαμε από τον Turing ως σήμερα.
35 λεπτά
Θα μάθεις να
- Να περιγράφεις τι μελετά η επιστήμη των υπολογιστών και γιατί δεν ταυτίζεται με τον προγραμματισμό.
- Να ελέγχεις αν μια διαδικασία είναι αλγόριθμος με τα πέντε κριτήρια.
- Να κατατάσσεις ένα ερώτημα στον κλάδο της πληροφορικής που το μελετά.
- Να τοποθετείς στον χρόνο τους σταθμούς από τον Turing ως τον Παγκόσμιο Ιστό.
Τι μελετά
Η επιστήμη των υπολογιστών (computer science) μελετά τον υπολογισμό: τι μπορεί να υπολογιστεί, με πόσο κόστος, πώς αναπαρίσταται η πληροφορία και πώς χτίζονται τα συστήματα που κάνουν τη δουλειά στην πράξη.
Ο υπολογιστής είναι το εργαλείο της, όχι το αντικείμενό της. Μια φράση που αποδίδεται συχνά στον Edsger Dijkstra το λέει έτσι: η πληροφορική δεν αφορά τους υπολογιστές περισσότερο απ' όσο η αστρονομία αφορά τα τηλεσκόπια.
Ο αλγόριθμος
Η λέξη προέρχεται από το όνομα του Πέρση μαθηματικού al-Khwarizmi (9ος αιώνας), του οποίου τα βιβλία έμαθαν στην Ευρώπη το δεκαδικό σύστημα αρίθμησης.
Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που επιλύει ένα πρόβλημα. Για να είναι μια διαδικασία αλγόριθμος, πρέπει να ικανοποιεί πέντε κριτήρια:
| Κριτήριο | Τι απαιτεί |
|---|---|
| Είσοδος (input) | μηδέν ή περισσότερα δεδομένα δίνονται από έξω |
| Έξοδος (output) | παράγεται τουλάχιστον ένα αποτέλεσμα |
| Καθοριστικότητα (definiteness) | κάθε εντολή ορίζεται χωρίς καμία αμφιβολία για τον τρόπο εκτέλεσής της |
| Περατότητα (finiteness) | ο αλγόριθμος τελειώνει μετά από πεπερασμένο πλήθος βημάτων |
| Αποτελεσματικότητα (effectiveness) | κάθε εντολή είναι απλή και εκτελέσιμη στην πράξη |
Οι κλάδοι
Η πληροφορική είναι πια τόσο μεγάλη ώστε κανείς δεν την ξέρει ολόκληρη. Οι βασικοί της κλάδοι, και πού θα τους συναντήσεις φέτος:
| Κλάδος | Το ερώτημα που θέτει | Σε αυτό το μάθημα |
|---|---|---|
| Θεωρία υπολογισμού | Τι μπορεί να υπολογιστεί και με πόσο κόστος; | υπολογισιμότητα, πολυπλοκότητα |
| Αλγόριθμοι και δομές δεδομένων | Ποιος είναι ο καλύτερος τρόπος να λυθεί ένα πρόβλημα; | πολυπλοκότητα, αναδρομή |
| Αρχιτεκτονική υπολογιστών | Πώς είναι φτιαγμένη η μηχανή που εκτελεί τις εντολές; | αρχιτεκτονική, αναπαράσταση |
| Λειτουργικά συστήματα | Πώς μοιράζονται πολλά προγράμματα μία μηχανή; | λειτουργικά |
| Δίκτυα υπολογιστών | Πώς μιλούν δύο υπολογιστές που δεν γνωρίζονται; | δίκτυα σε επίπεδα |
| Γλώσσες προγραμματισμού | Πώς περιγράφουμε έναν αλγόριθμο σε μηχανή; | γλώσσες και υποδείγματα |
| Βάσεις δεδομένων | Πώς οργανώνονται και ανακτώνται μεγάλοι όγκοι δεδομένων; | βάσεις δεδομένων |
| Τεχνητή νοημοσύνη | Μπορεί μια μηχανή να μαθαίνει από παραδείγματα; | — |
| Ασφάλεια και κρυπτογραφία | Πώς προστατεύεται η πληροφορία από όποιον δεν πρέπει να τη δει; | — |
Δεδομένα και πληροφορία
Δύο λέξεις που στην καθημερινή γλώσσα μπερδεύονται, στην πληροφορική σημαίνουν διαφορετικά πράγματα.
- Δεδομένα (data) είναι ακατέργαστα στοιχεία: οι βαθμοί όλων των μαθητών ενός σχολείου, οι θερμοκρασίες κάθε ώρας ενός μήνα.
- Πληροφορία (information) είναι ό,τι προκύπτει όταν τα δεδομένα επεξεργαστούν ώστε να απαντούν σε ένα ερώτημα: «ο μέσος όρος του τμήματος ανέβηκε», «ο Ιούλιος ήταν ο θερμότερος των τελευταίων δέκα ετών».
Η πορεία είναι πάντα η ίδια: είσοδος δεδομένων, επεξεργασία με έναν αλγόριθμο, έξοδος πληροφορίας. Είναι το ίδιο σχήμα με την είσοδο και την έξοδο ενός αλγορίθμου, σε μεγαλύτερη κλίμακα. Η πληροφορία ενός βήματος γίνεται συχνά δεδομένο του επόμενου: οι μέσοι όροι των τμημάτων είναι πληροφορία για τον καθηγητή και δεδομένα για τη διεύθυνση, που τους συγκρίνει ανάμεσα σε σχολικές χρονιές.
Από τον Turing ως σήμερα
| Χρονιά | Σταθμός |
|---|---|
| περ. 825 | Ο al-Khwarizmi γράφει για τον υπολογισμό με το δεκαδικό σύστημα |
| 1843 | Η Ada Lovelace δημοσιεύει σημειώσεις για την Αναλυτική Μηχανή του Charles Babbage, με ένα πρόγραμμα για τους αριθμούς Bernoulli |
| 1854 | Ο George Boole δημοσιεύει την άλγεβρα της λογικής, που θα γίνει η γλώσσα των κυκλωμάτων |
| 1936 | Ο Alan Turing ορίζει με ακρίβεια τι είναι «υπολογισμός», με τη μηχανή που φέρει το όνομά του |
| 1945 | Ο John von Neumann περιγράφει τον υπολογιστή με αποθηκευμένο πρόγραμμα |
| 1946 | Παρουσιάζεται δημόσια ο ENIAC, ένας από τους πρώτους ηλεκτρονικούς υπολογιστές γενικής χρήσης |
| 1947 | Εφεύρεση του τρανζίστορ |
| 1958 | Πρώτο ολοκληρωμένο κύκλωμα |
| 1969 | Το ARPANET, πρόγονος του Διαδικτύου, συνδέει τους πρώτους κόμβους |
| 1971 | Ο πρώτος εμπορικός μικροεπεξεργαστής χωράει ολόκληρη την κεντρική μονάδα σε ένα τσιπ |
| 1989–1991 | Ο Tim Berners-Lee προτείνει και υλοποιεί στο CERN τον Παγκόσμιο Ιστό |
Η σειρά έχει νόημα: η θεωρία ήρθε πρώτη. Ο Turing όρισε τι μπορεί να κάνει μια υπολογιστική μηχανή μια δεκαετία πριν χτιστεί οποιαδήποτε ηλεκτρονική. Τα όρια που βρήκε τότε ισχύουν για κάθε υπολογιστή που φτιάχτηκε από τότε, όσο γρήγορος κι αν είναι. Σε αυτά είναι αφιερωμένο το επόμενο μάθημα.
Υπολογιστική σκέψη
Ο τρόπος που ένας επιστήμονας της πληροφορικής πλησιάζει ένα πρόβλημα λέγεται υπολογιστική σκέψη (computational thinking). Έχει τέσσερα συστατικά:
- Αποσύνθεση: σπάσε το πρόβλημα σε μικρότερα, που λύνονται ένα-ένα.
- Αναγνώριση προτύπων: βρες τι μοιάζει με κάτι που έχεις ήδη λύσει.
- Αφαίρεση (abstraction): κράτα μόνο όσα χρειάζονται για τη λύση και αγνόησε τα υπόλοιπα.
- Αλγοριθμικός σχεδιασμός: γράψε τη λύση ως βήματα που μπορεί να εκτελέσει κάποιος άλλος, άνθρωπος ή μηχανή.
Ο χάρτης του μετρό είναι το κλασικό παράδειγμα αφαίρεσης. Οι αποστάσεις είναι λάθος, οι δρόμοι λείπουν, οι γραμμές είναι ευθείες ενώ οι σήραγγες στρίβουν. Κι όμως είναι καλύτερος από έναν ακριβή χάρτη για το ερώτημα «πού αλλάζω γραμμή», γιατί κρατάει μόνο τους σταθμούς και τις συνδέσεις.
Λυμένα παραδείγματα
Παράδειγμα 1
Είναι αλγόριθμος η διαδικασία: «Ξεκίνα με x = 1. Όσο το x είναι θετικό, αύξησε το x κατά 1. Στο τέλος τύπωσε το x»;
Δοκίμασέ το πρώτα. Μετά δες τη λύση.
Παράδειγμα 2
Μια συνταγή λέει: «Βάλε 500 g αλεύρι, αλάτι όσο θέλεις και ψήσε μέχρι να γίνει». Ποιο κριτήριο παραβιάζει;
Δοκίμασέ το πρώτα. Μετά δες τη λύση.
Παράδειγμα 3
Σε ποιον κλάδο ανήκει το ερώτημα «γιατί η σελίδα φορτώνει αργά όταν πολλοί χρήστες μπαίνουν ταυτόχρονα;»
Δοκίμασέ το πρώτα. Μετά δες τη λύση.
Παράδειγμα 4
Ο αλγόριθμος του Ευκλείδη λέει: «Όσο ο b δεν είναι 0, αντικατάστησε το ζεύγος (a, b) με το (b, υπόλοιπο της διαίρεσης a με b). Στο τέλος τύπωσε το a». Εκτέλεσέ τον για , και έλεγξε την περατότητα.
Δοκίμασέ το πρώτα. Μετά δες τη λύση.
Ασκήσεις
Πρώτα ερωτήσεις με επιλογές: διαλέγεις, πατάς «Έλεγξε» και μαθαίνεις αμέσως αν το βρήκες και γιατί. Στο τέλος, λίγες ασκήσεις χωρίς επιλογές — εκεί κρύβεται μόνο η απάντηση.
Τα κατάφερες;
- Να περιγράφεις τι μελετά η επιστήμη των υπολογιστών και γιατί δεν ταυτίζεται με τον προγραμματισμό.
- Να ελέγχεις αν μια διαδικασία είναι αλγόριθμος με τα πέντε κριτήρια.
- Να κατατάσσεις ένα ερώτημα στον κλάδο της πληροφορικής που το μελετά.
- Να τοποθετείς στον χρόνο τους σταθμούς από τον Turing ως τον Παγκόσμιο Ιστό.
Λύσε τις ασκήσεις πιο πάνω και θα δεις εδώ πού στέκεσαι.