Προγραμματισμός σε Python για μη-Προγραμματιστές

Το μάθημα απευθύνεται σε φοιτητές, ερευνητές, επιστήμονες που δεν είναι επαγγελματίες προγραμματιστές αλλά χρειάζονται να κατανοούν βασικές έννοιες υπολογιστικής σκέψης και να γράφουν κώδικα σε γλώσσα Python ώστε να επεξεργάζονται δεδομένα σε επιστημονικά προβλήματα. Το μάθημα ξεκινά «από το μηδέν», δηλαδή σκοπεύει να είναι χρήσιμο σε κάθε αρχάριο/α ανεξάρτητα από το υπόβαθρο γνώσεων προγραμματισμού που έχει και την επιστημονική περιοχή στην οποία σπουδάζει ή εργάζεται (θετικές επιστήμες και μηχανική ή ανθρωπιστικές επιστήμες).

 

Έναρξη Μαθήματος: 02/03/2020

Διάρκεια Μαθήματος: 5 εβδομάδες

Φόρτος Μαθήματος: 6 ώρες / εβδομάδα (Σύνολο: 5 εβδ. x 6 ώρες = 30 | 1 ECTS)

Κόστος Συμμετοχής: ΔΩΡΕΑΝ

Περίοδος εγγραφών: 04/02/2020 - 02/03/2020

Συμμετοχή: Δωρεάν

Βεβαίωση: Ναι - Δωρεάν

Η εγγραφή είναι προς το παρόν κλειστή
Έναρξη: 02/03/2020
Θέμα: Επιστήμη Υπολογιστών
Γλώσσα: Ελληνικά
Διάρκεια: 5 εβδομάδες
Επίπεδο: Εισαγωγικό
Πολυμέσα: EL-GR
Τύπος: Καθοδηγούμενη εκπαίδευση
Προσπάθεια: 6 ώρες / εβδομάδα
Προαπαιτούμενα: Δεν απαιτείται προηγούμενη εμπειρία
Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης
Ίδρυμα:: Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης
Άδεια Χρήσης: Creative Commons BY NC SA

Σχετικά με το μάθημα

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

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

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

Εκτός από τα βιντεομαθήματα, τις διαδραστικές ερωτήσεις (quizzes) και τις ασκήσεις που έχει το μάθημα θα σας δώσει την ευκαιρία να μάθετε συζητώντας με κάποιον συνεργάτη σας. Στο τέλος κάθε εβδομάδας έχουμε σχεδιάσει για σας και σας προτείνουμε να συζητήσετε «σενάρια μάθησης» σε ειδικά σχεδιασμένα «δωμάτια συζήτησης» (chat rooms). Στα δωμάτια αυτά εμφανίζεται και ένας εικονικός πράκτορας ο οποίος σας θέτει ερωτήσεις για το θέμα που συζητάτε και περιμένει την απάντησή σας. Περισσότερα όμως γι αυτό θα σας πούμε παρακάτω.

Προς το παρόν σας καλωσορίζουμε και σας ευχόμαστε να έχετε μια ουσιαστική, ωφέλιμη και ευχάριστη εμπειρία μάθησης.

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

Μετά την παρακολούθηση του μαθήματος θα μπορείτε να:

  1. εξηγείτε και να δίνετε παραδείγματα βασικών εννοιών αλγοριθμικής σκέψης και δομών προγραμματισμού,
  2. να μπορείτε να εξηγείτε τι είναι και πώς λειτουργούν οι βασικές δομές προγραμματισμού και δεδομένων της Python, όπως: εντολή ανάθεσης, εντολές επανάληψης και ελέγχου, δομή λίστας και λεξικού, συναρτήσεις και αρχεία καθώς και εντολές διαχείρισης των ‘εξαιρέσεων’ (exceptions),
  3. να γράφετε κώδικα Python ώστε να διαβάζετε δεδομένα από αρχείο, να τα επεξεργάζεστε γράφοντας τον αλγόριθμο επεξεργασίας που χρειάζεστε (και με χρήση βιβλιοθηκών και συναρτήσεων) και να αποθηκεύετε τα αποτελέσματα πάλι σε αρχείο.
Παράκαμψη περιγράμματος

ΕΝΟΤΗΤΑ 1: Υπολογιστική σκέψη, Αλγόριθμοι και Δεδομένα

Υπολογιστική σκέψη, Ψευδοκώδικας & Διαγράμματα ροής προγραμμάτων Υπολογιστική σκέψη, Αλγόριθμοι και Δεδομένα

  • Ονόματα, Εκφράσεις, & Τελεστές
  • Input & print
  • Χαρακτηριστικά Τύπου & Ακέραιοι
  • Πραγματικοί (float)
  • Συμβολοσειρές (str) – Συναρτήσεις len() & type()

Προβλήματα

  • Παράδειγμα: Υπολογισμός εμβαδού κύκλου ακτίνας r
  • Παραδείγματα: Ευκλείδεια απόσταση, πολικές συντεταγμένες και χαρακτήρες και κωδικοί ASCII

QUIZ Ενότητας 1

Άσκηση Κώδικα Ενότητας 1

colMOOC Agent Chat Δραστηριότητα Ενότητας 2

 

ΕΝΟΤΗΤΑ 2: Έλεγχος Ροής Προγράμματος

Δομές Ελέγχου ροής Έλεγχος ροής με την if

  • Έλεγχος με if
  • Φωλιασμένες if & elif
  • Τελεστές σύγκρισης
  • Παραδείγματα με if
  • Λογικοί τελεστές

Επανάληψη εντολών με καταμέτρηση επαναλήψεων Επανάληψη με την While

  • Επανάληψη με την While
  • Παραδείγματα με while

Επανάληψη εντολών σε στοιχεία Επανάληψη με την for..range

  • Επανάληψη με for..range
  • Παραδείγματα με for..range

Προβλήματα

  • Προβλήματα: Υπολογισμός τριωνύμου και υπολογισμοί με συνεχή είσαοδο δεδομένων
  • Προβλήματα: Μετατροπή θερμοκρασιών, υπολογισμός πρώτως αριθμών & γειτονικοί χαρακτήρες

QUIZ Ενότητας 2

Άσκηση Κώδικα Ενότητας 2

colMOOC Agent Chat Δραστηριότητα Ενότητας 1

 

ΕΝΟΤΗΤΑ 3: Δομές Δεδομένων

Λίστες στην Python

  • Λίστες: Ακολουθία και Δεικτοδότηση
  • Πώς κατασκευάζω μια λίστα;
  • Λίστες και επανάληψη for
  • Τελεστές & Τομές Λίστας
  • Πρόβλημα 1: Μέσος όρος και Τυπική απόκλιση
  • Πρόβλημα 2: Διαχωρισμός πρότασης (tokenization)
  • Πρόβλημα 3: Ορίζουσα πίνακα (determinant)

Λεξικά στην Python

  • Λεξικά – Οι Βασικές έννοιες
  • Πώς κατασκευάζω Λεξικό; Λεξικό στην εντολή for & ο τελεστής in
  • Σύνθετες δομές με Λίστες & Λεξικά
  • Πρόβλημα 1: Οι αριθμοί ολογράφως
  • Πρόβλημα 2: Περιοδικός πίνακας στοιχείων

QUIZ Ενότητας 3

Άσκηση Κώδικα Ενότητας 3

colMOOC Agent Chat Δραστηριότητα Ενότητας 3

 

ΕΝΟΤΗΤΑ 4: Συναρτήσεις

Συναρτήσεις στην Python

  • Τι είναι συνάρτηση
  • Πέρασμα ορισμάτων
  • Απροσδιόριστο πλήθος παραμέτρων
  • Εμβέλεια
  • Προβλήματα με Συναρτήσεις
  • Γεννήτορες (Generators)
  • Προβλήματα με Γεννήτορες
  • Συναρτήσεις και Μέθοδοι
  • Προβλήματα με Συναρτήσεις και Μεθόδους

QUIZ Ενότητας 4

Άσκηση Κώδικα Ενότητας 4

colMOOC Agent Chat Δραστηριότητα Ενότητας 4

 

ΕΝΟΤΗΤΑ 5: Αρχεία

Εισαγωγή στα αρχεία

Διαχείριση αρχείων στην Python

  • Αρχεία κειμένου & with open
  • Διάβασμα δεδομένων από αρχείο
  • Προσθήκη δεδομένων και ο τρόπος ‘a’
  • Διατήρηση δεδομένων με pickle & json
  • Διαχείριση εξαιρέσεων & try-except
  • Προβλήματα με χρήση αρχείων

QUIZ Ενότητας 5

Άσκηση Κώδικα Ενότητας 5

colMOOC Agent Chat Δραστηριότητα Ενότητας 5

Διδάσκοντες

ΣΤΑΥΡΟΣ ΔΗΜΗΤΡΙΑΔΗΣ

Αναπληρωτής Καθηγητής
Τμήμα Πληροφορικής, ΑΠΘ

Ο Σταύρος Δημητριάδης είναι Αναπληρωτής Καθηγητής στο Τμήμα Πληροφορικής του Αριστοτέλειου Πανεπιστήμιου Θεσσαλονίκης.

Διδάσκει την Python στους φοιτητές του Τμήματος καθώς και σε σεμινάρια που προσφέρει η δομή «Διά Βίου» του ΑΠΘ σε εκπαιδευτικούς αλλά και σε ερευνητές και προγραμματιστές. Έχει επίσης διδάξει προχωρημένα θέματα επεξεργασίας δεδομένων με βιβλιοθήκες όπως η pandas και η Scipy σε διάφορα σεμινάρια στην Ελλάδα και στο εξωτερικό (πχ. σε διδακτορικούς φοιτητές University of Valladolid, Spain).

Έχει αναπτύξει ένα σχετικό ιστότοπο (http://pytolearn.csd.auth.gr/) όπου οι ενδιαφερόμενοι μπορούν να βρουν διδακτικά βοηθήματα για προγραμματισμό με Python σε βασικό αλλά και προχωρημένο επίπεδο.

Στην έρευνά του που στρέφεται γύρω από θέματα Τεχνολογιών Μάθησης (learning technologies) συμπεριλαμβάνει και την Python ως εργαλείο υποστήριξης και ανάπτυξης της υπολογιστικής σκέψης των μαθητών. Περισσότερα για τη δουλειά και τις δημοσιεύσεις του μπορείτε να δείτε στην προσωπική του ιστοσελίδα (http://mlab.csd.auth.gr/sdemetri/).

ΘΡΑΣΥΒΟΥΛΟΣ Γ. ΤΣΙΑΤΣΟΣ

Επίκουρος Καθηγητής
Τμήμα Πληροφορικής, ΑΠΘ

Ο Θρασύβουλος Γ. Τσιάτσος έλαβε το Δίπλωμα Μηχανικού Ηλεκτρονικών Υπολογιστών και Πληροφορικής από το Τμήμα Μηχανικών Η/Υ και Πληροφορικής του Πανεπιστημίου της Πάτρας το 1998 και στη συνέχεια απέκτησε το Μεταπτυχιακό Δίπλωμα Ειδίκευσης (2000) και Διδακτορικό Δίπλωμα (2003) από το ίδιο Τμήμα. Διατελεί Επίκουρος Καθηγητής του Τμήματος Πληροφορικής του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης και μέλος του Εργαστηρίου Πολυμέσων του ίδιου Τμήματος. Τα ερευνητικά του ενδιαφέροντα περιλαμβάνουν:

  • Δικτυακά εικονικά περιβάλλοντα μάθησης
  • Αξιοποίηση δικτυακών τεχνολογιών στην εκπαίδευση
  • Μέθοδοι αξιολόγησης διαδικτυακών εκπαιδευτικών περιβαλλόντων
  • Παιχνιδοκεντρική μάθηση με χρήση νέων τεχνολογιών
  • Μάθηση με χρήση κινητών συσκευών
  • Γνωστική εκπαίδευση και Τεχνολογίες Πληροφορίας & Επικοινωνιών
  • Ανάπτυξη διεπαφών βιο-ανάδρασης για την υποβοήθηση της εκπαιδευτικής διαδικασίας και της μάθησης
  • Σχεδιασμός και ανάπτυξη διαδικτυακών περιβαλλόντων για την διαχείριση και υποστήριξη της εκπαίδευσης και της διδασκαλίας
  • Ανοικτή και εξ αποστάσεως εκπαίδευση με χρήση διαδικτυακών περιβαλλόντων

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

Διαμοιράστε το μάθημα

This project has been funded with support from the European Commission. This publication reflects the views only of the author, and the Commission cannot be held responsible for any use which may be made of the information contained therein.