ΕΠΛ 003 ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Γενική Εικόνα Νικόλας Τσαπατσούλης, Επισκέπτης Επίκουρος Τµήµα Πληροφορικής 1 Στόχοι Κεφαλαίου Κατανόηση βασικών εννοιών της Πληροφορικής Περιγραφή των στρωµάτων (layers) ενός υπολογιστικού συστήµατος Περιγραφή της έννοιας της αφαιρετικότητας και τη σχέση της στον υπολογισµό Ιστορική αναδροµή του υλικού και του λογισµικού υπολογιστών Περιγραφή του µεταβαλλόµενου ρόλου του χρήστη υπολογιστών ιαχωρισµός των προγραµµατιστών συστηµάτων από τους προγραµµατιστές εφαρµογών ιαχωρισµός του υπολογισµού ως εργαλείο από τον υπολογισµό ως πεδίο µελέτης 5 Βασικές έννοιες Βασικές έννοιες (ΙΙ) Αλγόριθµος: Μια ταξινοµηµένη ακολουθία µη διφορούµενων βηµάτων η οποία καθορίζει πως επιλύεται ένα πρόβληµα Πρόγραµµα Η/Υ: Η αναπαράσταση ενός ή πολλών αλγορίθµων σε µορφή κατανοητή από τον υπολογιστή (µηχανή) Υλικό: Το σύνολο των ηλεκτρονικών και µηχανικών µερών του υπολογιστή Λογισµικό: Το σύνολο των δεδοµένων, των προγραµµάτων και των αλγορίθµων που αυτοί αναπαριστούν Γλώσσες Προγραµµατισµού: Γραµµατικοί και συντακτικοί κανόνες µέσω των οποίων καθίσταται δυνατή η µετατροπή των αλγορίθµων σε προγράµµατα Η/Υ Πληροφοριακό σύστηµα: Ένα σύστηµα που αποσκοπεί στη συλλογή, αποθήκευση, επεξεργασία και διαχείριση πληροφοριών 3 4
Τι είναι ο Η/Υ? Μια προγραµµατιζόµενη ηλεκτρονική συσκευή που: Αποτελείται από υλικό και λογισµικό έχεται δεδοµένα εισόδου και δηµιουργεί δεδοµένα εξόδου Εκτελεί αριθµητικές και λογικές πράξεις µε µεγάλη ταχύτητα Τι είναι ίκτυο Η/Υ? Ηδιασύνδεση δύο ή περισσοτέρων Η/Υ µε σκοπό την ανταλλαγή δεδοµένων, πληροφοριών και υπηρεσιών Laptop computer Ethernet Modem with proxy server Token-ring Modem with proxy server PSTN Ethernet Modem with proxy server 5 Workstation 6 Στρώµατα ενός Υπολογιστικού Συστήµατος Επικοινωνία Εφαρµογή Λειτουργικό Σύστηµα Προγραµµατισµός Υλικό Πληροφορίες Αφαιρετικότητα Ένα νοητικό πρότυπο που αφαιρεί τις σύνθετες λεπτοµέρειες ιατηρεί µόνο τις πληροφορίες που είναι απαραίτητες για να επιτύχουµε τον σκοπό µας Είναι µια βασική έννοια. Η αφαιρετικότητα θα εµφανίζεται συχνά. Βεβαιωθείτε ότι την καταλάβατε! 7 4 8 5
Αφαιρετικότητα: Παραδείγµατα εν χρειάζεται να γνωρίζουµε πως δουλεύει η µηχανή ενός αυτοκινήτου για να το οδηγήσουµε Χρειάζεται µόνο να γνωρίζουµε µερικά βασικά στοιχεία για να µπορούµε να αλληλεπιδρούµε µαζί του (π.χ πώς εργάζεται το τιµόνι, πως αλλάζουν οι ταχύτητες, το πετάλι για να σταµατήσουµε ή να επιταχύνουµε κτλ) Αφηρηµένη Τέχνη Τα στρώµατα ενός υπολογιστικού συστήµατος 9 Ιστορική Αναδροµή 3000 π.χ.: Άβακας, µια πρώιµη συσκευή που κατέγραφε αριθµητικές τιµές 1641 µ.χ.: Ο διάσηµος µαθηµατικός Blaise Pascal δηµιουργεί την πρώτη µηχανή άθροισης. Περίπου την ίδια εποχή o Leibniz δηµιουργεί µια µηχανή για την εκτέλεση των βασικών αριθµητικών πράξεων 19ος αιώνας: Ο Charles Babbage σχεδιάζει την αναλυτική µηχανή η οποία παρέχει δυνατότητες προγραµµατισµού µέσω ανάγνωσης διάτρητων καρτών 19ος αιώνας: Η Ada Augusta-Byron εκδίδει µια µελέτη µε οδηγίες πως η µηχανή του Babbage µπορούσε να προγραµµατιστεί για την εκτέλεση διάφορων εφαρµογών. 10 Ιστορική Αναδροµή (Συνέχεια) Ιστορική Αναδροµή (Συνέχεια) Τέλος 19ου αι. : Ο Herman Hollerith εφευρίσκει την σύγχρονη διάτρητη κάρτα η οποία και χρησιµοποιείται για την απογραφή του πληθυσµού των Η.Π.Α το 1890. Η εργασία αυτή οδηγεί στην ίδρυση της ΙΒΜ. 1939: Οι Atanasoff και Berry στο Πανεπιστήµιο της Iowa δηµιουργούν τον πρώτο Ψηφιακό Η/Υ τον ABC Κατά τον Β ΠΠ. : Ο Βρετανός µαθηµατικός Alan Turing κατασκευάζει τον ACE (Automatic Computer Engine) µε δυνατότητα επεξεργασίας 5000 χαρακτήρων ανά δευτερόλεπτο µέσω του οποίου σπάει τους κωδικούς επικοινωνίας των Γερµανών εκαετία 60: Η ανακάλυψη του τρανζίστορ οδηγεί σε εντυπωσιακή σµίκρυνση του µεγέθους των Η/Υ και µείωση του κόστους τους. εκαετία 70: Εµφάνιση υπολογιστών για χοµπίστες. Κατασκευή υπερυπολογιστών (supercomputers). O Seymour Cray σχεδιάζει τον CRAY-1 ο οποίος και κατασκευάζεται το 1976. εκαετία 80: Κατασκευή από την ΙΒΜ του πρώτου προσωπικού υπολογιστή (Perconal Computer). Εµφάνιση ιών υπολογιστών (1981) 11 1
Ιστορική Αναδροµή (Συνέχεια) 1984: Η Apple Macintosh δηµιουργεί γραφικό περιβάλλον επικοινωνίας ανθρώπου υπολογιστή. 1989: Το Ευρωπαϊκό Κέντρο Πυρηνικών Ερευνών (CERN) ξεκινά προσπάθεια για την κατασκευή ενός πρωτοκόλλου για την επικοινωνία υπολογιστών µε στόχο την ανταλλαγή εγγράφων. 1989-199: ηµιουργείται το πρωτόκολλο http που επιτρέπει την προσπέλαση εγγράφων µε κείµενο και εικόνες από υπολογιστές που βρίσκονται σε απόσταση και ανεξάρτητα από την κατασκευή τους και το λογισµικό που χρησιµοποιούν 1994: Εγκαθίδρυση του Παγκόσµιου Ιστού Πληροφοριών (World Wide Web) 13 Υλικό Πρώτης Γενεάς (1951-1959) Ηλεκτρονική Λυχνία (Vacuum Tube) Μεγάλου µεγέθους, µικρής αξιοπιστίας, πολλή θερµότητα Μαγνητικό Τύµπανο (Magnetic Drum) Συσκευή µνήµης που περιστρεφόταν κάτω από µια ακίδα ανάγνωσης / γραφής (read/write head) Αναγνώστες Καρτών (Card Readers) Μαγνητική Ταινία (Magnetic Tape Drive) Σειριακή συσκευή αποθήκευσης δεδοµένων 14 8 Υλικό εύτερης Γενεάς (1959-1965) Υλικό Τρίτης Γενεάς (1965-1971) Τρανζίστορ (Transistor) Αντικατάστησε τη λυχνία. Πολύ πιο γρήγορο, µικρό, ανθεκτικό, φθηνό. Τα τρανζίστορς ήταν τοποθετηµένα σε πίνακες κυκλωµάτων (circuit boards) Μαγνητικός Πυρήνας (Magnetic Core) Αντικατέστησε το µαγνητικό τύµπανο. Οι πληροφορίες γίνονται διαθέσιµες αµέσως. Μαγνητικός ίσκος (Magnetic Disk) Αντικατέστησε τη µαγνητική ταινία. Η πρόσβαση στα δεδοµένα είναι άµεση (και όχι σειριακή). 15 9 Ολοκληρωµένα Κυκλώµατα (Integrated Circuits) Συµπαγή κοµµάτια σιλικόνης. Αντικατέστησαν τους πίνακες κυκλωµάτων. Μικρότερα, φθηνότερα, γρηγορότερα και πιο αξιόπιστα. Transistors Χρησιµοποιούνται για τη δηµιουργία πινάκων µνήµης Τερµατικό (Terminal) Συσκευή εισόδου/εξόδου µε πληκτρολόγιο και οθόνη 16 10
Υλικό Τέταρτης Γενεάς (1971-...) Κυκλώµατα µεγάλης και πολύ µεγάλης κλίµακας (Large-scale Integration) Μεγάλη πρόοδος στη τεχνολογία του τσιπ (chip) LSI, VLSI Προσωπικοί Υπολογιστές (PCs), Εµπορική Αγορά Η ανάπτυξη προσωπικών υπολογιστών ήρθε ως επακόλουθο της εµφάνισης των εταιριών Apple και Atari. Κατηγορίες Υπολογιστικών Συστηµάτων Προσωπικοί Υπολογιστές (Personal Computers, PC) Βασίζονται στους µικροϋπολογιστές (microcomputers) Χρησιµοποιούνται από ένα άτοµο στο γραφείο ή το σπίτι ιαθέτουν περιορισµένες υπολογιστικές δυνατότητες. Examples: Laptop, PDAs, desktop, tower, network computer Οι µίνι-υπολογιστές (minicomputers) Υποστηρίζουν ένα σύνολο χρηστών ιαθέτουν αυξηµένες υπολογιστικές δυνατότητες Χρησιµοποιούνται από επιχειρήσεις για επεξεργασία πληροφοριών Mainframes, Supercomputers Μπορούν να υποστηρίξουν εκατοντάδες χρήστες ταυτόχρονα ιαθέτουν ισχυρότατες υπολογιστικές δυνατότητες Χρησιµοποιούνται σε ιδιαίτερα απαιτητικές εφαρµογές (µετεωρολογία) Απαιτούν δαπανηρό περιβάλλον υποστήριξης 17 11 18 1 Παράλληλη Επεξεργασία και ικτύωση Παράλληλος Υπολογισµός Πολλαπλοί υπολογιστές αλληλεπιδρούν και µεταξύ τους και συνεργάζονται για πιο γρήγορη επεξεργασία δεδοµένων ικτύωση Το Ethernet επιτρέπει σε µικρούς υπολογιστές να ενωθούν µεταξύ τους και να ανταλλάξουν δεδοµένα και πληροφορίες: ίκτυα υπολογιστών ARPANET + Τοπικά ίκτυα Υπολογιστών Internet 19 1 Λογισµικό Πρώτης Γενεάς (1951-1959) Γλώσσα Μηχανής (Machine Language) Τα προγράµµατα γράφονταν στη δυαδική γλώσσα (0 και 1) Γλώσσες και Μεταγλωττιστές Assembly Τα προγράµµατα γράφονταν σε τεχνητές γλώσσες προγραµµατισµού και µετά µεταγλωττίζονταν σε γλώσσα µηχανής Προγραµµατιστές Οι προγραµµατιστές διαχωρίζονται σε προγραµµατιστές εφαρµογών και προγραµµατιστές συστηµάτων 0 13
Λογισµικό εύτερης Γενεάς (1959-1965) Γλώσσες Υψηλού Επιπέδου (High Level Languages) Χρησιµοποιούν ένα µικρό σύνολο από αγγλικές λέξεις. Κάνουν τον προγραµµατισµό πιο εύκολο: FORTRAN, COBOL, LISP. Γλώσσες Υψηλού Επιπέδου Γλώσσα Assembly Γλώσσα Μηχανής Λογισµικό Τρίτης Γενεάς (1965-1971) Λογισµικό Συστηµάτων Προγράµµατα υπηρεσιών (utility programs) Μεταφραστές γλώσσας Λειτουργικό Σύστηµα Καθορίζει ποια προγράµµατα και πότε να τρέξουν ιαχωρισµός µεταξύ χρηστών και υλικού Οι προγραµµατιστές τώρα γράφουν προγράµµατα για να χρησιµοποιηθούν από άτοµα που δεν ξέρουν πώς να προγραµµατίσουν 14 15 Λογισµικό Τρίτης Γενεάς (1965-1971) Λογισµικό Τέταρτης Γενεάς (1971-1989) Πακέτο Εφαρµογών Λογισµικό Συστηµάτων Γλώσσες Υψηλού Επιπέδου Γλώσσα Assembly Γλώσσα Μηχανής οµηµένος Προγραµµατισµός Pascal, C, C++ Νέο Λογισµικό Εφαρµογών για Χρήστες Λογιστικά φύλλα (Lotus), Επεξεργαστές κειµένου (Word Perfect), Συστήµατα διαχείρισης βάσεις δεδοµένων (DBASE) 3 16 4 17
Λογισµικό Πέµπτης Γενεάς (1990- Παρόν) Microsoft Το λειτουργικό σύστηµα Windows καθώς και άλλα προγράµµατα εφαρµογών (π.χ. MS Excel, MS Word, MS Access ) της εταιρίας Microsoft κυριαρχούν στην αγορά Αντικειµενοστραφής Σχεδιασµός Βασίζεται σε µια ιεραρχία αντικειµένων (π.χ. Java) Παγκόσµιο Πλέγµα Πληροφοριών (World Wide Web) Επιτρέπει την εύκολη παγκόσµια επικοινωνία δια µέσω του ιαδικτύου Χρήση Υπολογιστών εν είναι αναγκαία η γνώση πληροφορικής για χρήση υπολογιστών Ερωτήσεις για Συλλογισµό Πως το ιαδίκτυο επηρεάζει την καθηµερινή σας ζωή; Τι κοινωνικά θέµατα πηγάζουν από την άνοδο της χρήσης του ιαδικτύου; Τι ανάπτυξη βλέπετε από το µέλλον του ιαδικτύου; 5 18 6 19 Υπολογιστής ως Εργαλείο Προγραµµατιστής Συστηµάτων (δηµιουργεί εργαλεία) Προγραµµατιστής / Χρήστης Χρήστες χωρίς γνώση πληροφορικής Προγραµµατιστής Εφαρµογών (χρησιµοποιεί εργαλεία) Συγκεκριµένου-Πεδίου Προγράµµατα 7 0 Υπολογιστής ως Πεδίο Μελέτης Τι µπορεί να αυτοµατοποιηθεί αποτελεσµατικά; Τέσσερα Απαραίτητα Στοιχεία / Στάδια: 1. Αλγοριθµική Σκέψη. Αναπαράσταση 3. Προγραµµατισµός 4. Σχεδίαση Τι νοµίζετε; Η Πληροφορική ανήκει στο πεδίο των µαθηµατικών, των επιστηµών, ή της µηχανικής; 8 1
Περιοχές σχετικές µε Συστήµατα στην Πληροφορική Αλγόριθµοι και οµές εδοµένων Γλώσσες Προγραµµατισµού Αρχιτεκτονική Λειτουργικά Συστήµατα Μηχανική και Μεθοδολογία Λογισµικού Επικοινωνία Ανθρώπου-Μηχανής Περιοχές σχετικές µε Εφαρµογές στην Πληροφορική Αριθµητικός και Συµβολικός Υπολογισµός Βάσεις εδοµένων και Ανάκτηση Πληροφοριών Τεχνητή Νοηµοσύνη και Ροµποτική Γραφικά Βιοπληροφορική 9 3 30 4