Skip to main content

Bewerten und erklären

Lehrer-Toolbox-Symbol Lehrer-Toolbox - Einführung in die Code-Effizienz

Nachdem die Schüler nun geübt haben, Codesequenzen zu schreiben, um eine bestimmte Aufgabe zu erfüllen, werden sie gebeten, diese Fähigkeiten anzuwenden, um Codesequenzen zu lesen und zu bewerten. In dieser Aktivität erhalten die Schüler eine Karte, die der im Abschnitt Spielen ähnelt, und werden gebeten, sich 3 Codesequenzen anzusehen, um die bevorzugte Lösung auszuwählen. Für jede Sequenz beantworten die Schüler 3 Fragen:

  • Erfüllt dieser Code die Aufgabe?

  • Wenn es funktioniert, was sind die Vorteile dieses Codes gegenüber den anderen?

  • Was sind die Nachteile dieses Codes gegenüber den anderen?

Wenn Sie sich dann alle Sequenzen ansehen, werden die Schüler in die Idee der Code-Effizienz eingeführt und gefragt, was ihre bevorzugte Lösung ist - basierend auf Effizienz und ihren eigenen Vorlieben - und warum. Dies kann ein Sprungbrett für eine ganze Klassendiskussion über Effizienz und Genauigkeit in der Codierung sein.

Lesen von Codesequenzen zur Auswahl einer bevorzugten Lösung

Als Ihre Klasse am Abschnitt Spielen arbeitete, haben Sie wahrscheinlich bemerkt, dass es viele verschiedene Lösungen für das gleiche Problem gab, das vorgestellt wurde. Das ist etwas, was in der Welt der Programmierung oft vorkommt. Obwohl es verschiedene Möglichkeiten geben kann, etwas zu tun, hat jeder eine bevorzugte Methode oder Lösung, die auf einer Reihe von Faktoren basieren kann. In dieser Aktivität wird sich Ihre Gruppe 3 mögliche Codeblocklösungen für ein Problem ansehen, herausfinden, ob sie in der beabsichtigten Weise funktionieren, dann eine bevorzugte Lösung aus der Gruppe auswählen und erklären, warum Sie sie ausgewählt haben.

Das Problem: Erstellen Sie eine Sequenz, die, wenn der Roboter beim Start beginnt, in alle 3 Klassenräume ein- und ausfährt (in beliebiger Reihenfolge) und zum Endpunkt zurückkehrt. Der Roboter muss um die Treppe herum navigieren und kann durch die Türen gehen, die durch die kleinen Rechtecke auf dem Kartenbild markiert sind.

Skizziertes Layout, das den Start in der linken unteren Ecke und das Ende in der rechten unteren Ecke zeigt. Über dem Start befindet sich Raum A mit einer Tür zum Start und einer nach rechts, zur Treppe in der Mitte. Direkt rechts von der Treppe befinden sich Raum B und Raum C, die über dem Ende gestapelt sind. Es gibt Türen zu den Räumen B und C, die der Treppe zugewandt sind, und eine, die die beiden verbindet.

  • Beantworten Sie für jede der folgenden Lösungen diese 3 Fragen in Ihrem technischen Notizbuch:
    • Erfüllt dieser Code die Aufgabe? Warum oder warum nicht?
    • Wenn es funktioniert, was sind die Vorteile dieses Codes gegenüber den anderen?
    • Was sind die Nachteile dieses Codes gegenüber den anderen?
  • Meistens wird die Programmierung auf ihre Effizienz hin bewertet, und die bevorzugte Lösung ist eine, die das Ziel auf möglichst effiziente Weise erreicht.

Klicken Sie auf die Lösungen unten, um ein größeres Bild zu sehen.

Beispiellösung für die Herausforderung, bestehend aus 19 Drive to und Turn für Blöcke, die mit dem When Started-Block verbunden sind. In der Reihenfolge werden die Blöcke den Roboter dazu bringen, sich um 90 Grad nach rechts zu drehen, 10 Zoll vorwärts zu fahren, sich um 90 Grad nach links zu drehen, 3 Zoll vorwärts zu fahren, dann 6 Zoll rückwärts zu fahren, dann um 90 Grad nach links zu drehen, 10 Zoll vorwärts zu fahren. Dann biegen Sie um 90 Grad nach rechts ab, fahren Sie 8 Zoll vorwärts und 4 Zoll rückwärts, biegen Sie um 90 Grad nach rechts ab und fahren Sie 10 Zoll vorwärts. Biegen Sie dann um 90 Grad nach links ab, fahren Sie 1 Zoll vorwärts, biegen Sie um 90 Grad nach rechts ab, fahren Sie 3 Zoll vorwärts und 4 Zoll rückwärts, drehen Sie dann um 90 Grad nach rechts und fahren Sie 5 Zoll vorwärts.
Lösung A (Zoll)

Eine beispielhafte Lösung mit 11 Drive for und Turn für Blöcke, die mit einem When started-Block verbunden sind. Damit die Blöcke den Roboter 10 Zoll vorwärts fahren lassen, drehen Sie ihn um 90 Grad nach links, fahren Sie 1 Zoll vorwärts, drehen Sie ihn um 90 Grad nach links, fahren Sie 1 Zoll vorwärts, drehen Sie ihn um 90 Grad nach rechts, fahren Sie 10 Zoll vorwärts, drehen Sie ihn um 90 Grad nach rechts, fahren Sie dann 5 Zoll rückwärts, drehen Sie ihn um 90 Grad nach rechts und fahren Sie 10 Zoll vorwärts.
Lösung B (Zoll)
Eine beispielhafte Lösung mit 10 Drive for und Turn für Blöcke, die mit dem When started-Block verbunden sind. In der Reihenfolge fahren die Blöcke den Roboter 8 Zoll vorwärts, dann 4 Zoll, drehen sich um 90 Grad nach rechts, fahren 13 Zoll vorwärts, drehen sich um 90 Grad nach links, fahren 8 Zoll vorwärts, drehen sich um 90 Grad nach links, fahren um 4 Zoll vorwärts, drehen sich um 90 Grad nach rechts und fahren 5 Zoll rückwärts.
Lösung C (Zoll)
Beispiellösung für die Herausforderung, bestehend aus 19 Drive to und Turn für Blöcke, die mit dem When Started-Block verbunden sind. In dieser Reihenfolge werden die Blöcke den Roboter dazu bringen, sich um 90 Grad nach rechts zu drehen, 254 mm vorwärts zu fahren, sich um 90 Grad nach links zu drehen, 76 mm vorwärts zu fahren, dann 152 mm rückwärts zu fahren, dann um 90 Grad nach links zu drehen, 254 mm vorwärts zu fahren. Dann um 90 Grad nach rechts drehen, 203 mm vorwärts und 101 mm rückwärts fahren, um 90 Grad nach rechts drehen, 254 mm vorwärts fahren. Dann biegen Sie um 90 Grad nach links ab, fahren Sie 25 mm vorwärts, biegen Sie um 90 Grad nach rechts ab, fahren Sie 76 mm vorwärts und 101 mm rückwärts, drehen Sie dann um 90 Grad nach rechts und fahren Sie 127 mm vorwärts.
Lösung A (metrisch)
Eine beispielhafte Lösung mit 11 Drive for und Turn für Blöcke, die mit einem When started-Block verbunden sind. Damit die Blöcke den Roboter 254 mm vorwärts fahren lassen, drehen Sie ihn um 90 Grad nach links, fahren Sie 25 mm vorwärts, drehen Sie ihn um 90 Grad nach links, fahren Sie 25 mm vorwärts, drehen Sie ihn um 90 Grad nach rechts, fahren Sie 254 mm vorwärts, drehen Sie ihn um 90 Grad nach rechts, fahren Sie dann 127 mm rückwärts, drehen Sie ihn um 90 Grad nach rechts und fahren Sie 254 mm vorwärts.
Lösung B (metrisch)
Eine beispielhafte Lösung mit 10 Drive for und Turn für Blöcke, die mit dem When started-Block verbunden sind. In der Reihenfolge fahren die Blöcke den Roboter 203 mm vorwärts, dann 101 mm, drehen sich um 90 Grad nach rechts, fahren 330 mm vorwärts, drehen sich um 90 Grad nach links, fahren 203 mm vorwärts, drehen sich um 90 Grad nach links, fahren 10 mm vorwärts, drehen sich um 90 Grad nach rechts und fahren 127 mm rückwärts.
Lösung C (metrisch)

Was ist Code-Effizienz?

Wenn du 3 Dinge aus deiner Küche holen müsstest, würdest du wahrscheinlich alle 3 Dinge auf einer Reise bekommen, anstatt 3 separate Reisen zu machen. Warum? Weil es effizienter wäre. Effizient bedeutet „maximale Produktivität mit minimalem verschwendetem Aufwand oder Kosten zu erreichen“. Wie hängt das mit der Programmierung zusammen?

Code-Effizienz bedeutet, dass ein Programm so geschrieben wird, dass es gut und schnell funktioniert, mit dem geringsten Aufwand an Arbeit oder Schritten, während es seine Arbeit noch richtig erledigt. Es ist wichtig, weil es das Risiko reduziert, dass ein Programm nicht gut funktioniert und dadurch Probleme für andere Teile eines Programms verursacht, die um es herum laufen. Die Effizienz eines Codes kann ein Maß für die Qualität sein, und wenn wir Projekte im VEXcode IQ-Block schreiben, suchen wir oft nach dem „effizientesten“ Projekt als bevorzugte Lösung.

Grundsätzlich ist Code-Effizienz ein Prinzip, das bedeutet, dass Sie einen Code schreiben möchten, der Ihr Ziel mit möglichst wenigen Befehlen oder Blöcken erreicht. Beantworten

Sie in Ihrem technischen Notizbuch die folgenden Fragen:

  • Was ist Ihre bevorzugte Lösung im Hinblick auf die Code-Effizienz und warum?
  • Glauben Sie, dass das die beste Lösung ist, warum oder warum nicht?

Lehrer-Toolbox-Symbol Lehrer-Toolbox - Antworten

Die Antworten können variieren, da oben keine spezifischen Abmessungen angegeben wurden, um eine Sequenz zum Navigieren in drei Räumen zu erstellen.
Klicken Sie hier für ein mögliches Lösungsbeispiel.

Motivations-Diskussionssymbol Diskussion motivieren

Während Effizienz nützlich ist, haben wir oft andere Überlegungen darüber, wie oder warum wir Dinge auf eine bestimmte Weise tun. Bitten Sie die Schüler, ihre Antworten in ihrem technischen Notizbuch zu teilen, und/oder verwenden Sie diese Frage, um eine Diskussion über das Gleichgewicht von Effizienz und Maßnahmen zu führen.
F: In der Programmierung ist Effizienz normalerweise die bevorzugte Methodik. Können Sie sich einen Grund vorstellen, warum dies der Fall ist?
A: Die Antworten variieren, aber einige beinhalten:

  • Projekte so zu bearbeiten, dass sie effizienter sind, hilft denjenigen in der Zukunft, die möglicherweise mit demselben Projekt arbeiten. Wenn Sie beispielsweise an einem Projekt arbeiten und dann ein paar Tage später Ihren Freund bitten, das Projekt zu aktualisieren und ein paar weitere Elemente hinzuzufügen, um die Funktionalität zu erweitern, ist es für Ihren Freund einfacher zu lesen und mit ihm zu arbeiten, wenn das Projekt effizient geschrieben wird.

  • Projekte sind immer fehleranfällig. Je effizienter ein Projekt geschrieben wird, desto unwahrscheinlicher ist es, dass ein Fehler gemacht wird.

  • Personen, die Industrieroboter programmieren, verlassen sich darauf, dass diese Projekte effizient sind, um dem Unternehmen Zeit, Energie und Ressourcen zu sparen.