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

Βρόχος χορού με τον προπονητή

Οι μαθητές θα εξασκηθούν στη χρήση βρόγχων for στα προγράμματά τους για να τα κάνουν πιο αποδοτικά

}

45 λεπτά

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

Αρχάριοι

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

  • Ποιοι είναι οι τρόποι για να γίνουν τα προγράμματα πιο αποτελεσματικά;

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

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

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

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

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

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

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

      Οι μαθητές θα εξερευνήσουν τον προγραμματισμό του μοντέλου Coach για να κινείται χρησιμοποιώντας έναν βρόχο for.

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

      Ξεκινήστε να κινείστε

      • Ζητήστε από τους μαθητές να εξετάσουν τον τρόπο κατασκευής του μοντέλου Coach και να κάνουν καταιγισμό ιδεών για το πώς μπορεί να προγραμματιστεί το μοντέλο ώστε να μας καθοδηγεί σε μια προπόνηση ή να χορεύει (να κινείται μπρος πίσω).
      • Δώστε στους μαθητές αυτό το πρόγραμμα-δείγμα για να συζητήσουν για το πώς να κάνουν το μοντέλο Coach να κινείται για να μας οδηγήσει σε μια άσκηση. Ζητήστε από τους μαθητές να εξηγήσουν το πρόγραμμα και να κάνουν προτάσεις για να γίνει το πρόγραμμα πιο αποτελεσματικό.

      Δείγμα προγράμματος:

      από spike import Motor 

      # αρχικοποίηση κινητήρων και ορισμός ονομάτων μεταβλητών

      motor_b=Motor(‘B’)

      motor_f=Motor(‘F’)

      # τρέξτε τους κινητήρες σε εναλλασσόμενες κινήσεις για να δημιουργήσετε έναν χορό 

      motor_f.run_for_seconds(0.4, 30)

      motor_b.run_for_seconds(0.4, 30)

      motor_f.run_for_seconds(0.4, -30)

      motor_b.run_for_seconds(0.4, -30)

      motor_f.run_for_seconds(0.4, 30)

      motor_b.run_for_seconds(0.4, 30)

      motor_f.run_for_seconds(0.4, -30)

      motor_b.run_for_seconds(0.4, -30)

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

      Αν χρειαστεί, δώστε στους μαθητές αυτό το δείγμα κώδικα.

      from spike import Motor

      # αρχικοποίηση κινητήρων και ορισμός ονομάτων μεταβλητών

      motor_b=Motor(‘B’)

      motor_f=Motor(‘F’)

      # τρέξτε τους κινητήρες σε εναλλασσόμενες κινήσεις 10 φορές

      for count in range(10):

          motor_f.run_for_seconds(0.4, 30)

          motor_b.run_for_seconds(0.4, 30)

          motor_f.run_for_seconds(0.4, -30)

          motor_b.run_for_seconds(0.4, -30)

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

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

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

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

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

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

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

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

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

        Δραστηριότητα εντοπισμού σφαλμάτων 1:

        Αναγνωρίστε ένα σφάλμα στον κώδικα του βρόγχου.

        from spike import Motor

        # αρχικοποίηση κινητήρων και ορισμός ονομάτων μεταβλητών

        motor_b=Motor(‘B’)

        motor_f=Motor(‘F’)

        # τρέξτε τους κινητήρες σε εναλλασσόμενες κινήσεις 10 φορές

        for count in range():

            motor_f.run_for_seconds(0.4, 30)

            motor_b.run_for_seconds(0.4, 30)

            motor_f.run_for_seconds(0.4, -30)

            motor_b.run_for_seconds(0.4, -30)

        Αρχείο “lib/hub/flash/programrunner/__init__.py”, γραμμή 1, in start_program

        Αρχείο “./projects/48509.py”, γραμμή 8

        TypeError: Από τη συνάρτηση λείπουν 1 απαιτούμενα ορίσματα θέσης

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

        Δραστηριότητα εντοπισμού σφαλμάτων 2:

        Αναγνωρίστε ένα σφάλμα στη μεταβλητή motor.

        from spike import Motor

        # αρχικοποίηση κινητήρων και ορισμός ονομάτων μεταβλητών

        motor_b=Motor(‘B’)

        motor_f=Motor(‘F’)

        # τρέξτε τους κινητήρες σε εναλλασσόμενες κινήσεις 10 φορές

        for count in range(10):

            motor_f.run_for_seconds(0.4, 30)

            motor_b.run_for_seconds(0.4, 30)

            motor_f.run_for_seconds(0.4, -30)

            motor.run_for_seconds(0.4, -30)

        Αρχείο “lib/hub/flash/programrunner/__init__.py”, γραμμή 1, in start_program

        Αρχείο “./projects/7232.py”, γραμμή 13

        NameError: το όνομα ‘motor’ δεν έχει οριστεί

        Οι μαθητές θα πρέπει να αναγνωρίσουν ότι το σφάλμα δείχνει στη γραμμή 13 και λέει ότι ο κινητήρας δεν έχει οριστεί. Το μοτέρ δεν ταιριάζει από τα δύο ονόματα μοτέρ που δώσαμε. Προτρέψτε τους μαθητές να μετονομάσουν τον κινητήρα σε motor_b.

        Δραστηριότητα εντοπισμού σφαλμάτων 3:

        Αναγνωρίστε ένα σφάλμα στη δομή του προγράμματος.

        from spike import Motor

        # αρχικοποίηση κινητήρων και ορισμός ονομάτων μεταβλητών

        motor_b=Motor(‘B’)

        motor_f=Motor(‘F’)

        # τρέξτε τους κινητήρες σε εναλλασσόμενες κινήσεις 10 φορές

        for count in range(10):

        motor_f.run_for_seconds(0.4, 30)

        motor_b.run_for_seconds(0.4, 30)

            motor_f.run_for_seconds(0.4, -30)

            motor_b.run_for_seconds(0.4, -30)

        Αρχείο “lib/hub/flash/programrunner/__init__.py”, γραμμή 1, in start_program

        Αρχείο “./projects/13982.py”, γραμμή 9

        SyntaxError: άκυρη σύνταξη

        Οι μαθητές θα πρέπει να αναγνωρίσουν ότι υπάρχει σφάλμα στη γραμμή 9. Η άκυρη σύνταξη σημαίνει ότι το πρόγραμμα δεν μπορεί να αναγνωρίσει την εντολή που δόθηκε για τη μετατροπή του. Παροτρύνετε τους μαθητές να αναγνωρίσουν ότι δώσαμε μια γραμμή κώδικα σε έναν βρόχο for, αλλά στη συνέχεια δεν είπαμε στον βρόχο τι να κάνει, επειδή δεν κάναμε εσοχή στην επόμενη γραμμή κώδικα. Κάθε γραμμή που θέλετε να συμπεριλάβετε στο βρόχο πρέπει να έχει εσοχή.

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

        Δραστηριότητα εντοπισμού σφαλμάτων 4:

        Ένα άλλο ζήτημα που μπορεί να συμβεί είναι η δημιουργία ενός σφάλματος που το πρόγραμμα δεν αναγνωρίζει ως σφάλμα.

        from spike import Motor

        # αρχικοποίηση κινητήρων και ορισμός ονομάτων μεταβλητών

        motor_b=Motor(‘B’)

        motor_f=Motor(‘F’)

        # τρέξτε τους κινητήρες σε εναλλασσόμενες κινήσεις 10 φορές

        for count in range(10):

        motor_f.run_for_seconds(0.4, 30)

        motor_b.run_for_seconds(0.4, 30)

            motor_f.run_for_seconds(0.4, -30)

            motor_b.run_for_seconds(0.4, -30)

        Δείξτε στους μαθητές τον κώδικα από τη Δραστηριότητα 3 με τη γραμμή 9 σε εσοχή, δηλαδή τη διόρθωση του προηγούμενου σφάλματος. Ωστόσο, τι συμβαίνει αν δεν κάνουμε εσοχή στη γραμμή 10. Ζητήστε από τους μαθητές να προβλέψουν το νέο σφάλμα που θα εμφανιστεί.

        Αρχείο “lib/hub/flash/programrunner/__init__.py”, γραμμή 1, in start_program

        Αρχείο “./projects/5045.py”, γραμμή 12

        IndentationError: απροσδόκητη εσοχή

        Δείξτε στους μαθητές το μήνυμα σφάλματος. Ενώ οι μαθητές μπορεί να περίμεναν ένα σφάλμα στη γραμμή 10 για μη εσοχή, το πραγματικό σφάλμα συνέβη στη γραμμή 12. Ζητήστε από τους μαθητές να σκεφτούν τι έκανε το πρόγραμμα. Εξηγήστε τους ότι το πρόγραμμα διάβασε τον βρόχο στη γραμμή 8, ο οποίος συνδέθηκε με την ενέργεια για τον βρόχο στη γραμμή 9 (η σύνδεση που υποδεικνύεται από την εσοχή). Όταν η γραμμή 10 δεν είχε εσοχή, το πρόγραμμα διάβασε ότι ο βρόχος τελείωσε. Ωστόσο, όταν είδε μια εσοχή στη γραμμή 12, το πρόγραμμα μπερδεύτηκε. Δεν υπήρχε τίποτα που να απαιτεί μια εσοχή, οπότε το πρόγραμμα διάβασε ένα σφάλμα.

        Συζητήστε τα διάφορα μηνύματα σφάλματος και τους τρόπους αντιμετώπισής τους μαζί ως τάξη.

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

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

        Παρατήρηση του δασκάλου:

        Συζητήστε το πρόγραμμα με τους μαθητές.

        Κάντε στους μαθητές ερωτήσεις όπως: “Τι είναι αυτό το πρόγραμμα;”:

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

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

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

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

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

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

        CSTA

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

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

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

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

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

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