Fortran και Αντικειμενοστραφής προγραμματισμός. 1η ενότητα

Σχετικά έγγραφα
Εισαγωγή. Σκοπός του μαθήματος

Εισαγωγή στις έννοιες του προγραμματισμού και της πληροφορικής

Fortran και Αντικειμενοστραφής προγραμματισμός

29/9/2017. Εισαγωγή. Διαφάνειες παρουσιάσεων 29/9/17. Σκοπός του μαθήματος

Διαφάνειες παρουσιάσεων

Διαφάνειες παρουσιάσεων Αρχικές Διαφάνειες σε Pascal: Σ.Ζάχος, Ν.Παπασπύρου Προσαρμογή σε Fortran: Α.Παγουρτζής, Δ.Σούλιου

Fortran και Αντικειμενοστραφής προγραμματισμός.

ιαφάνειες παρουσίασης #1

Προγραμματισμός Η/Υ. 1 η ενότητα: Εισαγωγή στις γλώσσες προγραμματισμού. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων

Θεμελιώδη Θέματα Επιστήμης Υπολογιστών

Η ΑΕΠΠ IN A GLANCE! ΦΡΟΝΤΙΣΤΗΡΙΑ ΠΟΛΥΜΕΝΗ

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Σύντοµη Ιστορία της Πληροφορικής

ΑΕΠΠ Ερωτήσεις θεωρίας

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ Της ΠΛΗΡΟΦΟΡΙΚΗΣ. Εισαγωγή

ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ. 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

κεφάλαιο Βασικές Έννοιες Επιστήμη των Υπολογιστών

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

Fortran και Αντικειμενοστραφής προγραμματισμός.

ΜΑΘΗΜΑΤΑ ΤΜΗΜΑΤΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ ΠΑΡΑ ΟΣΕΙΣ ΑΣΚΗΣΕΙΣ ΚΑΘΗΓΗΤΕΣ/ΤΡΙΕΣ

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

Α. Ερωτήσεις Ανάπτυξης

ΗΥ Λογική. Διδάσκων: Δημήτρης Πλεξουσάκης Καθηγητής

Κεφάλαιο 1: Εισαγωγή. Αρχές Γλωσσών και Προγραμματισμού και Μεταφραστών. Γιάννης Γαροφαλάκης ΤΜΗΥΠ - Πανεπιστήμιο Πατρών

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Ενότητα 1: Εισαγωγή. Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών

Λογική στην Πληροφορική - Εισαγωγή

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Προγραμματισμός και Εφαρμογές Υπολογιστών

ΚΑΤΑΝΟΗΣΗ ΑΝΑΛΥΣΗ ΕΠΙΛΥΣΗ. Ο προγραμματισμός ασχολείται με το σύνολο των εντολών που δίνονται στον υπολογιστή ώστε να υλοποιείται ο αλγόριθμος.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Πληροφορική 2. Γλώσσες Προγραμματισμού

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Τεχνολογία Λογισµικού Ι Κεφάλαιο 5

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΜΑΘΗΜΑ ΓΕΝΙΚΗΣ ΠΑΙΔΕΙΑΣ Β ΛΥΚΕΙΟΥ

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ

Από την Άλγεβρα των Υπολογισμών στα Υπολογιστικά Συστήματα Άλγεβρας

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΤΗΣ ΙΟΙΚΗΣΗΣ ΤΜΗΜΑ ΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ. Δρ. Κωνσταντίνος Κούτσικος - Δρ. Ιάσων Κουφοδόντης

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

ιακριτές Μέθοδοι για την Επιστήμη των Υπολογιστών

Γλώσσες Προγραμματισμού Μεταγλωττιστές

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Εισαγωγή

Β Εξάµηνο Τίτλος Μαθήµατος Θ Φ Α.Π Ε Φ.E. Π.Μ Προαπαιτούµενα

[1] Στόχοι. Υπολογιστικά συστήματα. Υπολογιστικά συστήματα

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ

4.2.1 Α εξάμηνο Β εξάμηνο Γ εξάμηνο 4.2. ΣΥΝΟΠΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΑΝΑ ΕΞΑΜΗΝΟ

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

6. Εισαγωγή στον προγραµµατισµό

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΣΧΟΛΗ ΟΙΚΟΝΟΜΙΑΣ ΔΙΟΙΚΗΣΗΣ και ΠΛΗΡΟΦΟΡΙΚΗΣ. ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ και ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΟΔΗΓΟΣ ΜΕΤΑΒΑΤΙΚΩΝ ΔΙΑΤΑΞΕΩΝ

Εισαγωγή στον Προγ/μό Υπολογιστών. Διάλεξη 0

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07

ΠΛΗΡΟΦΟΡΙΚΗ: ΥΠΟΛΟΓΙΣΤΕΣ & ΤΕΧΝΟΛΟΓΙΕΣ ΔΙΑΔΙΚΤΥΟΥ

Εισαγωγή στον προγραμματισμό

Εισαγωγή στον Προγραμματισμό

Μαλούτα Θεανώ Σελίδα 1

6. 1 Η έννοια του προγράμματος

Ενότητα 1: «Εισαγωγή στην Αλγοριθμική και τον Προγραμματισμό. Απλές ασκήσεις με γλώσσα Pascal»

Διδάσκων:Μ.Χατζόπουλος, Παραδόσεις:Τρίτη 4-6, Τετάρτη 1-3; (Αμφιθέατρο Α15) Πληροφορίες στην ιστοσελίδα του μαθήματος

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΣΧΟΛΗ ΟΙΚΟΝΟΜΙΑΣ ΔΙΟΙΚΗΣΗΣ και ΠΛΗΡΟΦΟΡΙΚΗΣ. ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ και ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΟΔΗΓΟΣ ΜΕΤΑΒΑΤΙΚΩΝ ΔΙΑΤΑΞΕΩΝ

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον

215 Μηχανικών Η/Υ και Πληροφορικής Πάτρας

Επικοινωνία Ανθρώπου- Υπολογιστή Σχεδίαση Αλληλεπίδρασης

Γενικά περί υπολογιστών

ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ Β ΛΥΚΕΙΟΥ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΕΠΙΚΟΙΝΩΝΙΩΝ ΕΡΓΑΣΙΑ Α ΤΕΤΡΑΜΗΝΟΥ ΤΟΥ ΜΑΘΗΤΗ ΠΑΠΑΝΙΚΟΛΑΟΥ ΓΙΩΡΓΟΥ

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Εισαγωγή

Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ

Στοιχεία Προτασιακής Λογικής

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ. Δρ.

Υπολογιστές Ι. Άδειες Χρήσης. Εισαγωγή. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Στέφανος Ουγιάρογλου

Κεφάλαιο 1 Προγραμματισμός Υπολογιστή. Εφαρμογές Πληροφορικής Κεφ. 7 Καραμαούνας Πολύκαρπος 1

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 6 ο

Επιµέλεια Θοδωρής Πιερράτος

Π ρ ο γ ρ α μ μ α τ ι σ μ ό ς Β α σ ι κ έ ς έ ν ν ο ι ε ς Ι σ τ ο ρ ι κ ή α ν α δ ρ ο μ ή Η έννοια του προγράμματος Ιστορική αναδρομή

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων. 1. Εισαγωγή. Ιωάννης Κατάκης. ΕΠΛ 032: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τα επιμέρους τμήματα Η ΟΜΗ TOY ΥΠΟΛΟΓΙΣΤΗ. Αναπαράσταση μεγεθών. Αναλογική αναπαράσταση ΚΕΝΤΡΙΚΗ ΜΝΗΜΗ ΜΟΝΑ Α ΕΛΕΓΧΟΥ

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια.

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 4: Εισαγωγή / Σύνολα

ΚΕΦΑΛΑΙΟ 6 Ο ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Βασίλειος Κοντογιάννης ΠΕ19

Transcript:

Fortran και Αντικειμενοστραφής προγραμματισμός www.corelab.ntua.gr/courses/fortran_naval/naval Διδάσκοντες: Άρης Παγουρτζής (pagour@cs.ntua.gr) (Επίκουρος Καθηγητής ΣΗΜΜΥ ) Δώρα Σούλιου (dsouliou@mail.ntua.gr) (ΕΔΙΠ ΣΗΜΜΥ) 1η ενότητα Διαδικαστικά Εισαγωγή στην πληροφορική Εισαγωγή στην γλώσσα Fortran Παραδείγματα προγραμμάτων Fortran Αρχικές Διαφάνειες σε Pascal: Ε. Ζάχος, Ν. Παπασπύρου Προσαρμογή σε Fortran - συμπληρώσεις: Α. Παγουρτζής, Δ. Σούλιου 1

Διαδικαστικά Δευτέρα 10:45 14:30 Αμφιθέατρο Ηλεκτρολόγων Τετάρτη 15:45 17:30 Αμφιθέατρο Ηλεκτρολόγων Ώρες γραφείου Τετάρτη 13:00 15:00 Γραφείο 1.1.30 παλαιό κτίριο ΣΗΜΜΥ Τηλέφωνο: 210 7721644 Βαθμολογία (πρωτοετείς φοιτητές) Τελική Εξέταση (9 μονάδες) Σειρές ασκήσεων (1 μονάδα) με προφορική εξέταση 2

Εισαγωγή (i) Σκοπός του μαθήματος Εισαγωγή στην πληροφορική (computer science) Εισαγωγή στον προγραμματισμό ηλεκτρονικών υπολογιστών (Η/Υ) Μεθοδολογία αλγοριθμικής επίλυσης προβλημάτων 3

Εισαγωγή (ii) Αλγόριθμος Πεπερασμένη ακολουθία ενεργειών που περιγράφει τον τρόπο επίλυσης ενός προβλήματος Εφαρμόζεται σε δεδομένα (data) Πρόγραμμα Ακριβής περιγραφή ενός αλγορίθμου σε μια τυπική γλώσσα που ονομάζεται γλώσσα προγραμματισμού 4

Εισαγωγή (iii) Φυσική γλώσσα Χωρίς τόσο αυστηρούς συντακτικούς περιορισμούς Μεγάλη πυκνότητα και σημασιολογική ικανότητα Τυπική γλώσσα Αυστηρότατη σύνταξη και σημασιολογία Γλώσσα προγραμματισμού Τυπική γλώσσα στην οποία μπορούν να περιγραφούν υπολογισμοί Εκτελέσιμη από έναν ηλεκτρονικό υπολογιστή 5

Εισαγωγή (iv) Πληροφορική Ηλεκτρονικοί υπολογιστές (engineering) Σχεδίαση και κατασκευή Μαθηματικά Θεωρία και αναλυτική μέθοδος Κεντρική έννοια: υπολογισμός (computation) 6

Εισαγωγή (v) Πληροφορική: μαθηματικοποίηση της μεθοδολογίας των μηχανικών Απαιτήσεις Πρόβλημα Προδιαγραφές Σχεδίαση Υλοποίηση Εμπειρικός έλεγχος Θεωρητική επαλήθευση Βελτιστοποίηση Πολυπλοκότητα (κόστος πόρων-αγαθών) Τεκμηρίωση Συντήρηση Έννοιες που υπήρχαν για τους μηχανικούς, στην πληροφορική τυποποιήθηκαν, πήραν μαθηματική μορφή, άρα μπορεί κανείς να επιχειρηματολογήσει με αυτές τις έννοιες χρησιμοποιώντας αποδείξεις. 7

Εισαγωγή (vi) Δευτεροβάθμια εκπαίδευση Σκοπός: να μάθεις να σκέφτεσαι Η Ευκλείδεια Γεωμετρία (με τη βασική διδακτική της αξία) απουσιάζει από το πρόγραμμα σπουδών εδώ και χρόνια. Αποτέλεσμα: όπως είδαμε και στις πανελλήνιες εξετάσεις δίνεται έμφαση στην αποστήθιση ανουσίων θεωρημάτων και γνώσεων διαφορικού και απειροστικού λογισμού. Η ικανότητα μαθηματικής επίλυσης απλών αλλά πρωτότυπων προβλημάτων δεν παίζει ρόλο. Απουσία γνώσεων συνδυαστικής (μέτρηση περιπτώσεων, τρίγωνο Pascal). Εφαρμογή των αποστηθισμένων κανόνων; Άλγεβρα: αν ρωτήσω έναν τελειόφοιτο Λυκείου πόσο κάνει 107 93 θα δυσκολευτεί πολύ να απαντήσει, ενώ φυσικά γνωρίζει ότι (α+β)(α β) = α 2 β 2 8

Εισαγωγή (vii) Οι μαθητές αγνοούν την έννοια του αποδοτικού αλγόριθμου π.χ. μαθαίνουν ένα μη-αποδοτικό αλγόριθμο για την εύρεση του Μ.Κ.Δ. ενώ ο αλγόριθμος του Ευκλείδη απουσιάζει από την ύλη Πρόταση Εισαγωγή της Αλγοριθμικής Πληροφορικής στη δευτεροβάθμια εκπαίδευση για όλους τους μαθητές Μεθοδολογία επίλυσης προβλημάτων με σχεδίαση και υλοποίηση αλγορίθμων 9

Εισαγωγή (viii) Τριτοβάθμια εκπαίδευση Η τεχνολογία αλλάζει αέναα και γρήγορα τα θεμέλια μένουν Αυτά τα θεμέλια πρέπει να είναι η ραχοκοκαλιά στην τριτοβάθμια εκπαίδευση: έμφαση στην αλγοριθμική σκέψη σε αντιδιαστολή με τις τεχνολογικές δεξιότητες (computer literacy) Computer science, computing science, informatics Dijkstra: η Επιστήμη των Υπολογιστών έχει τόση σχέση με τους υπολογιστές όση και η Αστρονομία με τα τηλεσκόπια Primality: σημαντικό επίτευγμα σε μία χώρα χωρίς υποδομές 10

Εισαγωγή (ix) Να μην ξεχνάμε ότι Το να κάνεις λάθη είναι ανθρώπινο. Για να τα κάνεις τελείως "μπάχαλο" χρειάζεσαι υπολογιστή! 11

Εισαγωγή (x) Κατασκευή υπολογιστικών μηχανών Αρχαιότητα: υπολογιστικές μηχανές, μηχανισμός των Αντικυθήρων, κ.λπ. 17ος αιώνας, Pascal και Leibniz, μηχανικές υπολογιστικές αριθμομηχανές στοιχειώδεις αριθμητικές πράξεις 1830 1840, Babbage, αναλυτική μηχανή λογάριθμοι, τριγωνομετρικές συναρτήσεις 1880 1890, Hollerith, μηχανή με διάτρητες κάρτες για την αυτοματοποίηση των εκλογών 12

Εισαγωγή (xi) Κατασκευή υπολογιστών 1920 1930, Bush, ηλεκτρική (αναλογική) υπολογιστική μηχανή διαφορικές εξισώσεις ~1940, Zuse, ηλεκτρονική (ψηφιακή) υπολογιστική μηχανή πρόγραμμα και δεδομένα, χωριστά 1945 1950, μοντέλο von Neumann πρόγραμμα και δεδομένα, από κοινού 1950 σήμερα, ραγδαία ανάπτυξη της τεχνολογίας των ηλεκτρονικών υπολογιστών 13

Εισαγωγή (xii) Κατασκευή υπολογιστών 1952 main frames IBM 650, 7000, 360 1965 mini computers DEC PDP-8 1977 personal computers Apple II 1981 IBM PC 1983, 1984 Apple: Lisa, Macintosh 1985 internet 1990 world wide web 2000 PDA, smartphones, κ.λπ. 14

Εισαγωγή (xiii) Μηχανικοί υπολογιστών Tom Watson, IBM, 1945 Ο κόσμος χρειάζεται περίπου 5 υπολογιστές Gordon Moore, Intel, 1965 Η πυκνότητα του hardware στα ολοκληρωμένα κυκλώματα διπλασιάζεται κάθε 18 μήνες http://www.intel.com/research/silicon/mooreslaw.htm 15

Εισαγωγή (xiv) Θεμέλια της πληροφορικής Μαθηματική λογική Αριστοτέλης: συλλογισμοί A A B B (modus ponens) Ευκλείδης: αξιωματική θεωρία Hilbert: αξίωμα, θεώρημα, τυπική απόδειξη 16

Εισαγωγή (xv) Πρόγραμμα του Leibniz: θεμελίωση των μαθηματικών γλώσσα για όλα τα μαθηματικά θεωρία συνεπής (consistent) και πλήρης (complete) A A αντίφαση Γλώσσα (Boole, De Morgan, Frege, Russel) προτασιακός λογισμός,,,, κατηγορηματικός λογισμός, 17

Εισαγωγή (xvi) Θεωρία Συνολοθεωρία, Cantor, Frege Παράδοξο του Russel A A A = { x x x } A A A A A A Άλλες θεωρίες συνόλων (ZF, κ.λπ.) Άλλες θεωρίες για τη θεμελίωση των μαθηματικών (θεωρία συναρτήσεων, κατηγοριών, κ.λπ.) 1920 1930, προσπάθειες για απόδειξη συνέπειας 18

Εισαγωγή (xvii) Συνέπεια και πληρότητα 1931, Gödel, θεώρημα μη πληρότητας δεν είναι δυνατόν να κατασκευαστεί συνεπής και πλήρης θεωρία της αριθμητικής 1936, Turing, μη αποκρίσιμες (undecidable) προτάσεις μηχανή Turing, υπολογισιμότητα... 0 1 1 0 σύστημα ελέγχου (εσωτερική κατάσταση) άπειρη ταινία κεφαλή... 19

Εισαγωγή (xviii) Μη πληρότητα (incompleteness) David Hilbert, 1862-1943 Kurt Gödel, 1906-1978 (ασιτία) Δοξιάδης Incompleteness: a play and a theorem Ο θείος Πέτρος και η εικασία του Goldbach Παπαδημητρίου Το χαμόγελο του Turing Hoffstader Gödel, Escher, and Bach 20

Εισαγωγή (xix) Κλάδοι της πληροφορικής Αλγόριθμοι και δομές δεδομένων Γλώσσες προγραμματισμού Αρχιτεκτονική υπολογιστών και δικτύων Αριθμητικοί και συμβολικοί υπολογισμοί Λειτουργικά συστήματα Μεθοδολογία τεχνολογία λογισμικού Βάσεις δεδομένων και διαχείριση πληροφοριών Τεχνητή νοημοσύνη και ρομποτική Επικοινωνία ανθρώπου υπολογιστή 21

Εισαγωγή (xx) Υπολογιστής επεξεργαστής μνήμη συσκευές εισόδου/εξόδου Ιδιότητες αυτόματο χωρίς εξυπνάδα μεγάλη ταχύτητα ακρίβεια στις πράξεις 22

Γλώσσες προγραμματισμού (i) Γλώσσα μηχανής 0110110 11011011 διεύθυνση εντολή Συμβολική γλώσσα (assembly) label: add ax, bx διεύθυνση πράξη δεδομένα Γλώσσες χαμηλού και υψηλού επιπέδου Υλοποίηση γλωσσών προγραμματισμού μεταγλωττιστής (compiler) διερμηνέας (interpreter) 23

Γλώσσες προγραμματισμού (ii) Κυριότερες γλώσσες, ιστορικά 1950 1960 FORTRAN, LISP, COBOL, Algol, BASIC, PL/I 1970 Pascal, C, Smalltalk, Prolog, ML, Logo 1980 C++, Modula-2, Ada, Perl, MATLAB, Erlang, Eiffel 1990 Java, Python, Ruby, Haskell, PHP, Visual Basic, Javascript 2000 C#, F#,... 24

FORTRAN (FORmulae TRANslator) (i) Από τις πρώτες γλώσσες προγραμματισμού υψηλού επιπέδου Δημιουργήθηκε τη δεκαετία του '50 (1956) για τον IBM704 και στη συνέχεια προσαρμόστηκε σε διάφορα υπολογιστικά συστήματα 1958: Fortran II με πολλά υποπρογράμματα Ακολούθησε η Fortran IV η οποία δόθηκε στην επιστημονική κοινότητα Ανάγκη τυποποίησης (πολλές υλοποιήσεις σε διάφορες μηχανές, συμβατότητα μεταξύ των μηχανών) Fortran 66: η πρώτη τυποποιημένη Fortran από το αμερικάνικο ινστιτούτο ANSI Fortran 77: η πρώτη τυποποιημένη Fortran από τον ISO 25

FORTRAN (FORmulae TRANslator) (ii) Fortran 77: συμπλήρωνε τις ελλείψεις της Fortran 66 και υιοθετούσε χαρακτηριστικά που είχαν επιτυχώς υλοποιηθεί σε άλλες γλώσσες (Algol, Modula, Pascal) Fortran 90: δόθηκε από τον ISO το 1992 με ριζικές αλλαγές Fortran 95: δόθηκε από τον ISO το 1997 με δυνατότητα παράλληλης επεξεργασίας Fortran 2003/2008: με πολλά νέα χαρακτηριστικά, κυρίως αντικειμενοστραφούς προγραμματισμού Αναμένονται νεώτερες εκδόσεις (Fortran 2015) 2 βασικές διάλεκτοι της γλώσσας Παλαιά (πριν την Fortran90) εκατομμύρια προγράμματα σε αρχεία με επέκταση.for ή.f Νέα (Fortran 90,95,2003, 2008) προγράμματα σε αρχεία με επέκταση.f90,.f95,.f03,.f08 26

FORTRAN (FORmulae TRANslator) (iii) Πλεονεκτήματα άλλων γλωσσών επικοινωνία με τη μηχανή (γλώσσες χαμηλού επιπέδου) δημιουργία γραφικών χειρισμό αρχείων ευκολία χρήσης επικοινωνία με το διαδίκτυο Πλεονεκτήματα Fortran ταχύτερη σε πολύπλοκους επιστημονικούς και τεχνικούς υπολογισμούς, προβλήματα με πολυδιάστατους πίνακες, πολλές επαναλήψεις, προβλήματα βελτιστοποίησης 27

Παραδείγματα (i) PROGRAM Hello1 IMPLICIT NONE WRITE(*,*) 'hello world' END PROGRAM Hello2 IMPLICIT NONE WRITE(*,*) 'hello ', 'world' END PROGRAM Hello3 IMPLICIT NONE WRITE(*,*) 'hello ' WRITE(*,*) 'world' END 28

Παραδείγματα (ii) PROGRAM Hello4 IMPLICIT NONE WRITE(*, "(A)", advance="no")'hello' WRITE(*,*) 'world' END 30

Παραδείγματα (iii) PROGRAM Hello5 IMPLICIT NONE CALL hello CALL hello CALL hello CALL hello END SUBROUTINE hello IMPLICIT NONE WRITE(*,*) ' hello world' END 32

Παραδείγματα (iv) PROGRAM Hello6 IMPLICIT NONE INTEGER:: i DO i=1,20 END DO CALL hello END SUBROUTINE hello IMPLICIT NONE WRITE(*,*) 'hello world' END 34

Παραδείγματα (v) PROGRAM Hello7 IMPLICIT NONE INTEGER:: i=1 INTEGER, PARAMETER:: n=21 DO WHILE (i<n) CALL hello(i) i=i+1 END DO END SUBROUTINE hello(j) IMPLICIT NONE INTEGER:: j WRITE(*,*) j, ' hello world' END 36

Παραδείγματα (vi) PROGRAM Hello8 IMPLICIT NONE INTEGER:: i,n WRITE(*,*) 'Give number of greetings ',& 'then press <enter>:' READ(*,*) n DO i=1,n CALL hello(i) END DO END SUBROUTINE hello(j) IMPLICIT NONE INTEGER:: j WRITE(*,*)j,'hello world' END 38

Παραδείγματα (vii) PROGRAM Hello9 IMPLICIT NONE INTEGER:: i,n WRITE(*,*) 'Give number of greetings ',& 'then press <enter>:' READ(*,*) n DO i=1,n,2 CALL hello(i) END DO END SUBROUTINE hello(j) IMPLICIT NONE INTEGER:: j WRITE(*,*)j,'hello world' END 40

Παραδείγματα (viii) PROGRAM Hello10 IMPLICIT NONE INTEGER:: i,n WRITE(*,*) 'Give number of greetings ', & 'then press <enter>:' READ(*,*) n IF (n<0) THEN WRITE(*,*) 'O n είναι αρνητικός' ELSE DO i = 1,n,1 CALL hello END DO END IF END SUBROUTINE hello IMPLICIT NONE WRITE(*,*)'hello world' END 42

Πώς θα τρέξετε τα προγράμματα Εγκαταστήστε μια έκδοση Linux (π.χ. Ubuntu) Ανοίξτε ένα τερματικό (τρέχοντας π.χ. xterm) Εγκαταστήστε την GNU Fortran με την εντολή > sudo apt-get install gfortran Δημιουργήστε ένα αρχείο για κάθε πρόγραμμα, χρησιμοποιώντας έναν κειμενογράφο (π.χ. gedit) Το αρχείο σας να έχει κατάληξη.f95 (π.χ. prog1.f95) Δώστε την εντολή > gfortan prog1.f95 -o prog1 Το εκτελέσιμο αρχείο που θα δημιουργηθεί λέγεται prog1 και εκτελείται δίνοντας >./prog1 44