Εισαγωγή στην Ανάλυση Δεδομένων με Python

Σάββας Χανλαρίδης, Νικόλαος Μανδαράκας

Περιγραφή

Το μάθημα “Εισαγωγή στην Ανάλυση Δεδομένων με Python” είναι ένα ταχύρρυθμο μάθημα διάρκειας δέκα (10) εβδομάδων που υλοποιείται με πρωτοβουλία υποψήφιων διδακτόρων του τμήματος Φυσικής του Πανεπιστήμιου Κρήτης και του Ινστιτούτου Αστροφυσικής του ΙΤΕ.

Σκοπός του μαθήματος είναι η εξοικείωση των φοιτητών και φοιτητριών του τμήματος Φυσικής με τη γλώσσα προγραμματισμού Python για την επεξεργασία και ανάλυση επιστημονικών δεδομένων. Η ανάπτυξη τέτοιων δεξιοτήτων είναι εξαιρετικά σημαντική και βρίσκει χρήση σε πληθώρα εφαρμογών κατά την διάρκεια των φοιτητικών σπουδών όπως εργαστήρια, πρακτική άσκηση σε κάποιον φορέα και εκπόνηση πτυχιακών εργασιών.

 

ECL-MISC104: Εισαγωγή στην Ανάλυση Δεδομένων με Python
Ώρες: 3
ΕCTS: Χορηγείται βεβαίωση επιτυχούς παρακολούθησης
Εξάμηνο: 2o+
Ημέρα διδασκαλίας: Πέμπτη 18:00 - 21:00 (Αίθουσα 3 Η/Υ)
Open session: Παρασκευή 10:00 - 13:00 (Αίθουσα 3 Η/Υ)

CC - Αναφορά - Μη Εμπορική Χρήση - Παρόμοια Διανομή
Διδάσκοντες

Βοηθοί

Μαθησιακοί στόχοι

Σκοπός του μαθήματος είναι η εξοικείωση των φοιτητών και φοιτητριών του τμήματος Φυσικής με τη γλώσσα προγραμματισμού Python για την επεξεργασία και ανάλυση επιστημονικών δεδομένων.

Περιεχόμενο μαθήματος
  • Μεταβλητές
  • Βασικές Δομές Δεδομένων
  • Δομές Ελέγχου και Επανάληψης
  • Συναρτήσεις και Βιβλιοθήκες
  • Αντικειμενοστρεφής Προγραμματισμός
  • Προσπέλαση Αρχείων - Η Βιβλιοθήκη "CSV"
  • Αριθμητική Python - Η Βιβλιοθήκη "NumPy"
  • Επεξεργασία και Ανάλυση Δεδομένων - Η Βιβλιοθήκη "Pandas"
  • Οπτικοποίηση Δεδομένων - Η Βιβλιοθήκη "Matplotlib"
  • Επιστημονική Python - Η Βιβλιοθήκη "SciPy"
Μέθοδοι διδασκαλίας

Το μάθημα αποτελείται από 3 θεματικές ενότητες. Κατά την διάρκεια των παραδόσεων θα παρουσιάζονται κάποιες θεωρητικές έννοιες και τεχνικές ώστε οι φοιτητές να κατανοήσουν και να αναπτύξουν μία ρουτίνα εργασίας. Ταυτόχρονα θα δίνεται χρόνος για hands-on εξάσκηση στη θεματολογία που παρουσιάζεται. 

Στο τέλος κάθε θεματικής ενότητας θα δίνονται ασκήσεις για το σπίτι για περαιτέρω εξάσκηση των εννοιών που συζητήθηκαν στα μαθήματα. Οι φοιτητές δεν χρειάζεται να παραδίδουν αυτές τις ασκήσεις αλλά συνιστούμε ανεπιφύλακτα να ασχολούνται συστηματικά με αυτές καθώς το μάθημα είναι ταχύρρυθμο και καλύπτει μεγάλο όγκο ύλης σε σύντομο χρονικό διάστημα. 

Προαπαιτούμενα

Το μάθημα απευθύνεται κυρίως σε προπτυχιακούς φοιτητές του τμήματος Φυσικής. Προτεραιότητα θα δοθεί στους προπτυχιακούς που έχουν περάσει το μάθημα Φ-150 (Χρήσεις Υπολογιστή) και κατά προτίμηση το Φ-151 (Εισαγωγή στον Προγραμματισμό - C).

Μέθοδοι αξιολόγησης

Με την ολοκλήρωση των θεματικών ενοτήτων θα δοθεί ένα πρότζεκτ όπου οι φοιτητές θα ζητηθούν να εφαρμόσουν τεχνικές και μεθόδους που έμαθαν κατά την διάρκεια του μαθήματος. Ο διαθέσιμος χρόνος για την ολοκλήρωση και την παράδοση του πρότζεκτ είναι 4 εβδομάδες. Στους φοιτητές που έχουν επιλύσει το 50% και άνω, θα δωθεί βεβαίωση επιτυχούς παρακολούθησης.

Ενότητες

  • Γνωριμία

    • Πλεονεκτήματα & μειονεκτήματα συγκριτικά με άλλες γλώσσες προγραμματισμού

    • Επεξεργαστές κειμένου και IDEs (vim, emacs, nano, atom, pyCharm, Sublime, etc)

    • Δημιουργία και εκτέλεση αρχείων Python (scripts, Python2 vs Python3)

    • Χρήση του Jupyter Notebook

  • Μεταβλητές

    • Τύποι και ονόματα μεταβλητών

    • Αριθμητικοί τελεστές

    • Τελεστές σύγκρισης

    • Λογικές εκφράσεις

  • Βασικές Δομές Δεδομένων

    • Λίστες

    • Πλειάδες

    • Λεξικά

  • Δομές Ελέγχου και Επανάληψης
    • Η δομή ελέγχου if-elif-else

    • Ο βρόγχος επανάληψης for-else

    • Ο βρόγχος επανάληψης while

    • Συνοπτική λίστα (list comprehension)

    • Διαχείριση εξαιρέσεων με try/except

  • Συναρτήσεις και Βιβλιοθήκες

    • Ορισμός συνάρτησης και εμβέλεια μεταβλητών

    • Αλγοριθμικές εφαρμογές

    • Ανώνυμες συναρτήσεις

    • Εισαγωγή βιβλιοθηκών (modules)

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

    • Ορισμός κλάσης και δημιουργία στιγμιοτύπων της κλάσης

    • Ενθυλάκωση

    • Ιδιότητες και μέθοδοι

    • Υπερφόρτωση τελεστών

    • Κληρονομικότητα

  • Διαχείριση και προσπέλαση αρχείων

    • Η βιβλιοθήκη CSV

    • Σύνδεση με το λειτουργικό σύστημα: Οι βιβλιοθήκες os και glob

  • Η βιβλιοθήκη NumPy

  • Η βιβλιοθήκη Pandas

    • Τα αντικείμενα DataFrame και Series

    • Διερεύνηση και Προεπεξεργασία των Δεδομένων

    • Ανάλυση των Δεδομένων

  • Η βιβλιοθήκη matplotlib

  • Η βιβλιοθήκη SciPy

Ως επίλογο οι φοιτητές θα κληθούν να δουλέψουν με αληθινά δεδομένα σε κάποια προβλήματα Φυσικής/Αστροφυσικής.

  • Δομή και εξέλιξη αστέρων μικρής και μεγάλης μάζας. Διάγραμμα Hertzsprung-Russell, χρόνοι παραμονής στην κύρια ακολουθία, χημικό προφίλ (Δεδομένα προσομοίωσης MESA).

  • Υπολογισμός ακτινικής ταχύτητας και μάζας του εξωπλανήτη 51 Peg b (Δεδομένα από NASA Exoplanet Archive).

  • Φασματοσκοπία Raman

Ημερολόγιο