FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016 Δρ. Γεώργιος Παπαλάμπρου Επικ. Καθηγητής ΕΜΠ Εργαστήριο Ναυτικής Μηχανολογίας george.papalambrou@lme.ntua.gr ΕΜΠ/ΣΝΜΜ Εργαστήριο Ναυτικής Μηχανολογίας
Περιεχόμενα Οργάνωση του μαθήματος Ιστoσελίδα του μαθήματος Σημειώσεις Βαθμολόγηση Εισαγωγή-αντικείμενο του μαθήματος
Οργάνωση
Μέχρι σήμερα
Οργάνωση Μαθήματος Το μάθημα γίνεται Δευτέρα 12.45-14.30 (Θεωρία) Τετάρτη 15.15-17.00 (Ασκήσεις) Χώρος: αίθουσα 209 Διάρκεια εξαμήνου: 13 εβδομάδες
Οργάνωση Μαθήματος Το μάθημα οργανώνεται μέσω της ιστοσελίδας: http://www.lme.ntua.gr:8080/academic-info-1/prospheromenamathemata/eisagoge-ste-fortran/eisagoge-ste-fortranantikeimenostraphes-programmatismos Εκεί υπάρχουν: παραδόσεις ως slides και/ή κείμενο [pdf files] ασκήσεις εργασίες για το σπίτι κώδικες FRTRN
Οργάνωση Μαθήματος Δίνεται έμφαση στην συνεργασία Διδάσκονταφοιτητών μέσω των παραδόσεων στην τάξη Βασική επικοινωνία μέσω email: george.papalambrou@lme.ntua.gr
Ιστοσελίδα Μαθήματος - 1 Αρχική Ιστοσελίδα ΕΝΜ: http://www.lme.ntua.gr Πλοήγηση: Academic Info Προσφερόμενα Μαθήματα
Ιστοσελίδα Μαθήματος - 2 Πλοήγηση: Academic Info Προσφερόμενα Μαθήματα Εισαγωγή στη FORTRAN & αντικειμενοστραφής προγραμματισμός
Ιστοσελίδα Μαθήματος - 3
Ιστοσελίδα Μαθήματος - 4 Ανακοινώσεις
Ιστοσελίδα Μαθήματος - 5 pdf παραδόσεων
Ιστοσελίδα Μαθήματος - 6 Υλικό στο Dropbox pdf ασκήσεων σπιτιού (HW)
Σημειώσεις -1 Το υλικό του μαθήματος αποτελείται από: τις σημειώσεις του Διδάσκοντα, σε μορφή pdf [από την ιστοσελίδα] ασκήσεις κώδικες FRTRN
Σημειώσεις-2 Σημειώσεις του Διδάσκοντα, σε μορφή pdf [από την ιστοσελίδα] ΥΠΟ ΔΙΑΜΟΡΦΩΣΗ
Σημειώσεις-3 Ασκήσεις του Διδάσκοντα, σε μορφή pdf [από την ιστοσελίδα] ΥΠΟ ΔΙΑΜΟΡΦΩΣΗ 1. Write a simple program that converts temperatures from Fahrenheit to Celsius and vice versa using C = 5(F 32)/9 and F = 9C/5+32. 2. Using allocatable arrays, write a program that tabulates and prints the binomial probability mass function... 3. Write a procedure that accepts the name of a function f as an argument and numerically approximates the first derivative, 4. Write a procedure that accepts as input an n p data matrix and computes the p 1 vector of sample means...
Τελικός Βαθμός Μαθήματος Ο τελικός βαθμός προκύπτει: Από το τελικό διαγώνισμα (80%) 2 σειρές ασκήσεων (homework), υποχρεωτικές (10+10 %) Παρατηρήσεις 1: Οι ασκήσεις προυποθέτουν χρήση FORTRAN στο περιβάλλον Silvefrost Plato
Ενότητες
Ενότητες Μαθήματος (web page) 1. Εισαγωγή στην γλώσσα προγραμματισμού FORTRAN 2. Απλοί τύποι δεδομένων, σταθερές και μεταβλητές, εκφράσεις, απλές εντολές. 3. Δομές ελέγχου, συναρτήσεις και διαδικασίες, πέρασμα παραμέτρων. 4. Στοιχεία μεθοδολογίας ορθού προγραμματισμού: αλγόριθμοι, δομές δεδομένων, επανάληψη, αναδρομή, δομημένος προγραμματισμός. 5. Φάσεις ανάπτυξης λογισμικού: προδιαγραφές, σχεδίαση, υλοποίηση, επαλήθευση, τεκμηρίωση, συντήρηση προγραμμάτων. 6. Σύνθετες δομές δεδομένων: πίνακες, εγγραφές, συνδεδεμένες λίστες. Δυναμική παραχώρηση μνήμης. 7. Βασικές έννοιες αντικειμενοστραφούς προγραμματισμού: αφηρημένοι τύποι δεδομένων, κλάσεις, αντικείμενα, μεταβλητές, μέθοδοι, ενθυλάκωση, κληρονομικότητα, πολυμορφισμός. 8. Διασύνδεση της FORTRAN με άλλες γλώσσες προγραμματισμού. 9. Υλοποίηση παραδειγμάτων και επίλυση προβλημάτων με τη γλώσσα προγραμματισμού FORTRAN.
Ενότητες Μαθήματος (web page) 1. Εισαγωγή στην γλώσσα προγραμματισμού FORTRAN. 2. Απλοί τύποι δεδομένων, σταθερές και μεταβλητές, εκφράσεις, απλές εντολές. 3. Δομές ελέγχου, συναρτήσεις και διαδικασίες, πέρασμα παραμέτρων. 4. Στοιχεία μεθοδολογίας ορθού προγραμματισμού: αλγόριθμοι, δομές δεδομένων, επανάληψη, αναδρομή, δομημένος προγραμματισμός. 5. Φάσεις ανάπτυξης λογισμικού: προδιαγραφές, σχεδίαση, υλοποίηση, επαλήθευση, τεκμηρίωση, συντήρηση προγραμμάτων. 6. Σύνθετες δομές δεδομένων: πίνακες, εγγραφές, συνδεδεμένες λίστες. Δυναμική παραχώρηση μνήμης. 7. Βασικές έννοιες αντικειμενοστραφούς προγραμματισμού: αφηρημένοι τύποι δεδομένων, κλάσεις, αντικείμενα, μεταβλητές, μέθοδοι, ενθυλάκωση, κληρονομικότητα, πολυμορφισμός. 8. Διασύνδεση της FORTRAN με άλλες γλώσσες προγραμματισμού. 9. Υλοποίηση παραδειγμάτων και επίλυση προβλημάτων με τη γλώσσα προγραμματισμού FORTRAN.
Ενότητες Μαθήματος (web page) 1. Εισαγωγή στην γλώσσα προγραμματισμού FORTRAN 2. Απλοί τύποι δεδομένων, σταθερές και μεταβλητές, εκφράσεις, απλές εντολές. 3. Δομές ελέγχου, συναρτήσεις και διαδικασίες, πέρασμα παραμέτρων. 4. Στοιχεία μεθοδολογίας ορθού προγραμματισμού: αλγόριθμοι, δομές δεδομένων, επανάληψη, αναδρομή, δομημένος προγραμματισμός. 5. Φάσεις ανάπτυξης λογισμικού: προδιαγραφές, σχεδίαση, υλοποίηση, επαλήθευση, τεκμηρίωση, συντήρηση προγραμμάτων. 6. Σύνθετες δομές δεδομένων: πίνακες, εγγραφές, συνδεδεμένες λίστες. Δυναμική παραχώρηση μνήμης. 7. Βασικές έννοιες αντικειμενοστραφούς προγραμματισμού: αφηρημένοι τύποι δεδομένων, κλάσεις, αντικείμενα, μεταβλητές, μέθοδοι, ενθυλάκωση, κληρονομικότητα, πολυμορφισμός. 8. Διασύνδεση της FORTRAN με άλλες γλώσσες προγραμματισμού. 9. Υλοποίηση παραδειγμάτων και επίλυση προβλημάτων με τη γλώσσα προγραμματισμού FORTRAN.
Ενότητες Μαθήματος (web page) 1. Εισαγωγή στην γλώσσα προγραμματισμού FORTRAN 2. Απλοί τύποι δεδομένων, σταθερές και μεταβλητές, εκφράσεις, απλές εντολές. 3. Δομές ελέγχου, συναρτήσεις και διαδικασίες, πέρασμα παραμέτρων. 4. Στοιχεία μεθοδολογίας ορθού προγραμματισμού: αλγόριθμοι, δομές δεδομένων, επανάληψη, αναδρομή, δομημένος προγραμματισμός. 5. Φάσεις ανάπτυξης λογισμικού: προδιαγραφές, σχεδίαση, υλοποίηση, επαλήθευση, τεκμηρίωση, συντήρηση προγραμμάτων. 6. Σύνθετες δομές δεδομένων: πίνακες, εγγραφές, συνδεδεμένες λίστες. Δυναμική παραχώρηση μνήμης. 7. Βασικές έννοιες αντικειμενοστραφούς προγραμματισμού: αφηρημένοι τύποι δεδομένων, κλάσεις, αντικείμενα, μεταβλητές, μέθοδοι, ενθυλάκωση, κληρονομικότητα, πολυμορφισμός. 8. Διασύνδεση της FORTRAN με άλλες γλώσσες προγραμματισμού. 9. Υλοποίηση παραδειγμάτων και επίλυση προβλημάτων με τη γλώσσα προγραμματισμού FORTRAN.
Ενότητες Μαθήματος (web page) 1. Εισαγωγή στην γλώσσα προγραμματισμού FORTRAN 2. Απλοί τύποι δεδομένων, σταθερές και μεταβλητές, εκφράσεις, απλές εντολές. 3. Δομές ελέγχου, συναρτήσεις και διαδικασίες, πέρασμα παραμέτρων. 4. Στοιχεία μεθοδολογίας ορθού προγραμματισμού: αλγόριθμοι, δομές δεδομένων, επανάληψη, αναδρομή, δομημένος προγραμματισμός. 5. Φάσεις ανάπτυξης λογισμικού: προδιαγραφές, σχεδίαση, υλοποίηση, επαλήθευση, τεκμηρίωση, συντήρηση προγραμμάτων. 6. Σύνθετες δομές δεδομένων: πίνακες, εγγραφές, συνδεδεμένες λίστες. Δυναμική παραχώρηση μνήμης. 7. Βασικές έννοιες αντικειμενοστραφούς προγραμματισμού: αφηρημένοι τύποι δεδομένων, κλάσεις, αντικείμενα, μεταβλητές, μέθοδοι, ενθυλάκωση, κληρονομικότητα, πολυμορφισμός. 8. Διασύνδεση της FORTRAN με άλλες γλώσσες προγραμματισμού. 9. Υλοποίηση παραδειγμάτων και επίλυση προβλημάτων με τη γλώσσα προγραμματισμού FORTRAN.
Ενότητες Μαθήματος (web page) 1. Εισαγωγή στην γλώσσα προγραμματισμού FORTRAN 2. Απλοί τύποι δεδομένων, σταθερές και μεταβλητές, εκφράσεις, απλές εντολές. 3. Δομές ελέγχου, συναρτήσεις και διαδικασίες, πέρασμα παραμέτρων. 4. Στοιχεία μεθοδολογίας ορθού προγραμματισμού: αλγόριθμοι, δομές δεδομένων, επανάληψη, αναδρομή, δομημένος προγραμματισμός. 5. Φάσεις ανάπτυξης λογισμικού: προδιαγραφές, σχεδίαση, υλοποίηση, επαλήθευση, τεκμηρίωση, συντήρηση προγραμμάτων. 6. Σύνθετες δομές δεδομένων: πίνακες, εγγραφές, συνδεδεμένες λίστες. Δυναμική παραχώρηση μνήμης. 7. Βασικές έννοιες αντικειμενοστραφούς προγραμματισμού: αφηρημένοι τύποι δεδομένων, κλάσεις, αντικείμενα, μεταβλητές, μέθοδοι, ενθυλάκωση, κληρονομικότητα, πολυμορφισμός. 8. Διασύνδεση της FORTRAN με άλλες γλώσσες προγραμματισμού. 9. Υλοποίηση παραδειγμάτων και επίλυση προβλημάτων με τη γλώσσα προγραμματισμού FORTRAN.
Ενότητες Μαθήματος (web page) 1. Εισαγωγή στην γλώσσα προγραμματισμού FORTRAN 2. Απλοί τύποι δεδομένων, σταθερές και μεταβλητές, εκφράσεις, απλές εντολές. 3. Δομές ελέγχου, συναρτήσεις και διαδικασίες, πέρασμα παραμέτρων. 4. Στοιχεία μεθοδολογίας ορθού προγραμματισμού: αλγόριθμοι, δομές δεδομένων, επανάληψη, αναδρομή, δομημένος προγραμματισμός. 5. Φάσεις ανάπτυξης λογισμικού: προδιαγραφές, σχεδίαση, υλοποίηση, επαλήθευση, τεκμηρίωση, συντήρηση προγραμμάτων. 6. Σύνθετες δομές δεδομένων: πίνακες, εγγραφές, συνδεδεμένες λίστες. Δυναμική παραχώρηση μνήμης. 7. Βασικές έννοιες αντικειμενοστραφούς προγραμματισμού: αφηρημένοι τύποι δεδομένων, κλάσεις, αντικείμενα, μεταβλητές, μέθοδοι, ενθυλάκωση, κληρονομικότητα, πολυμορφισμός. 8. Διασύνδεση της FORTRAN με άλλες γλώσσες προγραμματισμού. 9. Υλοποίηση παραδειγμάτων και επίλυση προβλημάτων με τη γλώσσα προγραμματισμού FORTRAN.
Η γλώσσα
Η γλώσσα FORTRAN Η γλώσσα FORTRAN (από τα αρχικά FORmulae TRANslator - μεταφραστής τύπων) είναι μία από τις πρώτες γλώσσες προγραμματισμού υψηλού επιπέδου, η οποία χρησιμοποιήθηκε κυρίως σε επιστημονικές αλλά και σε εμπορικές εφαρμογές. Δημιουργήθηκε τη δεκαετία του 1950 από την ΙΒΜ, από τον John Bacus, και χρησιμοποιείται μέχρι και σήμερα. Αρχικά η FORTRAN ήταν προσανατολισμένη στην επίλυση μαθηματικών προβλημάτων. https://el.wikipedia.org/wiki/fortran
Η γλώσσα FORTRAN Το 1953, ο J. Backus πρότεινε στους ανώτερους του στην IBM την ανάπτυξη γλώσσας εναλλακτικής της assembly language που είχαν για τον προγραμματισμό του IBM 704 mainframe computer IBM 704 mainframe computer https://el.wikipedia.org
Η γλώσσα FORTRAN Γλώσσα FORTRAN σε διάτρητη κάρτα για τον προγραμματισμό https://el.wikipedia.org
Η γλώσσα FORTRAN FORTRAN-77 written at RWTH Aachen University, Germany, 1987 https://el.wikipedia.org
Η γλώσσα FORTRAN-Εκδόσεις David Ham/Imperial UK
Η γλώσσα FORTRAN
Η γλώσσα FORTRAN To πρόγραμμα FORTRAN... και το αποτέλεσμα στο command line
Η γλώσσα FORTRAN
FORTRAN - Βιβλιογραφία 1. M. Metcalf, J. Reid, M. Cohen, Modern Fortran Explained, Oxford, 4th Edition, 2011. 2. A. Markus, Modern Fortran in Practice, Cambridge University Press, 2012. 3. N. Clerman, W. Spector, Modern Fortran: Style and Usage, Cambridge University Press, 1st edition, 2011. 4. Chivers, J. Sleightholme, Introduction to Programming with Fortran: With Coverage of Fortran 90, 95, 2003, 2008 and 77, Springer, 2nd Edition, 2012. Διαθέσιμα σε μορφή pdf από τον Διδάσκοντα
Το περιβάλλον
Περιβάλλον εργασίας Το περιβάλλον Silverfrost Plato για να κατεβάσετε και να εγκαταστήσετε την γλώσσα, http://www.silverfrost.com/ Γραφικό περιβάλλον ανάπτυξης Γίνεται χρήση της έκδοσης FORTRAN 95, για Windows
Περιβάλλον εργασίας Γραφικό περιβάλλον ανάπτυξης, με χρήση Project, κλπ
Περιβάλλον εργασίας Το περιβάλλον PLATO περιέχει βοήθεια (HELP)
Software engineering
Software Engineering: Μέθοδος «Spiral» Το σπειροειδές μοντέλο παρουσιάστηκε το 1986 από τον Barry Boehm Δίνεται έμφαση στην ανάλυση κινδύνου Υπάρχουν 4 φάσεις: Planning, Risk Analysis, Engineering και Evaluation. Ένα πρόγραμμα λογισμικού περνά επανειλημμένα μέσα από αυτές τις φάσεις στις επαναλήψεις (σπείρες)
Software Engineering: Μέθοδος «Waterfall» Το μοντέλο καταρράκτη είναι μια διαδοχική διαδικασία σχεδιασμού, στην οποία η πρόοδος θεωρείται ότι ρέει σταθερά προς τα κάτω σαν καταρράκτης σε όλες τις φάσεις της σύλληψης, ανάλυσης, σχεδιασμού, κατασκευής, δοκιμών, παραγωγής/υλοποίησης και συντήρησης.