Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές 1 ο Εξάμηνο Σπουδών Χειμερινό Εξάμηνο 2012/13 Τμήμα Εφαρμοσμένων Μαθηματικών, Πανεπιστήμιο Κρήτης Διδάσκων: Χαρμανδάρης Ευάγγελος, email: vagelis@tem.uoc.gr, Ιστοσελίδα Μαθήματος: www.tem.uoc.gr/~vagelis/courses/τem101/em101.html
Αντικείμενο Μαθήματος Δομή και λειτουργίες ενός ηλεκτρονικού υπολογιστή Hardware, Software. Σκοπός τoυ Μαθήματος: Εξοικείωση με τον Η/. Εκμάθηση του λειτουργικού συστήματος UNIX/LINUX. Αλγόριθμοι και γλώσσες προγραμματισμού. Προγραμματισμός με τη γλώσσα C. Υλοποίηση αλγορίθμων με τη γλώσσα προγραμματισμού C: Επίλυση προβλημάτων για κάποιο σύστημα εκφρασμένο με μαθηματικές εξισώσεις.
Αξιολόγηση / Βαθμολογία Τελική εξέταση: 65% και Ασκήσεις/Εργαστήριο: 35% Προσοχή: ο βαθμός τόσο του εργαστηρίου όσο και της τελικής εξέτασης πρέπει να είναι > 5 (50/%). Προαπαιτούμενα: Βασική κατανόηση της λειτουργίας ενός ηλεκτρονικού υπολογιστή. Σχετικά μαθήματα: Γλώσσα προγραμματισμού Η/Υ (ΤΕΜ-102). Αριθμητική Ανάλυση (ΤΕΜ-181).
Διδασκαλία Μαθήματος Διαλέξεις. Εργαστήρια: Παρουσίαση παραδειγμάτων. Υλοποίηση αλγορίθμων με τη γλώσσα προγραμματισμού C. Σημειώσεις σε μορφή Powerpoint. 6 ώρες την εβδομάδα (θεωρία + ασκήσεις/εργαστήριο).
Διάρθρωση Μαθήματος / Περιεχόμενα Κεφάλαιο 1 Εισαγωγικά στοιχεία: Ιστορική εξέλιξη των υπολογιστών. Hardware, Software. Κεφάλαιο 2 Το λειτουργικό σύστημα UNIX/LINUX: Το ηλεκτρονικό ταχυδρομείο και το διαδίκτυο. Σελιδομετρητές και μηχανές ψαξίματος του διαδικτύου. Κεφάλαιο 3 Αλγόριθμοι και γλώσσες προγραμματισμού : Βασικές έννοιες ενός αλγορίθμου. Παραδείγματα. Κεφάλαιο 4 Γλώσσα προγραμματισμού C: Το πρώτο μου πρόγραμμα «Hello World!» Κεφάλαιο 5 Στοιχεία γλώσσας προγραμματισμού C: Μεταβλητές και τύποι δεδομένων. Σταθερές. Αρχικοποίηση μεταβλητών. Κεφάλαιο 6 Στοιχεία γλώσσας προγραμματισμού C (συνέχεια): Εντολές ελέγχου. Επαναληπτικές διαδικασίες. Κεφάλαιο 7 Υλοποίηση Αλγορίθμων με τη Γλώσσα C: Εφαρμογές σε ένα εύρος διαφορετικών προβλημάτων.
Διδασκαλία Μαθήματος Για το μάθημα θα χρειαστούμε: Βασικές γνώσεις ανάλυσης. Βασικές γνώσεις μαθηματικής μοντελοποίησης. Χρήση λογισμικού πακέτου (Matlab). Τα παραπάνω θέματα θα παρουσιασθούν και μέσα στο μάθημα για την καλύτερη κατανόηση των περιεχομένων του μαθήματος.
Εργαστήριο Μαθήματος Το εργαστήριο του μαθήματος συμπεριλαμβάνει: Κατανόηση δομής και λειτουργίας ενός ηλεκτρονικού υπολογιστή. Εισαγωγή Εξοικείωση στο λειτουργικό σύστημα UNIX/LINUX. Βασικά Υλοποίηση αλγορίθμων σε γλώσσα προγραμματισμού C. Υλοποίηση αλγορίθμων σε γλώσσα προγραμματισμού C. Κατά τη διάρκεια του εξαμήνου θα δοθούν (3-4) σειρές ασκήσεων. Οι ασκήσεις είναι είτε ατομικές είτε σε ομάδες των 2 ατόμων.
Στόχοι Μαθήματος Μετά την ολοκλήρωση του μαθήματος θα πρέπει να έχετε κατανοήσει Το πώς δουλεύει ένας ηλεκτρονικός υπολογιστής, και να είστε σε θέση: Να υλοποιείτε απλούς αλγορίθμους σε γλώσσα προγραμματισμού C. Να επιλύεται μαθηματικά προβλήματα χρησιμοποιώντας προγραμματισμό. Να αναλύεται/χρησιμοποιείται πολύπλοκα προγράμματα σε C.
Κεφ. I: Εισαγωγή Ιστορικά Στοιχεία Εισαγωγικές Έννοιες Τι είναι ένας ηλεκτρονικός υπολογιστής, Η/Υ? Ιστορία των Η/Υ Αρχιτεκτονική των Η/Υ Δυαδικό σύστημα. Γιατί οι σύγχρονοι Η/Υ το χρησιμοποιούν?
Τι είναι ένας Η/Υ? Δυνατότητα εκτελέσεως υπολογισμών και λογικών αποφάσεων. Πολλές (Δισεκατομμύρια?) φορές μεγαλύτερη ταχύτητα από του ανθρώπου! Προγράμματα υπολογιστών Εντολές βάσει των οποίων ένας Η/Υ εκτελεί κάποια συγκεκριμένη εργασία Υλικό (hardware) Ηλεκτρονικά και μηχανικά τμήματα ενός υπολογιστικού συστήματος Λογισμικό (software) Προγράμματα και δεδομένα που εκτελούνται σε ένα Η/Υ
Ιστορία των Η/Υ ~ 2000 π.χ.: Επίλυση πρακτικών υπολογιστικών προβλημάτων. B. Pascal (~1640) Μηχανή πρόσθεσης G. Leibniz (~1673) Μηχανή τεσσάρων βασικών πράξεων (+, -, *, /) Joseph Babbage (~1850) Μηχανικοί υπολογιστές: Εισαγωγή, Επεξεργασία Εξαγωγή. Αναλυτική Μηχανή. George Boole (~1850) Θεωρία μαθηματικής λογικής. Ada Byron (~1880) Σχεδίασε προγράμματα για μηχανές Babbage (Αναλυτικές Μηχανές). Alan Turing (~1950) Έννοια προγραμματισμού.
Ιστορία των Η/Υ (~1946) von Neumann: Έννοια αποθηκευμένου προγράμματος. ~ 1947: Εφεύρεση κρυσταλλοδιόδου (transistor) ~ 1959: Εφεύρεση ολοκληρωμένου κυκλώματος (integrated circuit, chip).
Μηχανές Babbage Υπολογισμοί με βάση «μηχανικών» υπολογιστών κινούμενων με ατμό. Εισήγαγε τα στάδια υπολογιστικής διαδικασίας: Εισαγωγή-Επεξεργασία-Εξαγωγή
Alan Turing Ιδέα της Προγραμματισμένης Υπολογιστικής μηχανής.
John von Neumann Εισήγαγε την έννοια αποθηκευμένου προγράμματος, δηλαδή ένα τρόπο να χρησιμοποιεί την μνήμη του υπολογιστή για να «αποθηκεύσει» ένα πρόγραμμα μέσα στον υπολογιστή ώστε ο υπολογιστής να παίρνει εντολές από την μνήμη του.
Άνθρωποι Υπολογιστές (Human Computers) Άνθρωποι οι οποίοι εκτελούσαν μια σειρά από αριθμητικές πράξεις.
ENIAC (1946) Electronic Numerical Integrator and Computer (ENIAC) 18000 λυχνίες κενού. Διαστάσεις: 9 x 18 m Βάρος: 30 τόνοι.
EDVAC (1949) Διάδοχος του ENIAC από John Eckert and John Mauchly of U Penn & John von Neumann. Η «αποθήκευση προγράμματος» γινόταν σε επίπεδο μνήμης. Jonh Von Neumann Όλα τα δεδομένα και εντολές αναπαρίστανται μέσω δυαδικού κώδικα και αποθηκεύονται στην μνήμη του υπολογιστή. Ο υπολογιστής δεν διακρίνει δεδομένα από εντολές.
Ιστορικά Στοιχεία: Συνέχεια 1947 William Shockley invents the transistor, a solid-state, reliable version of the vacuum tube. 1954 Texas Instruments announces the start of commercial production of silicon transistors. 1969 Intel s Ted Hoff designs a chip that can follow instructions and perform simple functions on data. 1981 IBM introduces its Personal Computer (PC). IBM PC5150
Ιστορικά Στοιχεία: Συνέχεια 1984 Apple introduces the Macintosh, a computer using a mouse and graphic interface. 1985 First retail version of Microsoft Windows on November 20,1985, 128 KB RAM64 KB ROM 3.5" 400 KB floppy drive 512 x 342 pixel, b&wmonitor A mouse A few applications (MacWrite, MacPaint)
Βιβλιογραφία «Η Γλώσσα Προγραμματισμού C (The C Programming Language)» των Brian W. Kernighan και Dennis Μ. Ritchie, Εκδόσεις Κλειδάριθμος. Η βιβλιογραφία βρίθει κυριολεκτικά με βιβλία για την εκμάθηση της γλώσσας και στο διαδίκτυο μπορεί να βρει κανείς χιλιάδες οδηγούς εκμάθησης (tutorials). Εισαγωγή στο λειτουργικό σύστημα UNIX/LINUX: www.ee.surrey.ac.uk/teaching/unix/ «Η τέχνη και η επιστήμη της C», Eric S. Roberts, Εκδόσεις Κλειδάριθμος.