Περιγραφή του μαθήματος
Θα θέλατε να μπορείτε να συντάξετε ένα απλό πρόγραμμα στη γλώσσα Python –την πιο δημοφιλή από τις «νέες γλώσσες» προγραμματισμού– που να σας επιτρέπει (μεταξύ πολλών άλλων) να αντλείτε ενδιαφέροντα στοιχεία από τον «ωκεανό» του διαδικτύου; Παραδείγματος χάριν, από το πρόγραμμα Διαύγεια των δαπανών του δημοσίου ή από τα πανταχού παρόντα κοινωνικά δίκτυα; Τούτο το μάθημα έχει σχεδιαστεί, ώστε να δώσει αυτήν τη δεξιότητα στον κάθε πολίτη που ενδιαφέρεται να την αποκτήσει.
Το μάθημα είναι διάρκειας 6 εβδομάδων και δεν προϋποθέτει προηγούμενη γνώση ή εμπειρία προγραμματισμού. Καλύπτει εισαγωγικά στοιχεία της γλώσσας Python, η οποία θεωρείται ίσως η καταλληλότερη για πρώτη επαφή με τον προγραμματισμό. Το μάθημα καλύπτει επίσης τις βασικές δομές δεδομένων και προγραμματιστικές δομές, περιλαμβάνει πλήθος από παραδείγματα και ασκήσεις που λύνονται βήμα-βήμα, ενώ εστιάζει –στις τελευταίες ενότητες– σε προβλήματα ανάκτησης και επεξεργασίας πληροφορίας από το διαδίκτυο. Ο φοιτητής που θα ολοκληρώσει το μάθημα αυτό θα είναι σε θέση να προγραμματίζει στη γλώσσα Python και να λύνει ενδιαφέροντα πρακτικά προβλήματα, όπως είναι η ανάκτηση πληροφορίας από ιστοσελίδες και η δημιουργία απλών παιχνιδιών.
Το μάθημα αναθεωρήθηκε το 2021, με προσθήκη σημειώσεων και βίντεο.
Διδάσκων
Νίκος Αβούρης
O Νίκος Αβούρης είναι καθηγητής στο Πανεπιστήμιο Πατρών και στο Ελληνικό Ανοικτό Πανεπιστήμιο. Διαθέτει εμπειρία άνω των 30 ετών στη διδασκαλία και την έρευνα σε θέματα Πληροφορικής και Τεχνολογίας Υπολογιστών. Κύριο ερευνητικό του ενδιαφέρον είναι η Αλληλεπίδραση Ανθρώπου-Υπολογιστή. Διδάσκει "Βάσεις Δεδομένων", "Προγραμματισμό με την Python" και "Προγραμματισμό Διαδικτύου" στην Πολυτεχνική Σχολή του Πανεπιστημίου Πατρών. Έχει συγγράψει βιβλία σε ποικίλα θέματα υπολογιστών και πληροφορικής και έχει δημοσιεύσει εκτενώς στο ερευνητικό πεδίο των διαδραστικών τεχνολογιών. Το τελευταίο βιβλίο του με τίτλο Python: Εισαγωγή στους Υπολογιστές κυκλοφορεί από τις Πανεπιστημιακές Εκδόσεις Κρήτης.
Eθελοντές βοηθοί μαθήματος
- Αλέκος Παπαδόπουλος (AlekosPap),
- Χρήστος Τσόλκας (chrtsolkas),
- Βαγγέλης Σκαρμούτσος (SkarmoutsosV),
- Ξενοφών Στρατάκης (virxen75)
Αξιολόγηση του μαθήματος από τους φοιτητές του
Κατά την πρώτη φορά που προσφέρθηκε το μάθημα, οι φοιτητές του (817 απαντήσεις) το αξιολόγησαν από τα ερωτηματολόγια εξόδου ως εξής:
Είστε ικανοποιημένος απ' αυτό που μάθατε σε σχέση μ' αυτό που περιμένατε;
Πολύ ικανοποιημένος: 45%
Ικανοποιημένος: 48%
Λίγο ικανοποιημένος: 7%
Καθόλου ικανοποιημένος: 1%
Έγραψαν για το μάθημα
Ήταν μια πολύ ενδιαφέρουσα περίοδος... και εξαιρετικά δημιουργική, θα προσέθετα. Θα ήθελα να δώσω τα συγχαρητήριά μου στον κ. Αβούρη για την αξιόλογη προσπάθειά του και τις θαυμάσιες παρουσιάσεις του.
-Κωνσταντίνος Σ.
Θα ήθελα να εκφράσω τις πιο θερμές μου ευχαριστίες στο προσωπικό του Mathesis και ιδιαίτερα στον κ. Αβούρη για αυτήν την εξαιρετική εκπαιδευτική εμπειρία! Ως φιλόλογος, και επομένως τελείως άπειρη στον χώρο του προγραμματισμού, οφείλω να ομολογήσω ότι ήταν ένα ιδιαίτερα δύσκολο εγχείρημα για μένα. Ήταν, όμως, τόσο συναρπαστικό αυτό το πρωτόγνωρο πεδίο για μένα, που, παρά τις πολλές δυσκολίες που αντιμετώπισα, κατάφερα να το περατώσω επιτυχώς και γι' αυτό νιώθω ιδιαίτερη ικανοποίηση! Θα ήθελα επίσης να ευχαριστήσω και τους συμφοιτητές, που πολλοί υπήρξαν ιδιαίτερα ενθαρρυντικοί και υποστηρικτικοί σε αυτό το κοινό μας ταξίδι!!!
-Χρυσούλα Ρ.
Θέλω να ευχαριστήσω και εγώ όλους του συντελεστές του Mathesis καθώς και τον κ. Αβούρη, μιας και ήταν κατατοπιστικότατος στο μάθημα. Έχω κάνει μαθήματα και μαθήματα, αλλά αυτό ήταν μακράν το καλύτερο.
-Ιωάννης Γ.
Είμαι ευτυχής, γιατί είναι το 1ο μάθημα που έχω παρακολουθήσει στο Mathesis και έχω καταφέρει να ολοκληρώσω σε πείσμα όλων των δυσκολιών. Μ' άρεσε πολύ η Python και το καλοκαίρι θα αφιερώσω χρόνο σ' αυτή. Συγχαρητήρια για τη δουλειά όλων στο Mathesis. Χαίρομαι πάρα πολύ που υπάρχει! Ευτυχώς που υπάρχουν και μερικές ακτίνες φωτός και ελπίδας και μας δίνουν κουράγιο να συνεχίσουμε!
-Αικατερίνη Μ.
Γράφω αυτό το μήνυμα για να σας ευχαριστήσω για τον χρόνο σας όλο αυτό το διάστημα. Τα μαθήματα (δομή-περιεχόμενο) με εντυπωσίασαν. Ξεκίνησα να τα παρακολουθώ σχεδόν από σπόντα και δεν περίμενα ποτέ ότι θα ήταν τόσο άρτια δομημένα. Είναι εντυπωσιακός ο τρόπος με τον οποίο σε κάθε μάθημα υπήρχε πάντα η σπίθα για να ασχοληθείς και με περισσότερα θέματα από αυτά που διαπραγματευόταν η ύλη του μαθήματος.
-Ελευθέριος Μ.
Ευχαριστούμε θερμά τον κ. Αβούρη και όλη την ομάδα του Mathesis για τον χρόνο, τη διάθεση και την εργασία που κατέβαλαν ώστε να επιμορφωθούμε. Το υλικό ήταν πολύ πλούσιο και κατατοπιστικό και μας κέντρισε το ενδιαφέρον. Η πλατφόρμα είναι πολύ αξιόπιστη και εύχρηστη. Η ανταπόκριση της ομάδας υποστήριξης υπέρ το δέον άμεση, ευγενική και εξυπηρετική. Ευχαριστούμε ξανά.
-Κοραλία Π.
Εβδομάδα 1: Δεδομένα, Μεταβλητές και εκφράσεις
Εισαγωγή
Η Γλώσσα Python
Εγκατάσταση της Python
1. Αριθμοί, μεταβλητές, εκφράσεις
1.1 Μεταβλητές – τύποι – αριθμοί
1.2 Εκχώρηση τιμής σε μία μεταβλητή
1.3 Παράδειγμα: Μετατροπή θερμοκρασίας
2. Συμβολοσειρές strings
2.1 Συμβολοσειρές strings
2.2 Πράξεις – μέθοδοι συμβολοσειρών strings
3. Εντολές εισόδου/εξόδου
3.1 print
3.2 input
4. Λίστες και πλειάδες
4.1 Λίστες-lists
4.2 Πλειάδες-tuples
5. Λεξικά
5.1 Λεξικά-dictionaries
5.2 Σύνολα-sets
6. Ασκήσεις επανάληψης
6.1 Άσκηση 1: Πολυώνυμο
6.2 Άσκηση 2: Τηλεφωνικές επαφές
6.3 Άσκηση 3: Μετράμε λέξεις και γράμματα
Εβδομάδα 2: Έλεγχος Ροής Προγράμματος
7. Δομή επιλογής if
7.1 Δομή if
7.2 Παράδειγμα: Λύση δευτεροβάθμιας εξίσωσης
8. Δομή επανάληψης for
8.1 Δομή for
8.2 Συνάρτηση range
V8.3 for: παραδείγματα
9. Δομή επανάληψης while
9.1 Δομή while
9.2 while: παραδείγματα
9.3 while: ασκήσεις
10. Συνοπτικές λίστες-list comprehension
10.1 Συνοπτική περιγραφή λίστας (list comprehension)
10.2 list comprehension: παραδείγματα
10.3 list comprehension: ασκήσεις
11. Εργασία επανάληψης
11.1 Γεννήτρια τυχαίων ημερομηνιών
Εβδομάδα 3: Δομημένος Προγραμματισμός
12. Συναρτήσεις
12.1 Ορισμός συναρτήσεων def
12.2 functions: παραδείγματα
12.3 Παράδειγμα: Υπολογισμός όγκου και εμβαδού σφαίρας
12.4 Παράδειγμα: Μετράμε τα κεφαλαία και μικρά γράμματα σε ένα κείμενο
12.5 Παράδειγμα: Λίστα με μοναδικά στοιχεία
13. Εμβέλεια μεταβλητών
13.1 Εμβέλεια μεταβλητών
13.2 Παράδειγμα: μορφοποίηση κειμένου
Εβδομάδα 4: Βιβλιοθήκες και εξαιρέσεις
14. Βιβλιοθήκες
14.1 Βιβλιοθήκες Modules
14.2 Standard library
14.3 Η βιβλιοθήκη math
14.4 Παράδειγμα: Η βιβλιοθήκη myabs
14.5 Παράδειγμα: Δημιουργία της myabs
15. Διαχείριση εξαιρέσεων
15.1 Διαχείριση εξαιρέσεων try/except
15.2 Παράδειγμα
15.3 Παράδειγμα: myabs2
Εβδομάδα 5: Αρχεία
17. Αρχεία
17.1 Γράφουμε και διαβάζουμε από αρχεία
17.2 Παράδειγμα: Τα ελληνικά βουνά
17.3 Παράδειγμα: Το ημερολόγιο
17.4 Παράδειγμα: Άγνωστη κωδικοποίηση αρχείου
18. Σύνδεση με το λειτουργικό σύστημα
18.1 Σύνδεση με το λειτουργικό σύστημα – Οι βιβλιοθήκες os και os.path
18.2 Παράδειγμα: Παρουσίαση των αρχείων μας
18.3 Παράδειγμα: Καταγραφή αρχείων ανά τύπο
Εβδομάδα 6: Διαχείριση δεδομένων
19. Regular Expressions
19.1 Διαχείριση κειμένου με κανονικές εκφράσεις (regular expressions)
19.2 Παράδειγμα: Ψάχνουμε παραμύθια
19.3 Παράδειγμα: Αναζήτηση σε html
19.4 Παράδειγμα: Τα ελληνικά βουνά, έκδοση 2
20. Ανάκτηση δεδομένων από το διαδίκτυο
20.1 Η βιβλιοθήκη urllib
20.2 Παράδειγμα: Ανάκτηση μαθημάτων από eudoxus.gr
20.3 Παράδειγμα: Δημιουργία τηλεφωνικού καταλόγου καθηγητών
20.4 Ανάκτηση τηλεφώνων, έκδοση 2021
Το μάθημα απευθύνεται σε κάθε ενδιαφερόμενο πολίτη, μπορείτε δηλαδή να εγγραφείτε χωρίς να υπάρχει κάποιο προαπαιτούμενο.
Επίσης, είναι βιντεοσκοπημένο και ασύγχρονο. Μπορείτε, συνεπώς, να το παρακολουθήσετε στην πλατφόρμα μας τις ημέρες και ώρες που επιθυμείτε. Έχει διάρκεια έξι εβδομάδων και κάθε εβδομάδα προστίθενται νέες ενότητες, τις οποίες μπορείτε, όπως αναφέραμε, να δείτε στο πρόγραμμά σας.
Πέρα από το διδακτικό υλικό, το μάθημα περιλαμβάνει εβδομαδιαία τεστ, μία τελική εξέταση και μια τελική εργασία. Η συμπλήρωση των τεστ γίνεται και αυτή στο δικό σας πρόγραμμα, εντός κάποιων εβδομαδιαίων συνήθως προθεσμιών. Η συμμετοχή στα τεστ είναι βεβαίως στη δική σας ευχέρεια. Αν όμως επιθυμείτε την έκδοση βεβαίωσης επιτυχούς παρακολούθησης, θα χρειαστεί να συμμετάσχετε στην τελική εξέταση/εργασία και στα περισσότερα τουλάχιστον τεστ.
Τα μαθήματα του Mathesis προσφέρονται δωρεάν και έτσι θα συνεχίσουν. Μπορείτε να τα παρακολουθήσετε μέχρι τέλους και να συμμετάσχετε στα εβδομαδιαία τεστ και την τελική εξέταση. Εάν επιθυμείτε τη βεβαίωση επιτυχούς παρακολούθησης, θα σας ζητείται όμως ένα μικρό αντίτιμο –της τάξης των 30€– για την έκδοσή της, μετά την υποβολή της τελικής σας εξέτασης/εργασίας. Εάν δεν υποβάλετε την τελική σας εξέταση/εργασία –ή αν την υποβάλετε, αλλά δεν περάσετε το μάθημα– δεν υπάρχει κάποια υποχρέωση πληρωμής.
Αν έχετε ήδη λογαριασμό στο Mathesis, αρκεί να συνδεθείτε στο Mathesis με το email που έχετε ήδη δηλώσει και, στη συνέχεια, να εγγραφείτε στο μάθημα. Αν δεν έχετε λογαριασμό στο Mathesis, θα χρειαστεί προηγουμένως να δημιουργήσετε έναν. Αν τυχόν χρειαστείτε βοήθεια για την εγγραφή σας στο μάθημα ή στην πλατφόρμα του Mathesis, μπορείτε να δείτε εδώ τις σχετικές οδηγίες.
Βιντεοσκόπηση: Νίκος Αβούρης
Μοντάζ: Νίκος Αβούρης
Γενική επιμέλεια και προγραμματισμός ασκήσεων: Δημήτρης Αγγελάκης, Νίκος Γκικόπουλος
Η βιντεοσκόπηση έγινε το 2016-2017.