ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Ιορδάνης Κουτσόπουλος Οι διαφάνειες βασίζονται σε μεγάλο βαθμό σε αυτές που συνοδεύονται με το προτεινόμενο σύγγραμμα, καθώς και στις διαφάνειες προηγούμενων ετών του κ. Κουρκουμπέτη. 1
ΚΕΦΑΛΑΙΟ 0: Εισαγωγή Αλγόριθμοι Αφαίρετικότητα Ιστορική εξέλιξη των υπολογιστικών μηχανών Σημεία σταθμοί στην επιστήμη και τεχνολογία υπολογιστών 2
Αλγόριθμοι: Ορισμοί Ως αλγόριθμοορίζουμε το σύνολο των βημάτων τα οποία καθορίζουν τον τρόπο εκτέλεσης μίας εργασίας. Πρόγραμμαείναι η αναπαράσταση του αλγορίθμου σε μορφή συμβατή προς μία μηχανή (υπολογιστή). Η διαδικασία της ανάπτυξης ενός προγράμματος ονομάζεται προγραμματισμός. Λογισμικό (software) είναι τα προγράμματα και οι αλγόριθμοι Υλικό (hardware) είναι ο υλικός εξοπλισμός. 3
Ιστορία των αλγορίθμων Η μελέτη των αλγορίθμων ξεκίνησε ως μαθηματικό θέμα. Οι αλγόριθμοι μελετούνταν πολύ πριν την εμφάνιση των σύγχρονων υπολογιστών. Στόχος ήταν η εύρεση ενός μοναδικού συνόλου οδηγιών για την επίλυση όλων των προβλημάτων ενός συγκεκριμένου είδους. Παραδείγματα αλγορίθμων Αλγόριθμος διαίρεσης πολυψήφιων αριθμών. Ευκλείδιος αλγόριθμος (Mέγιστος Κοινός Διαιρέτης δυο αριθμών) Θεώρημα της μη πληρότητας του Gödel: κάποια προβλήματα δεν μπορούν να επιλυθούν με αλγορίθμους. H μελέτη της δυνατότητας επίλυσης διαφόρων προβλημάτων με αλγορίθμους είναι το θεμέλιο της Επιστήμης Υπολογιστών. 4
Ο Ευκλείδιος αλγόριθμος για την εύρεση του μέγιστου κοινού διαιρέτη δύο θετικών ακεραίων Περιγραφή: Αυτός ο αλγόριθμος υποθέτει ότι η είσοδος του είναι δύο θετικοί αριθμοί Μ,Ν, και σκοπός του είναι να υπολογίσει το μέγιστο κοινό διαιρέτη αυτών των δύο τιμών. Διαδικασία: Βήμα 1. Αντιστοίχισε στα Μ και Ν την τιμή της μεγαλύτερης και της μικρότερης εισόδου, αντίστοιχα. Βήμα 2. Διαίρεσε το Μ με το Ν, και ονόμασε το υπόλοιπο Υ. Βήμα 3. Αν το Υ είναι διάφορο του 0, αντιστοίχισε στο Μ την τιμή του Ν, αντιστοίχισε στο Ν την τιμή του Υ, και επέστρεψε στο βήμα 2. Διαφορετικά (δηλ. αν Υ = 0), ο μέγιστος κοινός διαιρέτης είναι η τιμή που έχει αντιστοιχιστεί στο Ν τη δεδομένη στιγμή. Τρέξτε το π.χ. Για Μ=12, Ν=8 5
Διαγραμματική αναπαράσταση του αλγορίθμου του Ευκλείδη 6
Κεντρικά ερωτήματα της Επιστήμης των Υπολογιστών Ποια προβλήματα μπορούν να επιλυθούν με αλγοριθμικές διαδικασίες; Πώς μπορεί να γίνει ευκολότερη η επινόηση αλγορίθμων; Με ποιον τρόπο μπορούν να βελτιωθούν οι τεχνικές αναπαράστασης και μετάδοσης των αλγορίθμων; Πώς μπορούν να αναλυθούν και να συγκριθούν τα χαρακτηριστικά διαφορετικών αλγορίθμων; Πως μπορούν οι αλγόριθμοι να χειριστούν τα τεράστια ποσά πληροφορίας (Big Data) Πως μπορούν να εφαρμοστούν οι αλγόριθμοι στην παραγωγή έξυπνης συμπεριφοράς; Συμπεριφοριακή Οικονομική (Behavioral Economics) 7
Αφαίρεση (Αφαιρετικότητα) Ο όρος αφαιρετικότητα(abstraction) αναφέρεται στη διάκριση μεταξύ των εξωτερικών ιδιοτήτων μιας οντότητας και των λεπτομερειών της εσωτερικής της σύνθεσης. Αφαιρετικά εργαλείαείναι τα συστατικά στοιχεία ενός συστήματος, των οποίων αγνοούμε την εσωτερική τους σύνθεση 8
Χρήσεις της αφαιρετικότητας Η αφαιρετικότητα μας επιτρέπει να χρησιμοποιούμε πολύπλοκα συστήματα ως ενιαίες κατανοητές μονάδες. Μας επιτρέπει να σχεδιάσουμε και να κατασκευάσουμε τέτοια πολύπλοκα συστήματα. Οι επιστήμονες των υπολογιστών μπορούν να χρησιμοποιούν αλγορίθμους χωρίς να αντιλαμβάνονται πλήρως τις λεπτομέρειες τους, εστιάζοντας σε συγκεκριμένους μόνο τομείς. 9
Παράδειγμα αφαιρετικότητας Θέλετε να σχεδιάσετε την κεραία ενός κινητού τηλεφώνου Ή την οθόνη του Υπάρχουν πολλά και περίπλοκα κυκλωματα μέσα στο τηλέφωνο Ο καλός Επιστήμονας Πληροφορικής μαθαίνει πως να απομονώνει και να κρατά αυτά στα στοιχεία του συστήματος που είναι σημαντικά και να χρησιμοποιεί μια απλοποιημένη εκδοχή (ή και να απορρίπτει εντελώς) τα λιγότερο σημαντικά στοιχεία Η ικανότητα αυτή του να εστιάζετε στα ουσιώδη θα σας συνοδεύει μια ζωή... (όσους επιλέξουν το δρόμο της Επιστήμης) 10
Αφαιρετικότητα = Επιλεκτική Άγνοια Αφαιρετικότητα (abstraction) Επιλογή του τι είναι σημαντικό και τι όχι Έμφαση και Εξάρτηση στα σημαντικά Αγνόηση και Απεξάρτηση από τα ΜΗ σημαντικά Everything should be made as simple as possible, but not simpler (A. Einstein) 11
Ιστορική εξέλιξη των υπολογιστικών μηχανών Πρώτες υπολογιστικές μηχανές: Άβακας: η θέση των χαντρών αναπαριστά τα αποθηκευμένα δεδομένα. Χρειάζεται ανθρώπινη επέμβαση για να εκτελεστεί μια πράξη Βασισμένες στην τεχνολογία γραναζιών (1600s- 1800s) H θέση των γραναζιών αναπαριστά αριθμούς. Blaise Pascal, Wilhelm Leibniz, Charles Babbage 12
Ο άβακας 13
Ιστορική εξέλιξη των υπολογιστικών μηχανών Πρώτη αναπαράσταση αλγορίθμου σε χαρτί: οπές σε χάρτινες κάρτες. Ο Joseph Jacquard (1801) όρισε μοτίβα σε έναν αργαλειό για την παραγωγή υφαντών. Ο τρόπος πλεξίματος στον αργαλειό ήταν αποτυπωμένος σε οπές σε ένα χαρτόνι Αναλυτική Μηχανή του Babbage Οπές σε χαρτόνι: Δημοφιλής τεχνική προγραμματισμού στους Η/Υ ως και το 1970. 14
Ο αργαλειός του Jacquard 15
Η Μηχανή Διαφορών του Babbage για υπολογισμό πολυωνύμων Παράδειγμα: F(x) = x 2, Υπολογισμός του F(4)=4 2 Βασίζεται στο ότι η 2 η παράγωγος του x 2 είναι 2 Έκανε υπολογισμούς σε πολυώνυμα μέχρι και x 7 16 Περισσότερα: http://www.computerhistory.org/babbage/engines/
Πρώτοι Υπολογιστές Βασισμένοι σε ηλεκτρονικά ελεγχόμενους μηχανικούς διακόπτες (ρελέ): 1940: Stibitz στα Εργαστήρια Bell. 1944: ο υπολογιστής Mark I, από τον H. Aiden και ομάδα τεχνικών της IBM στο Ηarvard. Βασισμένοι σε τεχνολογία λυχνιών κενού: 1937-1941: υπολογιστής ABC στο Κολέγιο της Αϊόβα. 1940s: Colossus από τον T. Flowers για την αποκωδικοποίηση των γερμανικών μηνυμάτων. 1940s: ENIAC (1946) από J. Mauchly και P. Eckert στο Πανεπιστήμιο της Πενσυλβάνια. Κατασκευάστηκε για υπολογισμό πορείας βλημάτων https://en.wikipedia.org/wiki/eniac 17
Ο υπολογιστής Mark I στο Πανεπιστήμιο Harvard 18
Προσωπικοί Υπολογιστές Στην αρχή υπήρξαν αυτοσχέδιοι υπολογιστές. 1976: ίδρυση της Apple Computers. Steve Jobs, Stephen Wozniak 1981: η ΙΒΜ παρουσιάζει τον πρώτο προσωπικό υπολογιστή (Personal Computer) ή PC. Άμεση εμπορική αποδοχή. Αποτέλεσε πρότυπο για τους μεταγενέστερους υπολογιστές. Συνήθως χρησιμοποιεί λογισμικό της Microsoft. 19
IBM PC 1981 20
Σημεία Σταθμοί στους Υπολογιστές 1976: Apple 1997-2011 3 Apples changed the world: the one that Eve ate, the one that fell on Newton's head and the one that Steve built. Microsoft, 1975 21
Σημεία - Σταθμοί στο web 1994 1998 2003 2006 22
Τρέχουσες Εξελίξεις NetFlix LinkedIn Qualcomm Samsung, Huawei, Nokia, Ericsson à 5G And Beyond 5G Έξυπνα κινητά τηλέφωνα (Smart phones) Με πολλά είδη ενσωματωμένων αισθητήρων Mobile Apps: Η σημαντικότερη αγορά Online games 23
Τρέχουσες εξελίξεις Υπολογιστική Νέφους (Cloud computing) Big Data Ασύρματα δίκτυα 5 ης γενιάς (5G) Μετάδοση βίντεο πάνω από ασύρματα δίκτυα Κοινωνικά δίκτυα και κοινωνικά μέσα (social networks / social media) Instagram, Facebook, Tumblr Δίκτυα Αισθητήρων (sensor networks), Το ίντερνετ των πραγμάτων (Internet of things) Έξυπνες πόλεις (smart cities) 24
Ιδέες για βιβλία D. Kirkpatrick, The Facebook Effect D. Vise, The Google Story W. Isaacson, Steve Jobs 25