Download - Python from Scratch

Transcript
Page 1: Python from Scratch

8ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 – Ιωάννινα , Ελλάδα

Python from Scratch

Μετάβαση από το Scratch στην Python και τον αντικειμενοστραφή προγραμματισμό αξιοποιώντας το

παιχνίδι Code CombatΘεοδούλη ΤερζίδουMSc | PhD Candidate | Εκπαιδευτικός ΠΕ19

Page 2: Python from Scratch

Περιεχόμενα Εισαγωγή Αξιοποίηση παιχνιδοκεντρικής μάθησης Διδασκαλία προγραμματισμού με Scratch Η γλώσσα προγραμματισμού Python Το Code Combat στη διδασκαλία της Python Από το Scratch στην Python και τον

αντικειμενοστραφή προγραμματισμό με το Code Combat

Πρόταση Διδασκαλίας Μελλοντική εργασία

2 2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Page 3: Python from Scratch

3 2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Γιατί είναι σημαντική η εκμάθηση μιας Γλώσσας Προγραμματισμού?

Page 4: Python from Scratch

Σύμφωνα με την Grand Coalition for Digital Jobs- πρωτοβουλία της Ευρωπαϊκής Επιτροπής  

913.000 κενές θέσεις στην Ευρώπηέως το 2020

σε επαγγέλματα στον τομέα της Πληροφορικής

Page 5: Python from Scratch

Ο μαθητής του «2020»

5

Καταναλωτής

Δημιουργός

2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Page 6: Python from Scratch

6 2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Δημιουργικότητα

Αλγοριθμική σκέψη

Κατάργηση γεωγραφικ

ών συνόρων

Συνεργασία

Επίλυση προβλημάτ

ων

CODINGΠρογραμματισμός

Νέα γλώσσα

επικοινωνίας

Προγραμματισμός: η δεξιότητα του 21ου αιώνα που…

Page 7: Python from Scratch

Διδασκαλία προγραμματισμού στην Ελλάδα

7 2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Δημοτικό [ΤΠΕ]

Scratch, Παιχνίδια κώδικα

Γ’ Γυμνασίου

Scratch, Logo,

Παιχνίδια κώδικα

ΓΕΛ : Ψευδογλώσσα, ΓλώσσαΕΠΑΛ: Python

Page 8: Python from Scratch

Παχνιδοκεντρική Μάθηση [Game Based Learning]

8 2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Παχνιδοκεντρική Μάθηση [Game Based Learning]

Μαθαίνω παίζοντας

GamificationSerious Games

Educational Games Digital Game Learning

Page 9: Python from Scratch

Παιχνιδοκεντρική Μάθηση [Game Based Learning]

9 2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

«Είναι η εκπαιδευτική διαδικασία, η οποία χρησιμοποιεί εμπειρίες παιχνιδιού ως εργαλείο μάθησης.» [Terzidou & Tsiatsos, 2011]

Παχνιδοκεντρική Μάθηση [Game Based Learning]

«Η παρακίνηση μέσω παιχνιδιών μπορεί να βρει εφαρμογή στην εκμάθηση αντικειμένων, τα οποία έχουν αυξημένο βαθμό δυσκολίας όσον αφορά τη διδασκαλία τους» [Prensky, 2001]

Τα παιχνίδια μπορούν να αξιοποιηθούν στη διδασκαλία των αφηρημένων, και γι αυτό το λόγο,

δύσκολων εννοιών του προγραμματισμού

«Οι παιγνιώδεις δραστηριότητες μπορούν να ενισχύσουν την εκ βαθέων μάθηση (deep learning).» [Piaget, 1970]

Page 10: Python from Scratch

Παιχνίδια Κώδικα και Προγραμματισμός με…

Με blocks Με συγγραφή κώδικα Scratch Code.org Run Marco Tynker The Foos LightBot CodinGame

Code Combat Ruby Warrior Code School

10 2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Προγραμματισμός σε γλώσσα υψηλού επιπέδου

Page 11: Python from Scratch

CODING YOU MUST LEARN

READY ARE YOU?

Page 12: Python from Scratch

ΤΕΛΕΙΑ! ΚΑΙ ΤΩΡΑ…Ποια Γλώσσα Προγραμματισμού επιλέγουμε?

Page 13: Python from Scratch
Page 14: Python from Scratch

Τι θα θέλαμε… Μετάβαση από το Scratch, στον προγραμματισμό με

Python και τον αντικειμενοστραφή προγραμματισμό, με παιγνιώδη τρόπο… αξιοποιώντας το CodeCombat.

Page 15: Python from Scratch

Scratch

Οπτικός Προγραμματισμός με Blocks

Page 16: Python from Scratch

SCRATCH …1 0 1 στον προγραμματισμό

16 2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

> 10.000.000 χρήστες

οπτική γλώσσα προγραμματισ

μού

περιβάλλον πλούσιο σε

γραφικά

Χρήση blocks

Αποφυγή συντακτικών

λαθώνΠλειοψηφία

χρηστών13 -18 ετών

Δυνατότητα διαμοίρασης

έργωνΥποστήριξη εκπαιδευτικής κοινότητας

Page 17: Python from Scratch

Έννοιες και Δομές γνωστές από το Scratch…

17

Δεδομένα (data) | Μεταβλητές | Λίστες Τελεστές (operators) Δομή ακολουθίας (sequence) Δομή επανάληψης (loop) Συνθήκες ελέγχου (conditionals) Παράλληλος προγραμματισμός (parallelism) Συμβάντα (events)

2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Page 18: Python from Scratch

Χρήση ανά κατηγορία εντολών στο Scratch

18 2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

[Πηγή: http://stats.scratch.mit.edu] | Σεπτ. 2016

Page 19: Python from Scratch

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

Let’s go… Python!

Page 20: Python from Scratch

PYTHON γιατί…

20

Δημοφιλέστερη γλώσσα για την εισαγωγή στον προγραμματισμό 5η δημοφιλέστερη στον κόσμο [Μάρτιος 2016 - Tiobe] Ευανάγνωστη - Ευέλικτη - Εύκολο συντακτικό Ενεργή κοινότητα προγραμματιστών Υποστηρίζεται από το Raspberry Pi Μια γλώσσα που “μιλάνε” οι κορυφαίοι της τεχνολογίας, όπως Google,

NASA, Dropbox, IBM, NOKIA, Lego… κα. [~5000] Γνωστά και γραμμένα σε Python:

Youtube Dropbox Blender 3D EVE online Instagram και άλλα …!

2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Page 21: Python from Scratch

Δείκτης Δημοτικότητας Γλωσσών Προγραμματισμού[TIOBE, Σεπτ. 2016]

21 2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Page 22: Python from Scratch

Code Combat

A Serious Coding Game

Page 23: Python from Scratch

Περί Code Combat…

23

Ξεκίνησε το 2013 από ομάδα 13 ατόμων Διαθέσιμο σε 50 γλώσσες + Ελληνική Χρήστες > 5.000.000 σε 200 και πλέον

χώρες 450 μέλη-συνδημιουργοί παγκοσμίως Open Source [GitHub - MIT and Creative Commons

licenses]2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Page 24: Python from Scratch

Το Code Combat ως παιχνίδι…

24

Ένα παιχνίδι κώδικα με μορφή περιπέτειας [RPG].

Δίνει την αίσθηση πραγματικού παιχνιδιού.

Παίζεται ατομικά ή σε επίπεδο πολλών online χρηστών.

Διαθέτει πολλά επίπεδα κλιμακούμενης δυσκολίας [ανάλογα με τη διδασκόμενη έννοια/δομή].

Τα πρώτα επίπεδα διατίθενται δωρεάν [επόμενα με συνδρομή].

Δεν απαιτείται η δημιουργία λογαριασμού [για διατήρηση της προόδου ενδείκνυται εγγραφή].

2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Page 25: Python from Scratch

Στόχος του παιχνιδιού

25

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

Κάθε επιτυχημένη αποστολή προσφέρει πόντους εμπειρίας (XPs) και «Επιτεύγματα». – Extra Bonus για άψογο κώδικα!

Ο παίκτης ελέγχει τον ήρωα του πληκτρολογώντας σωστά συντακτικά, και σε λογική σειρά εντολές στη γλώσσα προγραμματισμού της επιλογής του [Python, JavaScript].

Σε περίπτωση λάθους δίνεται κατάλληλη ανατροφοδότηση.

2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Page 26: Python from Scratch
Page 27: Python from Scratch

Πηγή: Screenshot από έναρξη αποστολής του Code Combat

Page 28: Python from Scratch

28 2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Page 29: Python from Scratch

Πηγή: Screenshot από τον οδηγό του Code Combat για εκπαιδευτικούς

Page 30: Python from Scratch

Το Code Combat ως εκπαιδευτικό εργαλείο…

31

Ανήκει στην κατηγορία των Σοβαρών Παιχνιδιών [Serious Games].

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

Έχει προσαρμοσμένα μαθήματα για Δημοτικό/Γυμνάσιο/Λύκειο

Υποστηρίζει τη συνεργατική μάθηση [δημιουργία «Φατριών»].

Διαθέτει μια ενεργή κοινότητα για εκπαιδευτικούς. Προσφέρει Οδηγούς για εκπαιδευτικούς και μαθητές. Ενθαρρύνει τα κορίτσια… Χρησιμοποιεί και γυναικείους

χαρακτήρες [«Ηρωίδες»]! 2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Page 31: Python from Scratch

Πρόταση διδασκαλίας: Python from Scratch

32 2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Page 32: Python from Scratch

Ενότητες διδακτικού σεναρίου

33 2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

• Ο μαθητής υλοποιεί σενάρια στο Scratch και στη συνέχεια τα "μεταφράζει" σε Python.

• Αναγνωρίζει την αντιστοιχία βασικών εντολών Scratch-Python.

• Αναγνωρίζει την έννοια του συντακτικού λάθους.

Scratch & Python#1 BASICS

• Ο μαθητής εισάγεται στις έννοιες του Αντικειμενοστραφούς Προγραμματισμού.

• Υλοποιεί σενάρια στο Scratch και στην Python.

• Παίζει με «αντικείμενα» και γράφει κώδικα στο Code CombatScratch & Python

& Code Combat#2 OOP

Page 33: Python from Scratch

Διδακτικό Σενάριο

34

Διάρκεια: 20 διδακτικές ώρες Τάξεις: Ε, ΣΤ Δημοτικού & Α,Β,Γ Γυμνασίου Τρόπος εργασίας: Ομάδες 2-3 μαθητών Περιβάλλον:

Scratch Online Python 3.x Code Combat [Δωρέαν ενότητα]

Περιλαμβάνει: Φύλλα Δραστηριότητας-βοήθειας Λεξικό Εντολών Scratch ↔ Python ↔ Code Combat

2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Page 34: Python from Scratch

1η Ενότητα | Διδασκόμενες Έννοιες

35

Συντακτικό λάθος Μεταβλητή |Τύπος μεταβλητής |Μετατροπή Ανάθεση τιμών Χρήση βιβλιοθηκών και συναρτήσεων Λογικός έλεγχος Λογικές τιμές Δομές Επανάληψης [for - while]

2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Page 35: Python from Scratch

Το ξεκίνημα… “Hello World”

36 2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Scratch

•Γράψε ένα πρόγραμμα στο Scratch, όπου ένα αντικείμενο σου [Sprite] θα λέει το μήνυμα “Hello Scratch World”

Python •Άνοιξε το πρόγραμμα Python IDLE.

Python

•Μετά τα σύμβολα >>> πληκτρολόγησε την εντολή και πάτησε ENTER για να την εκτελέσεις.

Page 36: Python from Scratch

Παράδειγμα Φύλλου Εργασίας #1

37 2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Page 37: Python from Scratch

Παράδειγμα Φύλλου Εργασίας #2

38 2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Page 38: Python from Scratch

39 8ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Συνέχεια Φύλλου Εργασίας #2

Page 39: Python from Scratch

40 2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Page 40: Python from Scratch

2η Ενότητα | Διδασκόμενες Έννοιες

41

Κλάση (class), Ονοματολογία κλάσεων Αντικείμενο (object), Μέθοδος (method), Ιδιότητα (attribute) Χρήση μεθόδων

2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Page 41: Python from Scratch

Εισαγωγή στον αντικειμενοστραφή προγραμματισμό

42

Δημιουργία συσχετίσεων με τα ήδη γνωστά για τον μαθητή, αντικείμενα [sprites] του Scratch.

Ο μαθητής υλοποιεί πρόγραμμα στο Scratch, με αντικείμενα, παρόμοια σε μορφή, με αυτά που θα κληθεί να υλοποιήσει αργότερα στην Python αλλά και στο παιχνίδι Code Combat [πχ. Ιππότης-hero].

Καθοδηγείται να δημιουργήσει τις απαραίτητες νοητικές συνδέσεις.

Προχωρά στη δημιουργία αντικειμένων γράφοντας εντολές στην Python.

Η ενότητα ολοκληρώνεται στο παιχνίδι Code Combat.2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Page 42: Python from Scratch

#1 | Αντικείμενα στο Scratch

43 2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Page 43: Python from Scratch

#2 | Κώδικας για αντικείμενα στο Scratch

44 2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Page 44: Python from Scratch

#3 | Απόσπασμα φύλλου εργασίας

45 2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Page 45: Python from Scratch

#4 | Φύλλο βοήθειας- Γραφικές Μεταφορές

46 2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Page 46: Python from Scratch

#5 | Λεξικό Εντολών

Page 47: Python from Scratch

#6 | Python & Αντικείμενα στο Code Combat

48 2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Page 48: Python from Scratch

#7 | Ένα σπαθί… για τη μέθοδο attack

49 2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Page 49: Python from Scratch

#8 | Code Combat HELP

50 2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Βοήθεια [HELP]

Εκσφαλμάτωση

Page 50: Python from Scratch

51 2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Οι πρώτες εντυπώσεις από το Code Combat…

«Είναι πολύ ωραίο, έχουν πλάκα τα ανθρωπάκια και είναι πολύ εύκολο» <μαθήτρια Ε’ Δημοτικού>

«Ήταν πολύ ωραίο γιατί συνεργαζόμασταν» <μαθητής Ε’ Δημοτικού>

«Ήταν καλό αλλά πιο καλό με παρέα » <μαθητής Ε’ Δημοτικού>

«Έχει ωραία γραφικά όμως κολλάει. Επίσης είναι εύκολα τα επίπεδα.»

<μαθητής Ε’ Δημοτικού>

«Στην αρχή ήταν δύσκολο, αλλά μετά που το μάθαμε ήταν πολύ ωραίο.»

<μαθητής ΣΤ’ Δημοτικού>

«Ήταν δύσκολο αλλά ωραίο άρα είμαι ευχαριστημένη.» <μαθήτρια Δ’ Δημοτικού>

«Ήταν ωραίο αλλά γιατί χρειάζεται να γράφεις?»

<μαθητής Δ’ Δημοτικού>

«Το παιχνίδι είναι πολύ ωραίο. Μας δυσκόλεψε λίγο το attack, αλλά τα καταφέραμε.»

<μαθητής Ε’ Δημοτικού>

Page 51: Python from Scratch

Μελλοντικός στόχος

52 2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Αξιολόγηση της αποτελεσματικότητας του διδακτικού σεναρίου στην τάξη, σε μαθητές Δημοτικού και Γυμνασίου.

Page 52: Python from Scratch

53 2/10/20168ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» 2016 | Θεοδούλη Τερζίδου

Ευχαριστώ

Theodouli Terzidou | MSc PhD Candidate | Aristotle University of

ThessalonikiEurope Code Week Ambassador | Greece