LEGO® Education > Σχέδια Μαθήματος > ΣΧΕΔΙΟ ΕΝΟΤΗΤΑΣ:

Χοροπηδώντας από χαρά για λίστες!

Δημιουργήστε ένα πρόγραμμα που χρησιμοποιεί λίστες για την καταγραφή δεδομένων φυσικής απόδοσης

}

90-120 λεπτά

Τάξεις ΣΤ’ Δημοτικού- Β’ Γυμνασίου

Ενδιάμεσο

Ερωτήσεις προς διερεύνηση

  • Πώς μπορείτε να δημιουργήσετε μια λίστα που να αντιπροσωπεύει τα προσωπικά σας στατιστικά στοιχεία για την απόδοση;

Προετοιμασία ( Prepare )

  • Βεβαιωθείτε ότι οι εγκέφαλοι SPIKE Prime είναι φορτισμένοι, ειδικά αν η σύνδεση γίνεται μέσω Bluetooth.

Συμμετοχή ( Engage )

(Ομαδική συζήτηση, 5 λεπτά)

Εμπλέξτε τους μαθητές σε μια συζήτηση σχετικά με την κίνηση του σώματός σας όταν κάνετε ένα κάθισμα. (Για παράδειγμα, τα πόδια σας λυγίζουν και ο κορμός σας έρχεται πιο κοντά στο έδαφος.) Βάλτε τους μαθητές να σηκωθούν και να κάνουν ένα κάθισμα.

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

Ποιοι είναι οι τρόποι για να μετρήσετε πόσο χαμηλά πέφτει ένα σώμα κατά τη διάρκεια ενός καθίσματος ή πόσο ψηλά βρίσκεται ένα σώμα στην κορυφή ενός άλματος;

Ανακάλυψη ( Explore )

(Μικρές ομάδες, 45 λεπτά)

Οι μαθητές θα διερευνήσουν τρόπους δημιουργίας δεδομένων για να τα συμπεριλάβουν σε λίστες.

Κατευθύνετε τους μαθητές στην ενότητα BUILD στην εφαρμογή SPIKE. Εδώ οι μαθητές μπορούν να έχουν πρόσβαση στις οδηγίες κατασκευής του μοντέλου Smart Kettlebell.  Ζητήστε από τους μαθητές να κατασκευάσουν το μοντέλο. Οι οδηγίες κατασκευής είναι επίσης διαθέσιμες στη διεύθυνση https://education.lego.com/en-us/support/spike-prime/building-instructions.

Καθοδηγήστε τους μαθητές να ανοίξουν ένα νέο έργο στον καμβά προγραμματισμού Python. Ζητήστε από τους μαθητές να διαγράψουν τυχόν κώδικα που βρίσκεται ήδη στον προγραμματιστικό χώρο. Οι μαθητές θα πρέπει να συνδέσουν τον κόμβο τους.  

Μέρος 1: Δημιουργία δεδομένων για τη λίστα σας
Οι μαθητές θα πρέπει να προγραμματίσουν το μοντέλο τους Kettlebell ώστε να παρέχει διάφορα ύψη για τα άλματά τους. Οι μαθητές θα χρησιμοποιήσουν αυτές τις πληροφορίες για να δημιουργήσουν μια λίστα που θα χρησιμοποιήσουν αργότερα.

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

from spike import PrimeHub, ForceSensor, DistanceSensor 
from spike.control import wait_until

hub = PrimeHub() 
kettlebell=ForceSensor(‘B’)
distance=DistanceSensor(‘F’)

while True:
    kettlebell.wait_until_pressed()
    print (‘JUMP!’)

    kettlebell.wait_until_released()
    dist_cm=distance.get_distance_cm()
    print(dist_cm, ‘cm’)

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

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

Μέρος 2: Δημιουργήστε τον κατάλογό σας
Οι μαθητές θα δημιουργήσουν δύο λίστες σε ένα νέο πρόγραμμα χρησιμοποιώντας τα δεδομένα που δημιούργησαν στο μέρος 1.

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

Ζητήστε από τους μαθητές να δημιουργήσουν το πρόγραμμά τους που περιλαμβάνει και τις δύο λίστες, αναφέροντας ποια είναι η μέγιστη τιμή από κάθε λίστα και στη συνέχεια να μοιραστούν κάθε τιμή στον κόμβο. Παρουσιάστε στους μαθητές τη γραμμή κώδικα max(name1) ως έναν τρόπο για να δηλώσουν τη μέγιστη τιμή στη λίστα τους.

from spike import PrimeHub, LightMatrix, ForceSensor 
from spike.control import wait_for_seconds, wait_until

hub = PrimeHub() 
force = ForceSensor(‘B’)

\# Δημιουργήστε μια λίστα για κάθε άτομο χρησιμοποιώντας τις τιμές από τον πίνακα.
name1=[trial1, trial2, trial3]
name2=[trial1, trial2, trial3]

\# Εκτυπώστε τη μέγιστη τιμή από τη λίστα κάθε ατόμου.
print(‘name1:’)
print(max(name1))
print(‘name2:’)
print(max(name2))

\# Εμφάνιση των μέγιστων τιμών στον κόμβο όταν πατηθεί ο αισθητήρας δύναμης.
while True: 
    force.wait_until_pressed()  
    hub.light_matrix.write(max(name1))
    hub.light_matrix.show_image(‘YES’)
    wait_for_seconds(1)
    hub.light_matrix.write(max(name2))
    hub.light_matrix.show_image(‘YES’)

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

Μέρος 3: Συνδυάζοντας λίστες
Οι μαθητές θα τροποποιήσουν το πρόγραμμά τους ώστε να προσθέσουν τις δύο λίστες τους μαζί για να δημιουργήσουν μία λίστα.

Εξηγήστε στους μαθητές ότι η συνένωση λιστών επιτρέπει τον συνδιασμό δύο λιστών σε μία χρησιμοποιώντας το σύμβολο +. Μοιραστείτε με τους μαθητές το παράδειγμα της γραμμής κώδικα list3 = list1 + list2 ως έναν τρόπο πρόσθεσης λιστών μαζί. Προκαλέστε τους μαθητές να συνδέσουν τις λίστες τους και να βρουν το νέο μέγιστο ή τον υψηλότερο αριθμό και από τις δύο λίστες.

from spike import PrimeHub, LightMatrix, ForceSensor
from spike.control import wait_for_seconds, wait_until

hub = PrimeHub()
force = ForceSensor(‘B’)

\# Δημιουργήστε μια λίστα για κάθε άτομο χρησιμοποιώντας τις τιμές από τον πίνακα.
name1=[trial1,trial2, trial3]
name2=[trial1,trial2, trial3]

\# Εκτυπώστε κάθε λίστα. 
print(name1)
print(name2)

\# Συνδυάστε τις δύο λίστες σε μία λίστα όταν πατηθεί ο αισθητήρας δύναμης. Εκτυπώστε τη λίστα. 
\# Εμφανίστε το άθροισμα της λίστας στον κόμβο.
while True:
    force.wait_until_pressed()
    combo_list= name1 + name2 
    # Εκτυπώστε τη νέα λίστα. Στη συνέχεια, εκτυπώστε το άθροισμα της λίστας στον κόμβο.
    print(combo_list)
    hub.light_matrix.write(sum(combo_list))
    print(sum(combo_list))
    hub.light_matrix.show_image(‘YES’)

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

Εξηγήστε το ( Explain )

(Ολόκληρη η ομάδα, 15 λεπτά)

Συζητήστε με τους μαθητές πώς λειτούργησε το πρόγραμμα.
Κάντε στους μαθητές ερωτήσεις όπως:

  • Πώς μπορέσατε να δημιουργήσετε τα δικά σας δεδομένα για να τα συμπεριλάβετε σε μια λίστα;
  • Πώς καταφέρατε να ενσωματώσετε τη χρήση του αισθητήρα δύναμης ως κουμπί που πρέπει να πατήσετε για να συμβεί μια ενέργεια;
  • Πώς μπορέσατε να βρείτε διαφορετικές πληροφορίες για τις λίστες σας (όπως το άθροισμα ή το μέγιστο); Ποιες άλλες τιμές πιστεύετε ότι θα μπορούσατε να βρείτε;
  • Πώς μπορείτε να συνδυάσετε λίστες μεταξύ τους; Πότε θα μπορούσε αυτό να είναι χρήσιμο;

Εξελίξτε το ( Elaborate )

(Μικρές ομάδες, 25 λεπτά)

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

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

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

Μοιραστείτε με τους μαθητές το πρόγραμμα του δείγματος και ζητήστε τους να προσδιορίσουν τον τρόπο με τον οποίο το πρόγραμμα ελέγχει τη λίστα για να δει αν περιλαμβάνεται ο αριθμός.

    Παράδειγμα κώδικα:

    from spike import PrimeHub, LightMatrix, ForceSensor, DistanceSensor
    from spike.control import wait_for_seconds, wait_until

    hub = PrimeHub()
    force = Αισθητήρας δύναμης(‘B’)
    distance_sensor = DistanceSensor(‘F’)

    \# Δημιουργήστε μια λίστα για κάθε άτομο χρησιμοποιώντας τις τιμές από τον πίνακα.
    name1=[trial1,trial2, trial3]
    name2=[trial1,trial2, trial3]

    \# εκτύπωση κάθε λίστας
    print(name1)
    print(name2)

    \# συνδυάστε τις δύο λίστες σε μία λίστα όταν πατηθεί ο αισθητήρας δύναμης. Εκτυπώστε τη λίστα. Εμφανίστε το άθροισμα της λίστας στον κόμβο.
    while True:
        force.wait_until_pressed()
        combo_list= name1 + name2

        \# Εκτύπωση της νέας λίστας. Στη συνέχεια, εκτυπώστε το άθροισμα της λίστας στον κόμβο.
        print(combo_list)
        hub.light_matrix.write(sum(combo_list))
        hub.light_matrix.show_image(‘YES’)
        wait_for_seconds(2)
        break

    \# έλεγχος για να δούμε αν τα δεδομένα περιλαμβάνονται στη λίστα
    if (20 in combo_list):
        print(‘ο αριθμός 20 είναι στη λίστα’)
        hub.light_matrix.write(‘YES’)
    else: 
        print(‘ο αριθμός 20 δεν περιλαμβάνεται στη λίστα’)
        hub.light_matrix.write(‘NO’)

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

    Αξιολόγηση  ( Evaluate )

    (Ομαδική δραστηριότητα, 10 λεπτά)

    Παρατηρήσεις του εκπαιδευτικού:

    Συζητήστε το πρόγραμμα με τους μαθητές.
    Κάντε στους μαθητές ερωτήσεις όπως:

    • Τι ήταν δύσκολο σε αυτή την πρόκληση;
    • Ποια ήταν η προσέγγισή σας για την επίλυση αυτής της πρόκλησης;
    • Τι είδους λογικούς τελεστές συμπεριλάβατε και γιατί;

    Αυτοαξιολόγηση:

    Βάλτε τους μαθητές να απαντήσουν στα ακόλουθα στα ημερολόγιά τους:

    • Τι μάθατε σήμερα σχετικά με τη δημιουργία του δικού σας σχεδιασμού με βάση συγκεκριμένα κριτήρια;
    • Ποια χαρακτηριστικά ενός καλού συμπαίκτη επέδειξα σήμερα;
    • Ζητήστε από τους μαθητές να βαθμολογήσουν τον εαυτό τους σε κλίμακα 1-3, σχετικά με τη διαχείριση του χρόνου τους σήμερα.
    • Ζητήστε από τους μαθητές να βαθμολογήσουν τον εαυτό τους σε κλίμακα 1-3, σχετικά με τη διαχείριση των υλικών (εξαρτημάτων) που έκαναν σήμερα.
    Υποστήριξη εκπαιδευτικών

    Οι μαθητές θα:

    • Δημιουργήσουν δεδομένα από τους αισθητήρες δύναμης και απόστασης για χρήση σε μια λίστα
    • Προγραμματίσουν μια λίστα με βάση τα δεδομένα που συλλέχθηκαν από τις δοκιμές άλματος (π.χ. ύψος των αλμάτων)
    Πράγματα που θα χρειαστείτε
    • Σετ SPIKE Prime έτοιμα για χρήση από τους μαθητές
    • Συσκευές με εγκατεστημένη την εφαρμογή SPIKE
    • Ημερολόγια μαθητών
    Εκπαιδευτικά πρότυπα

    CSTA
    2-CS-02
    Σχεδιασμός έργων που συνδυάζουν στοιχεία υλικού και λογισμικού για τη συλλογή και ανταλλαγή δεδομένων.

    2-AP-10 
    Χρήση διαγραμμάτων ροής ή/και ψευδοκώδικα για την αντιμετώπιση σύνθετων προβλημάτων ως αλγόριθμοι

    2-AP-11
    Να δημιουργούν μεταβλητές με σαφή ονόματα που αντιπροσωπεύουν διαφορετικούς τύπους δεδομένων και να εκτελούν πράξεις στις τιμές τους.

    2-AP-13
    Να αναλύουν προβλήματα και υποπροβλήματα σε μέρη για να διευκολύνουν το σχεδιασμό, την υλοποίηση και την αναθεώρηση προγραμμάτων.

    2-AP-16
    Ενσωμάτωση υπάρχοντος κώδικα, μέσων και βιβλιοθηκών σε πρωτότυπα προγράμματα και απόδοση των στοιχείων αυτών.

    2-AP-17
    Συστηματική δοκιμή και τελειοποίηση προγραμμάτων χρησιμοποιώντας μια σειρά περιπτώσεων δοκιμής.

    2-AP-19
    Τεκμηρίωση προγραμμάτων προκειμένου να διευκολύνεται η παρακολούθηση, ο έλεγχος και η αποσφαλμάτωση.