Επιστήμη υπολογιστών
Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια
Επιστήμη υπολογιστών ονομάζεται η επιστήμη η οποία μελετά τα θεωρητικά θεμέλια των εννοιών της πληροφορίας και του υπολογισμού, καθώς και την τεχνολογική υλοποίηση και εφαρμογή τους σε, συνήθως ηλεκτρονικά και ψηφιακά, υπολογιστικά συστήματα[1][2][3]. Η επιστήμη υπολογιστών έχει πολλούς κλάδους, κάποιοι εκ των οποίων δίνουν έμφαση στον υπολογισμό συγκεκριμένων αποτελεσμάτων (όπως τα γραφικά υπολογιστών), κάποιοι σχετίζονται με ιδιότητες υπολογιστικών προβλημάτων (όπως η θεωρία πολυπλοκότητας), ενώ άλλοι επικεντρώνονται στις προκλήσεις που παρουσιάζονται κατά την υλοποίηση υπολογισμών. Για παράδειγμα, η θεωρία γλωσσών προγραμματισμού μελετά προσεγγίσεις για την περιγραφή υπολογισμών, ενώ ο προγραμματισμός υπολογιστών εφαρμόζει συγκεκριμένες γλώσσες προγραμματισμού για να λύσει προκαθορισμένα υπολογιστικά προβλήματα. Ο κλάδος της αλληλεπίδρασης ανθρώπου-υπολογιστή ασχολείται με το ζήτημα της ευχρηστίας και προσβασιμότητας των υπολογιστών, όσον αφορά το ευρύ κοινό.
Ο Έντσγκερ Ντάικστρα (Edsger Dijkstra) είπε:
- Η επιστήμη υπολογιστών έχει τόση σχέση με τους υπολογιστές, όση έχει η αστρονομία με το τηλεσκόπιο.
Ο φυσικός Ρίτσαρντ Φάινμαν (Richard Feynman) είπε:
- Η επιστήμη υπολογιστών δεν είναι τόσο παλιά όσο η φυσική, υστερεί χρονικά μερικούς αιώνες. Ωστόσο, αυτό δεν σημαίνει ότι υπάρχουν λιγότερα στο πιάτο του επιστήμονα των υπολογιστών απ' ότι σε αυτό του φυσικού: μπορεί να είναι νεότερη αλλά είχε μια πολύ πιο έντονη γέννηση!
Πίνακας περιεχομένων |
[Επεξεργασία] Ιστορία
[Επεξεργασία] Συγγενικά επιστημονικά πεδία
Η επιστήμη υπολογιστών συσχετίζεται στενά με άλλα επιστημονικά πεδία τα οποία, παρά τις σημαντικές διαφορές όσον αφορά την έμφαση και τις ιστορικές ρίζες, επικαλύπτονται με επιμέρους κλάδους της.
- Κυβερνητική
- Κρυπτογραφία
- Γλωσσολογία
- Λογική
- Στατιστική
- Εφαρμοσμένα μαθηματικά
- Ηλεκτρονική
- Επιστήμη ηλεκτρολόγου μηχανικού
- Γνωσιακή επιστήμη
- Κβαντικός υπολογισμός
Ορισμένοι κάνουν διάκριση μεταξύ επιστήμης υπολογιστών και μηχανικής υπολογιστών, με την τελευταία να αποτελεί έναν συναφή κλάδο ασχολούμενο με τη σχεδίαση και υλοποίηση υλικού υπολογιστών. Με παρόμοια λογική έχει προταθεί και η διάκριση μεταξύ επιστήμης υπολογιστών και μηχανικής λογισμικού, όπου ο κλάδος αυτός επικεντρώνεται στην ανάπτυξη λογισμικού για συγκεκριμένες εφαρμογές με τυποποιημένες μεθόδους. Ωστόσο δεν υπάρχει καθολικά αποδεκτή διαφοροποίηση μεταξύ προγραμματισμού υπολογιστών και μηχανικής λογισμικού, με τα περισσότερα πανεπιστημιακά τμήματα να ακολουθούν στην πράξη ένα μεικτό πρόγραμμα σπουδών το οποίο συμπεριλαμβάνει και τη μηχανική λογισμικού και τη μηχανική υπολογιστών. Η επιστήμη υπολογιστών με την ευρεία έννοια περίπου ταυτίζεται με την πληροφορική, ωστόσο η τελευταία μπορεί να ιδωθεί και υπό συμφραζόμενα τα οποία δεν περιλαμβάνουν πραγματικές τεχνολογικές εφαρμογές όπως οι ηλεκτρονικοί υπολογιστές, αλλά αφορούν διαχείριση πληροφοριών.
[Επεξεργασία] Κλάδοι σημαντικοί για την επιστήμη υπολογιστών
[Επεξεργασία] Μαθηματικά θεμέλια
- Αριθμητική ανάλυση
- Άλγεβρα Μπουλ
- Διακριτά μαθηματικά
- Θεωρία γράφων
- Μαθηματική λογική
- Θεωρία πεδίων
- Πιθανότητες
- Στατιστική
- Επεξεργασία σήματος
[Επεξεργασία] Θεωρητική πληροφορική
- Θεωρία τυπικών γλωσσών
- Τυπική σημασιολογία
- Θεωρία υπολογισιμότητας
- Θεωρία πολυπλοκότητας
- Ανάλυση αλγορίθμων
- Κατανεμημένος υπολογισμός
- Δομές δεδομένων
- Κρυπτογραφία
- Θεωρία ουρών
[Επεξεργασία] Υλικό (Hardware)
(Δείτε επίσης ηλεκτρομηχανική και μηχανική υπολογιστών)
- Μικροπρογραμματισμός
- Αριθμητική υπολογιστών
- Μικροεπεξεργαστές
- Αρχιτεκτονική υπολογιστών
- Μέσα αποθήκευσης
- Δομές μνήμης
- Είσοδος/Έξοδος
- Λογική σχεδίαση
- Ολοκληρωμένα κυκλώματα
[Επεξεργασία] Υπολογιστικά συστήματα
[Επεξεργασία] Λογισμικό
[Επεξεργασία] Εφαρμογές υπολογιστών
- Γραφικά υπολογιστή
- Αλληλεπίδραση ανθρώπου-υπολογιστή
- Τεχνητή νοημοσύνη
- Αναγνώριση προτύπων
- Βιοπληροφορική
- Προσομοίωση μοντέλων
- Επεξεργασία σήματος
- Επεξεργασία εικόνας
- Συμπίεση δεδομένων
- Ρομποτική
[Επεξεργασία] Σημαντικές μορφές με συμβολή στην επιστήμη των υπολογιστών
| Πρόσωπο | Επίτευγμα |
|---|---|
| Ραμόν Λουλ | (Ramon Llull): Για τις πολλαπλές μηχανές συμβολικής αναπαράστασης, την εργασία του Ars Combinatoria, και τις πρωτοποριακές του ιδέες της συμβολικής αναπαράστασης και χειρισμού των συμβόλων αυτών για την παραγωγή γνώσης. Επηρέασε σημαντικά τον Λάιμπνιτς. |
| Γκότφριντ Βίλχελμ Λάιμπνιτς | (Gottfried Wilhelm Leibniz): Η μεγάλη συνεισφορά του στη συμβολική λογική, κυρίως με την εργασία του Calculus Ratiocinator, επηρέασε σημαντικά τον Γκότλομπ Φρέγκε, του οποίου η ανάπτυξη του κατηγορηματικού λογισμού πρώτης τάξης ήταν κρίσιμη για τη θεωρητική θεμελίωση της επιστήμης υπολογιστών. |
| Τσαρλς Μπάμπατζ | (Charles Babbage): Σχεδίασε και κατασκεύασε το πρωτότυπο ενός μηχανικού υπολογιστή, ενώ στη συνέχεια σχεδίασε την, ακόμα πιο ισχυρή, αναλυτική μηχανή. |
| Άντα Λάβλεϊς | (Ada Lovelace): Κόρη του Λόρδου Βύρωνα και υπήρξε βοηθός του Τσαρλς Μπάμπατζ. Μελέτησε επιστημονικά την έννοια του υπολογισμού και με την εργασία της Προσχέδιο μιας αναλυτικής μηχανής ανέλυσε το έργο του Τσαρλς Μπάμπατζ. Η γλώσσα προγραμματισμού Ada ονομάστηκε έτσι προς τιμήν της. |
| Γκότλομπ Φρέγκε | (Friedrich Ludwig Gottlob Frege): Η ανάπτυξη του κατηγορηματικού λογισμού πρώτης τάξης από τον Φρέγκε αποτέλεσε σημαντικό προαπαιτούμενο για την ανάπτυξη της θεωρίας υπολογισμού. |
| Κούρτ Γκέντελ | (Kurt Gödel): Ιστορική υπήρξε η απόδειξή του (1931) ότι η αριθμητική βασισμένη σε αξιώματα του Πεάνο δεν μπορεί να είναι και λογικά συνεπής και πλήρης στον κατηγορηματικό λογισμό πρώτης τάξης. Ο Wittgenstein στην ύστερή του περίοδο ανέπτυξε ισχυρή κριτική στο έργο του. |
| Αλόνζο Τσερτς | (Alonso Church): Συνεισέφερε στη θεμελίωση της θεωρίας υπολογισμού, ιδιαίτερα με την ανάπτυξη του λ-λογισμού και τη διερεύνηση μέσω αυτού του προβλήματος της μη-αποφασισιμότητας. |
| Στίβεν Κολ Κλέινι | (Stephen Cole Kleene): Πρωτοποριακή δουλειά με τον Αλόνζο Τσερτς στον λ-λογισμό, με τον οποία τέθηκαν τα θεμέλια την θεωρίας υπολογισμού. |
| Άλαν Τούρινγκ | (Alan Turing): Θεμελιώδεις υπήρξαν οι συνεισφορές του στη θεωρία υπολογισμού, κι επομένως στην αυτονόμηση της επιστήμης υπολογιστών από τα μαθηματικά, στην αυστηρή διατύπωση των εννοιών του υπολογισμού και του αλγορίθμου μέσω της Μηχανής Τούρινγκ, καθώς και στον σχεδιασμό του Pilot ACE. |
| Μόρις Ουΐλκς | (Maurice Wilkes): Κατασκεύασε τον πρώτο υπολογιστή με αποθηκευμένο πρόγραμμα, ενώ του αποδίδονται και πολλές ιδέες δομών υψηλού επιπέδου γλωσσών προγραμματισμού. |
| Κόνραντ Τσούζε | (Konrad Zuse): Κατασκεύασε τον ψηφιακό υπολογιστή Z3, τον πρώτο που λειτούργησε με το δυαδικό σύστημα αρίθμησης, για τον οποίο επινόησε επίσης και τη γλώσσα προγραμματισμού υψηλού επιπέδου, Plankalkül. |
| Τζον Βίνσεντ Ατανάσοφ | (John Vincent Atanasoff): Κατασκεύασε τον πρώτο ηλεκτρονικό ψηφιακό υπολογιστή, τον ABC. Αντίθετα με τον ENIAC, ο οποίος θεωρείται ο πρώτος πλήρης ηλεκτρονικός υπολογιστής που σχεδιάστηκε να είναι Τούρινγκ-πλήρης, ο ABC δεν ήταν προγραμματίσιμος. |
| Τζον Μάκλεϊ and Τζέι Πρέσπερ Έκερτ | (John Mauchly και J. Presper Eckert): Σχεδίασαν και κατασκεύασαν τον ENIAC, τον πρώτο ηλεκτρονικό Τούρινγκ-πλήρη υπολογιστή και τον UNIVAC I, τον πρώτο διαθέσιμο εμπορικά υπολογιστή στις Η.Π.Α.. Η εργασία τους στον ENIAC στο Πανεπιστήμιο της Πενσυλβάνια επηρέασε σημαντικά τον Τζον φον Νόιμαν στο Ίδρυμα Προηγμένων Ερευνών, καθώς η εργασία τους στην αρχιτεκτονική υπολογιστών ήταν πρωτοποριακή. |
| Τζον φον Νόιμαν | (John von Neumann): Επινόησε την αρχιτεκτονική φον Νόιμαν, πάνω στην οποία βασίζονται οι σύγχρονοι υπολογιστές. Ακόμα εφηύρε τα κυτταρικά αυτόματα. |
| Κλοντ Σάνον | (Claude E. Shannon): Υπήρξε ο θεμελιωτής της θεωρίας πληροφορίας και το έργο του βοήθησε στην έναρξη της σύγχρονης εποχή των τηλεπικοινωνιών. |
| Τζον Μπάκους | (John Backus): Επινόησε τη FORTRAN (Formula Translation), την πρώτη πρακτική υψηλού επιπέδου γλώσσα προγραμματισμού και τη Μορφή Backus-Naur, ένα μετασυντακτικό για Γραμματικές χωρίς συμφραζόμενα], με το οποία περιέγραψε τη σύνταξή της. |
| Νίκλαους Βιρτ | (Niklaus Wirth): Επινόησε τη γλώσσα προγραμματισμού Pascal, την οποία ονόμασε έτσι προς τιμήν του Γάλλου πρωτοπόρου Μπλεζ Πασκάλ (Blaise Pascal). |
| Τζέιμς Κούλεϊ και Τζον Τάκει | (James W. Cooley και John W. Tukey): Επινόησαν έναν τρόπο για τον υπολογισμό του Ταχέως Μετασχηματισμού Φουριέ |
| Όλε-Γιόχαν Ντάαλ και Κρίστεν Νάιγκααρντ | (Ole-Johan Dahl, Kristen Nygaard): Επινόησαν την πρώτη αντικειμενοστρεφή γλώσσα προγραμματισμού SIMULA (Simulation Language). |
| Έντσγκερ Ντάικστρα | (Edsger Dijkstra): Σημαντική είναι η προσφορά του στην ανάλυση αλγορίθμων, στην απαξίωση της προγραμματιστικής εντολής Goto, στην επινόηση των σημαφόρων κλπ. Ονομάσθηκε πατέρας του παράλληλου προγραμματισμού και υπήρξε πρωτοπόρος στη μελέτη των λειτουργικών συστημάτων. |
| Τόνυ Χόαρ | (Tony Hoare): Ανέπτυξε την τυπική γλώσσα Communicating Sequential Processes (CSP) και τον αλγόριθμο ταξινόμησης Quicksort. |
| Γκρέις Μάρει Χόπερ | (Grace Murray Hopper): Η Χόπερ έκανε πρωτοποριακή δουλειά στην υποστήριξη της αναγκαιότητας των γλωσσών προγραμματισμού υψηλού επιπέδου, που αποκάλεσε αυτόματο προγραμματισμό. Έγραψε επίσης τον Α-0 μεταγλωττιστή που επηρέασε την COBOL (Commercial Business Oriented Language). |
| Κένεθ Άιβερσον | (Kenneth Iverson): Επινόησε την APL (A Programming Language) και συνεισέφερε στον κλάδο της αλληλεπίδρασης ανθρώπου-υπολογιστή. |
| Τζάσεκ Καρπίνσκι | (Jacek Karpinski): Ανάπτυξε τον πρώτο διαφορικό αναλυτή που χρησιμοποιούσε τρανζίστορ, και επίσης ανέπτυξε έναν από τους πρώτους αλγόριθμους αναγνώρισης εικόνων και χαρακτήρων. Τέλος, είναι ο εφευρέτης του πρώτου μίνι-υπολογιστή, του K-202. |
| Ντόναλντ Κνουθ | (Donald Knuth): Για τη σειρά βιβλίων The Art of Computer Programming και το λογισμικό για τυπογραφία TeX. |
| Τζον Μακάρθι | (John McCarthy): Επινόησε την LISP (List Programming), μια συναρτησιακή γλώσσα προγραμματισμού. |
| Τιμ Μπέρνερς-Λι | (Tim Berners-Lee): Επινόησε τον Παγκόσμιο Ιστό World Wide Web στο Διαδίκτυο. |
[Επεξεργασία] Αναφορές
- ↑ "Computer science is the study of information" Department of Computer and Information Science, Guttenberg Information Technologies
- ↑ "Computer science is the study of computation." Computer Science Department, College of Saint Benedict, Saint John's University
- ↑ "Computer Science is the study of all aspects of computer systems, from the theoretical foundations to the very practical aspects of managing large software projects." Massey University
Το άρθρο αντλεί πληροφορίες από το αντίστοιχο της αγγλόφωνης Wikipedia