Παρουσίαση/Προβολή
Επιστημονικός Προγραμματισμός με την Γλώσσα Python
(1.006) - Καλογεράκης Μιχάλης
Περιγραφή Μαθήματος
Tο μάθημα αυτό εστιάζει στον σχεδιασμό και την ανάπτυξη αλγορίθμων για την αντιμετώπιση επιστημονικών προβλημάτων και παρουσιάζει συγκεκριμένες τεχνικές για την υλοποίηση τους.
Για την κωδικοποίηση και εκτέλεση των αλγορίθμων χρησιμοποιείται η γλώσσα προγραμματισμού Python, μια γλώσσα αρκετά σύγχρονη και δημοφιλής που αναπτύσσεται ως ανοιχτό λογισμικό και διατίθεται ελεύθερα στο διαδίκτυο. Με την επιτυχή ολοκλήρωση του μαθήματος οι φοιτητές είναι σε θέση να χρησιμοποιούν την γλώσσα προγραμματισμού Python για την επίλυση βασικών επιστημονικών προβλημάτων
Για αναλυτικές πληροφορίες σχετικά με τον τρόπο διεξαγωγής και αξιολόγησης του μαθήματος κάντε κλικ στον σύνδεσμο "> Περίγραμμα" κάτω αριστερά
Ημερομηνία δημιουργίας
Παρασκευή 20 Σεπτεμβρίου 2019
-
Μαθησιακοί στόχοι
Με την επιτυχή ολοκλήρωση του μαθήματος οι φοιτητές θα είναι σε θέση να επιλύουν βασικά επιστημονικά -και όχι μόνο- προβλήματα χρησιμοποιώτας την γλώσσα προγραμματισμού Python
Ειδικότερα οι φοιτητές θα είναι μεταξύ άλλων σε θέση:
- να γνωρίζουν και να κατανοούν τις βασικές αρχές των αλγορίθμων και γλωσσών προγραμματισμού ιδίως δε εκείνων του δυναμικού και προστακτικού προγραμματισμού
- να γνωρίζουν και να κατανοούν τα βασικότερα δομικά στοιχεία τόσο της γλώσσας Python όσο και των περιβαλλόντων ανάπτυξης εφαρμογών που διατίθενται για αυτή τη γλώσσα
- να σχεδιάζουν, να υλοποιούν να εκσφαλματώνουν και να εκτελούν προγράμματα σε Python για την επίλυση προβλημάτων όπως τα παραπάνω
- να κατανοούν, να ερμηνεύουν και να αναλύουν απλά επιστημονικά προβλήματα με έμφαση κυρίως σε εκείνα που συναντώνται στην επιστήμη των ΗΜΜΥ
Περιεχόμενο μαθήματος
Βασικοί Άξονες Μαθήματος
- Εισαγωγή στον προγραμματισμό για την αντιμετώπιση επιστημονικών προβλημάτων
- Εκμάθηση των βασικών -και αρκετών ειδικών- στοιχείων της Python με ταυτόχρονη εφαρμογή στην ανάπτυξη και επίλυση αντίστοιχων προγραμμάτων
- Παρουσίαση διαφορετικών τεχνολογιών σχεδιασμού και υλοποίησης εφαρμογών λογισμικού
Ενδεικτικό περίγραμμα Μαθήματος
- Εισαγωγικές Έννοιες (Αλγόριθμοι, τεχνικές και μέθοδοι προγραμματισμού γλώσσες προγραμματισμού, μεταγλωττιστές και διερμηνευτές )
- Εισαγωγή στη Python (Ιστορία, φιλοσοφία, περιγραφή, εγκατάσταση και χρήση διερμηνευτών της γλώσσας, παραδείγματα απλών προγραμμάτων)
- Βασικά στοιχεία της γλώσσας (Τιμές και τύποι δεδομένων, μεταβλητές, εκφράσεις, τελεστές, σχόλια)
- Αριθμοί και Αριθμητικές Λειτουργίες (Βασικές πράξεις, ακέραιοι, αριθμοί κινητής υποδιαστολής, μιγαδικοί αριθμοι)
- Είσοδος / Έξοδος Δεδομένων
- Έλεγχος Ροής Εκτέλεσης (Ακολουθιακή εκτέλεση, είδη ελέγχου ροής, δομές ελέγχου if, βρόγχοι επανάληψης for, while)
- Συναρτήσεις (Ορισμός και κλήση συνάρτησης, εμβέλεια μεταβλητών, συμβολοσειρές τεκμηρίωσης (docstrings), αγνές συναρτήσεις (pure functions) και συναρτήσεις τροποποίησης (modifier functions), προεπιλεγμένα ορίσματα, ανώνυμες συναρτήσεις, διακοσμητές (decorators)
- Δομές δεδομένων (βασικές δομές, αλφαριθμητικά, λίστες, πλειάδες, λεξικά, σύνολα)
- Αρχεία (Προσπέλαση, βασικές συναρτήσεις ανάγνωσης/εγγραφής, εγγραφή αντικειμένων σε αρχεία )
- Κλάσεις και αντικείμενα (βασικές έννοιες, κληρονομικότητα, συναρτήσεις μέλους
- Εξαιρέσεις (Μηχανισμός, είδη, δημιουργία και ορίσματα εξαιρέσεων )
- Αποσφαλμάτωση (Είδη σφαλμάτων –συντακτικά/λογικά- χρήση του Python debugger
Μέθοδοι αξιολόγησης
Γραπτή τελική εξέταση (Ιανουάριος / Σεπτέμβριος) : 60%
Εργαστηριακό μέρος: 40%
Ειδικότερα ο βαθμός του εργαστηριακού μέρους προκύπτει από τα 3 πρότζεκτ του μαθήματος που το καθένα συμμετέχει κατά 30% και τις εβδομαδιαίες ατομικές εργασίες που στο σύνολό τους συμμετέχουν κατά 10%
Απαραίτητη προϋπόθεση για τη συμμετοχή στην τελική εξέταση (Α ή Β εξεταστική) είναι να έχει υποβληθεί εμπρόθεσμα τουλάχιστον ενα πρότζεκτ μέσα στο ακαδημαΪκό έτος που γίνεται η εξέταση.
Ο βαθμός του εργαστηριακού μέρους συμμετέχει κατά το ίδιο ποσοστό (40%) στις δυο εξεταστικές (Ιανουαρίου Σεπτεμβρίου) του τρέχοντος ακαδημαϊκου έτους και μόνο σε αυτές
Απο τα παραπάνω συνάγεται ότι αν κάποιος φοιτητής δεν περάσει το μάθημα ούτε τον Σεπτέμβριο, τότε υποχρεούται να συμμετέχει εκ νέου στο εργαστηριακό μέρος του μαθήματος για να ξαναδώσει το μάθημα.
Βιβλιογραφία
Οι διαλέξεις του μαθήματος (και οι αναφορές που περιέχονται σε αυτές) αποτελούν το κατ' εξοχήν σύγγραμα μελέτης για αυτό το μάθημα. Η βιβλιογραφία που παρέχεται είναι ενδεικτική.
- Python Εισαγωγή στους υπολογιστές, Α. Αβούρης, Μ. Κουκιάς, Β. Παλιούρας, Κ. Σγάρμπας (ΠΕΚ, 2016).
- Υπολογισμοί και Προγραμματισμούς με την Python John V. Guttag- ΚΛΕΙΔΑΡΙΘΜΟΣ ΕΠΕ
- Ξεκινώντας με την Python Tony Gaddis, DA VINCI Μ.Ε.Π.Ε
- Εισαγωγή στον προγραμματισμό με την Python, Nικόλαος Αγγελιδάκης, http://aggelid.mysch.gr/pythonbook/
- Python tutorial - Ελληνική Κοινότητα Προγραμματιστών Python
- Εισαγωγή στον αντικειμενοστραφή προγραμματισμό με Python, Κωνσταντίνος Μαγκούτης, Χρήστος Νικολάου (Αποθετήριο "Κάλλιπος", 2016).
- Python Scripting for Computational Science, Hans Petter Langtangen (Heal-Link/Σύνδεσμος Ελληνικών Ακαδημαϊκών Βιβλιοθηκών, 2η έκδοση 2006).
- Σημειώσεις διαλέξεων μαθήματος (ανεβαίνουν μετά το πέρας κάθε διάλεξης στο eclass)
Επίσης στο eclass θα βρείτε Ελληνικά και Αγγλικά βιβλία σε μορφή pdf που μπορείτε να διαβάσετε ή να κατεβάσετε ελεύθερα (αδεια Creative Commons)
Διδάσκοντες
Καλογεράκης Μιχάλης
email επικοινωνίας: mixalis_AT_hmu.gr
Τηλ. γραφείου: 2810379769
Ωρες Γραφείου: Πέμπτη 11:00 με 13:00 τις εβδομάδες διεξαγωγής μαθημάτων (Κτίριο Κ13, Ισόγειο) . Εναλλακτικά, μετά από ραντεβού είτε δια ζώσης, είτε online
Βοηθός διδασκαλίας (διορθώσεις ασκήσεων - απορίες)
Βερίγου Φωτεινή
email επικοινωνίας: fverigou_AT_hmu.gr