Python from Scratch

Post on 16-Apr-2017

52 views 2 download

Transcript of Python from Scratch

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

Python from Scratch

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

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

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

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

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

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

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

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

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

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

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

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

5

Καταναλωτής

Δημιουργός

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

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

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

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

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

ών συνόρων

Συνεργασία

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

ων

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

Νέα γλώσσα

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

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

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

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

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

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

Γ’ Γυμνασίου

Scratch, Logo,

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

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

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

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

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

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

GamificationSerious Games

Educational Games Digital Game Learning

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

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

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

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

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

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

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

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

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

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

Code Combat Ruby Warrior Code School

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

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

CODING YOU MUST LEARN

READY ARE YOU?

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

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

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

Scratch

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

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

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

> 10.000.000 χρήστες

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

μού

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

γραφικά

Χρήση blocks

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

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

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

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

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

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

17

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

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

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

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

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

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

Let’s go… Python!

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 | Θεοδούλη Τερζίδου

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

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

Code Combat

A Serious Coding Game

Περί Code Combat…

23

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

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

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

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

24

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

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

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

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

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

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

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

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

25

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

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

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

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

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

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

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

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

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

31

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

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

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

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

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

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

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

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

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

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

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

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

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

Scratch & Python#1 BASICS

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

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

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

& Code Combat#2 OOP

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

34

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

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

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

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

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

35

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

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

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

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

Scratch

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

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

Python

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

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

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

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

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

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

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

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

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

41

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

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

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

42

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#8 | Code Combat HELP

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

Βοήθεια [HELP]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ευχαριστώ

Theodouli Terzidou | MSc PhD Candidate | Aristotle University of

ThessalonikiEurope Code Week Ambassador | Greece