In der Welt der Ingenieurausbildung gibt es viele hervorragende Kurse, aber oft hat das darauf basierende Studienprogramm einen ernsthaften Nachteil â es fehlt an guter Zusammenhang zwischen den verschiedenen Themen. Man könnte widersprechen: Wie kann das sein?
Bei der Erstellung des Studienprogramms werden fĂŒr jeden Kurs die Voraussetzungen und eine klare Reihenfolge angegeben, in der die FĂ€cher studiert werden mĂŒssen. Zum Beispiel, um einen einfachen mobilen Roboter zu bauen und zu programmieren, muss man etwas Mechanik zur Erstellung seiner physischen Struktur wissen; Grundlagen der ElektrizitĂ€t auf der Ebene der Gesetze von Ohm/Kirchhoff; die Darstellung digitaler und analoger Signale; Operationen mit Vektoren und Matrizen, um Koordinatensysteme und die Bewegung des Roboters im Raum zu beschreiben; Grundlagen des Programmierens auf der Ebene der DatenreprĂ€sentation, einfachster Algorithmen und Kontrollstrukturen usw., um das Verhalten zu beschreiben.
Gibt es all das in den UniversitĂ€tskursen? NatĂŒrlich gibt es das. Allerdings im Zusammenhang mit den Gesetzen von Ohm/Kirchhoff werden Thermodynamik und Feldtheorie behandelt; neben den Operationen mit Matrizen und Vektoren muss man sich mit Jordanformen auseinandersetzen; beim Programmieren das Lernen von Polymorphismus â Themen, die nicht immer notwendig sind, um eine einfache praktische Aufgabe zu lösen.
UniversitĂ€res Lernen ist extensiv â die Lernenden gehen in breiter Front vor und sehen oft keinen Sinn oder praktische Bedeutung in dem Wissen, das sie erwerben. Wir haben beschlossen, die Paradigmen der universitĂ€ren STEM-Ausbildung (von Science, Technology, Engineering, Math) umzukehren und ein Programm zu entwickeln, das auf der KohĂ€renz des Wissens basiert und eine spĂ€tere Vertiefung ermöglicht, das heiĂt, es wird eine intensive Beherrschung der FĂ€cher ĐżĐŸĐŽŃазŃĐŒĐ”ĐČаДŃŃŃ.
Das Erlernen eines neuen Fachgebiets kann mit dem Erforschen einer bestimmten Gegend verglichen werden. Hier gibt es zwei Optionen: entweder liegt uns eine sehr detaillierte Karte mit einer Vielzahl von Details vor, die es zu erlernen gilt (was viel Zeit in Anspruch nimmt), um zu verstehen, wo sich die wichtigsten Orientierungspunkte befinden und wie sie zueinander in Beziehung stehen; oder man kann einen einfachen Plan verwenden, auf dem nur die wichtigsten Punkte und ihre gegenseitige Anordnung gekennzeichnet sind â eine solche Karte reicht aus, um sofort in die richtige Richtung zu gehen und die Einzelheiten wĂ€hrend des Fortgangs zu klĂ€ren.
Den Ansatz des intensiven Lernens im Bereich STEM haben wir an einer Winterakademie erprobt, die wir gemeinsam mit Studierenden des MIT mit UnterstĂŒtzung von
Materialvorbereitung
Der erste Teil des Programms bestand aus einer Woche Unterricht zu den HauptfĂ€chern, die Algebra, elektrische Schaltungen, Computerarchitektur, Programmierung in Python und eine EinfĂŒhrung in ROS (Robot Operating System) umfassten.
Die Themen wurden nicht zufĂ€llig gewĂ€hlt: Sie sollten sich gegenseitig ergĂ€nzen und den Studierenden helfen, Verbindungen zwischen auf den ersten Blick unterschiedlichen Bereichen â Mathematik, Elektronik und Programmierung â zu erkennen.
NatĂŒrlich war das Hauptziel nicht, viele Vorlesungen zu halten, sondern den Studierenden die Möglichkeit zu geben, das neu erworbene Wissen selbst praktisch anzuwenden.
Im Bereich Algebra konnten die Studierenden ihre FĂ€higkeiten im Umgang mit Matrizen und der Lösung von Gleichungssystemen trainieren, die beim Lernen von elektrischen Schaltungen hilfreich waren. Nachdem sie den Aufbau eines Transistors und der auf dessen Basis aufgebauten Logikelemente kennengelernt hatten, konnten die Lernenden deren Anwendung im Aufbau eines Prozessors sehen, und nach dem Studium der Grundlagen der Programmiersprache Python eine Programmierung fĂŒr einen echten Roboter schreiben.

Duckietown
Eine der Aufgaben der Akademie war es, die Arbeit mit Simulatoren dort zu minimieren, wo dies möglich ist. Daher wurde ein umfangreicher Satz von elektrischen Schaltungen vorbereitet, den die Studierenden auf einer Lochplatte aus echten Komponenten zusammenbauen und in der Praxis testen sollten, wobei Duckietown als Grundlage fĂŒr die Projekte gewĂ€hlt wurde.
Duckietown ist ein offenes Projekt, das kleine autonome Roboter namens Duckiebot und ein Netzwerk von StraĂen umfasst, ĂŒber die sie sich bewegen. Duckiebot ist eine Rollplattform, die mit einem Raspberry Pi-Mikrocomputer und einer Kamera ausgestattet ist.
Auf dieser Basis haben wir eine Reihe möglicher Aufgaben vorbereitet, wie zum Beispiel das Erstellen von StraĂenkarten, das Finden von Objekten und das Anhalten in deren NĂ€he sowie eine Reihe weiterer. Auch konnten die Studenten ein eigenes Problem vorschlagen und nicht nur ein Programm zu dessen Lösung schreiben, sondern es auch sofort auf einem echten Roboter ausfĂŒhren.
Unterricht
WĂ€hrend der Vorlesung prĂ€sentierten die Dozenten die Inhalte mithilfe von vorbereiteten PrĂ€sentationen. Einige Sitzungen wurden aufgezeichnet, sodass die Studenten die Möglichkeit hatten, sie zu Hause anzusehen. WĂ€hrend der Vorlesungen nutzten die Studenten Materialien auf ihren Computern, stellten Fragen, lösten Aufgaben gemeinsam und selbststĂ€ndig, manchmal auch an der Tafel. Nach den Ergebnissen der Arbeiten wurde ein Ranking fĂŒr jeden Studenten in verschiedenen FĂ€chern erstellt.

Betrachten wir die DurchfĂŒhrung des Unterrichts in jedem Fach detaillierter. Das erste Fach war lineare Algebra. Die Studenten beschĂ€ftigten sich einen Tag lang mit Vektoren und Matrizen, Systemen linearer Gleichungen usw. Die praktischen Aufgaben wurden interaktiv gestaltet: Die vorgeschlagenen Probleme wurden individuell gelöst, wĂ€hrend der Dozent und andere Studenten Kommentare und Tipps gaben.

Das zweite Fach war ElektrizitĂ€t und einfache Schaltungen. Die Studenten lernten die Grundlagen der Elektrodynamik: Spannung, Strom, Widerstand, das Ohm'sche Gesetz und die Kirchhoff'schen Gesetze. Die praktischen Aufgaben wurden teilweise im Simulator durchgefĂŒhrt oder an der Tafel gelöst, jedoch wurde mehr Zeit fĂŒr den Bau realer Schaltungen wie Logikschaltungen, Schwingkreise usw. aufgewendet.

Das nĂ€chste Thema ist die Architektur der Computer, die in gewisser Weise eine BrĂŒcke zwischen Physik und Programmierung schlĂ€gt. Die Studenten erlernten die grundlegenden Konzepte, deren Bedeutung eher theoretisch als praktisch ist. Im Rahmen der Praxis entwarfen die Studenten eigenstĂ€ndig arithmetisch-logische Schaltungen im Simulator und erhielten Punkte fĂŒr die erledigten Aufgaben.
Der vierte Tag â der erste Tag des Programmierens. Als Programmiersprache wurde Python 2 gewĂ€hlt, da dieser in der Programmierung unter ROS verwendet wird. Dieser Tag gestaltete sich wie folgt: Die Dozenten erklĂ€rten den Stoff, gaben Beispiele zur Lösung von Aufgaben, wĂ€hrend die Studenten am Computer saĂen und das Geschriebene des Dozenten an der Tafel oder auf der Folie wiederholten. Danach lösten die Lernenden Ă€hnliche Aufgaben selbststĂ€ndig, deren Lösungen von den Dozenten bewertet wurden.
Der fĂŒnfte Tag war ROS gewidmet: Die Teilnehmer machten sich mit der Programmierung von Robotern vertraut. Den ganzen Unterrichtstag ĂŒber saĂen die Studenten am Computer und fĂŒhrten den Programmcode aus, ĂŒber den der Dozent sprach. Sie konnten die grundlegenden Einheiten von ROS selbststĂ€ndig starten und lernten auch das Projekt Duckietown kennen. Am Ende dieses Tages waren die Studenten bereit, mit dem praktischen Teil der Schule â der Lösung von praktischen Aufgaben â zu beginnen.

Beschreibung der ausgewÀhlten Projekte
Den Studenten wurde vorgeschlagen, sich in Teams von drei Personen zusammenzufinden und ein Projektthema auszuwÀhlen. Am Ende wurden folgende Projekte akzeptiert:
1. Farbkallibrierung. Der Duckiebot benötigt eine Kalibrierung der Kamera bei wechselnden Lichtbedingungen, daher gibt es die Aufgabe der automatischen Kalibrierung. Das Problem ist, dass die Farbwerte sehr empfindlich auf die Beleuchtung reagieren. Die Teilnehmer entwickelten ein Werkzeug, das die erforderlichen Farben (rot, weiĂ und gelb) im Bild erkennt und Farbbereiche fĂŒr jede Farbe im HSV-Format erstellt.
2. Duck Taxi. Die Idee dieses Projekts ist, dass der Duckiebot an einem bestimmten Objekt anhalten, es aufnehmen und einem bestimmten Kurs folgen kann. Als Objekt wurde eine auffÀllige gelbe Ente ausgewÀhlt.

3. Erstellung eines StraĂennetzwerks. Die Aufgabe besteht darin, ein StraĂennetz und Kreuzungen zu erstellen. Ziel dieses Projekts ist es, ein StraĂennetz zu bauen, ohne Vorabdaten ĂŒber die Umgebung fĂŒr den Duckiebot bereitzustellen, und sich lediglich auf die Daten der Kamera zu stĂŒtzen.
4. Polizeiauto. Dieses Projekt wurde von den Studenten selbst entwickelt. Sie schlugen vor, einen Duckiebot, den "Polizisten", zu trainieren, um einen anderen â den "ĂbeltĂ€ter" â zu verfolgen. Dazu wurde ein Zielerkennungssystem mit einem ArUco-Marker verwendet. Sobald die Erkennung abgeschlossen ist, wird dem "ĂbeltĂ€ter" ein Signal gesendet, dass die Arbeit beendet ist.

Farbkalibrierung
Ziel des Projekts Color Calibration war die Anpassung des Spektrums der erkennbaren Farben der Markierung an die neuen LichtverhĂ€ltnisse. Ohne solche Anpassungen wurde die Erkennung von Haltelinien, Fahrbahnmarkierungen und StraĂenrĂ€ndern ungenau. Die Teilnehmer schlugen eine Lösung vor, die auf der Vorverarbeitung von Farbvorlagen beruhte: rot, gelb und weiĂ.
FĂŒr jede dieser Farben wurde ein vorher festgelegter Bereich von HSV- oder RGB-Werten definiert. Mithilfe dieses Bereichs werden auf dem Bild alle Bereiche gesucht, die geeignete Farben enthalten, und aus diesen wird der gröĂte ausgewĂ€hlt. Dieser Bereich wird als die Farbe akzeptiert, die gespeichert werden muss. AnschlieĂend werden statistische Formeln wie die Berechnung des Mittelwerts und der Standardabweichung verwendet, um den neuen Farbbereich zu bewerten.
Dieser Bereich wird in die Konfigurationsdateien der Kamera des Duckiebots geschrieben und kann spĂ€ter verwendet werden. Der beschriebene Ansatz wurde auf alle drei Farben angewendet, wodurch letztendlich Bereiche fĂŒr jede der Markierungsfarben gebildet wurden.
Die Tests zeigten nahezu perfekte Erkennung von Markierungslinien, es sei denn, es wurden glĂ€nzende BĂ€nder als Markierungsmaterial verwendet, die Lichtquellen so stark reflektierten, dass die Markierung aus dem Blickwinkel der Kamera weiĂ erschien, unabhĂ€ngig von ihrer ursprĂŒnglichen Farbe.

Duck Taxi
Das Projekt Duck Taxi sah die Entwicklung eines Algorithmus vor, um im Stadtgebiet eine Passagierente zu finden und sie dann an den gewĂŒnschten Ort zu transportieren. Die Teilnehmer unterteilten diese Aufgabe in zwei: Erkennung und Navigation im Graphen.
Die Studenten fĂŒhrten die Erkennung der Ente durch, wobei sie davon ausgingen, dass eine Ente als jeder Bereich im Bild verstanden wird, der als gelb mit einem roten Dreieck (Schnabel) darauf erkannt werden kann. Sobald ein solcher Bereich im nĂ€chsten Bild entdeckt wird, sollte der Roboter sich ihm nĂ€hern und dann einige Sekunden anhalten, um die Landung des Passagiers zu simulieren.
AnschlieĂend, mit dem im Vorfeld in den Speicher eingegebenen StraĂennetz von Duckietown und der Position des Roboters sowie dem vorgestellten Zielpunkt, setzen die Teilnehmer den Dijkstra-Algorithmus ein, um den Weg vom Start- zum Zielpunkt im Graphen zu finden. Die Ausgaben werden in Form einer Reihe von Anweisungen in Form von AbbiegevorgĂ€ngen an jeder der folgenden Kreuzungen prĂ€sentiert.

Graph der StraĂen
Ziel dieses Projekts war der Aufbau eines Graphen â eines StraĂennetzes in Duckietown. Die Knoten des resultierenden Graphen sind die Kreuzungen, und die Kanten sind die StraĂen. DafĂŒr muss der Duckiebot die Stadt erkunden und seine Route analysieren.
Im Laufe der Arbeit an dem Projekt wurde die Idee, einen gewichteten Graphen zu erstellen, bei dem die Kosten der Kante durch die Entfernung (und die benötigte Zeit dafĂŒr) zwischen den Kreuzungen bestimmt werden, zwar in Betracht gezogen, jedoch spĂ€ter verworfen. Die Umsetzung dieser Idee stellte sich als zu aufwendig heraus, und es wĂ€re nicht genug Zeit dafĂŒr im Rahmen der Schulung geblieben.
Wenn der Duckiebot eine Kreuzung erreicht, wĂ€hlt er die StraĂe, die von dieser Kreuzung ausgeht, und auf der er noch nicht gefahren ist. Sobald alle StraĂen an allen Kreuzungen befahren wurden, bleibt in den Speicher des Bots eine gebildete Nachbarschaftsliste der Kreuzungen zurĂŒck, die mithilfe der Bibliothek Graphviz in ein Bild umgewandelt wird.
Der von den Teilnehmern vorgeschlagene Algorithmus eignet sich nicht fĂŒr beliebiges Duckietown, funktionierte jedoch gut in einer kleinen Stadt mit vier Kreuzungen, die im Rahmen der Schulung verwendet wurde. Die Idee war, jede Kreuzung mit einem ArUco-Marker auszustatten, der die ID der Kreuzung enthĂ€lt, um die Reihenfolge der Durchfahrt zu verfolgen.
Das Funktionsschema des von den Teilnehmern entwickelten Algorithmus ist in der Abbildung dargestellt.

Patrouillenwagen
Ziel dieses Projekts ist es, den Bot, der gegen die Regeln verstöĂt, in der Stadt Duckietown zu finden, zu verfolgen und festzunehmen. Der Patrouillenbot soll dem Ă€uĂeren StraĂenneingang der Stadt folgen, um nach dem zuvor bekannten Regelbrecher-Bot zu suchen. Nach der Entdeckung des Regelbrechers muss der Patrouillenbot ihm folgen und ihn zum Anhalten bringen.
Die Arbeit begann mit der Suche nach einer Idee zur Erkennung eines Bots im Bild und dessen Identifizierung als ĂbeltĂ€ter. Das Team schlug vor, jeden Bot in der Stadt von hinten mit einem einzigartigen Marker auszustatten â Ă€hnlich, wie echte Fahrzeuge auĂerhalb mit Kennzeichen ausgestattet sind. DafĂŒr wurden ArUco-Marker gewĂ€hlt. Diese wurden bereits zuvor in Duckietown verwendet, da sie einfach zu verwenden sind und die Orientierung des Markers im Raum und die Entfernung zu ihm bestimmen können.
Als NĂ€chstes war es erforderlich, sicherzustellen, dass der Patrolbot strikt auf dem Ă€uĂeren Kreis ohne Stopps an Kreuzungen fĂ€hrt. StandardmĂ€Ăig bewegt sich der Duckiebot in der Spur und stoppt an der Stopplinie. Dann bestimmt er mithilfe von Verkehrszeichen die Konfiguration der Kreuzung und trifft eine Entscheidung ĂŒber die Durchfahrt der Kreuzung. FĂŒr jede der beschriebenen Phasen ist ein Zustand des Zustandautomaten des Roboters verantwortlich. Um die Stopps an der Kreuzung zu vermeiden, hat das Team den Zustandautomaten so geĂ€ndert, dass der Bot beim AnnĂ€hern an die Stopplinie sofort in den Zustand der Durchfahrt ĂŒbergeht.
Der nĂ€chste Schritt bestand darin, das Problem des Stopps des regelwidrigen Bots zu lösen. Das Team stellte die Annahme auf, dass der Patrouillenbot ĂŒber SSH auf jeden Bot in der Stadt zugreifen kann, das heiĂt, er hat einige Informationen darĂŒber, welche Authentifizierungsdaten und welche ID jeder Bot hat. Somit begann der Patrouillenbot, sich nach der Entdeckung des Regelbrechers via SSH mit dem regelwidrigen Bot zu verbinden und dessen System abzuschalten.
Nachdem bestĂ€tigt wurde, dass der Abschaltsbefehl ausgefĂŒhrt wurde, hielt auch der Patrouillenbot an.
Der Arbeitsalgorithmus des Patrouillenrobots lÀsst sich in der folgenden Grafik darstellen:

Arbeiten an Projekten
Die Arbeit wurde in einem Format organisiert, das dem Scrum-Ă€hnlich war: Jeden Morgen planten die Studenten die Aufgaben fĂŒr den aktuellen Tag und berichteten am Abend ĂŒber ihre geleistete Arbeit.
An den ersten und letzten Tagen bereiteten die Studenten PrĂ€sentationen vor, die das gesetzte Ziel und die LösungsansĂ€tze beschrieben. Um den Studenten zu helfen, ihren gewĂ€hlten PlĂ€nen zu folgen, waren in den RĂ€umen, in denen an Projekten gearbeitet wurde, stĂ€ndig Dozenten aus Russland und Amerika anwesend, die Fragen beantworteten. Die Kommunikation fand ĂŒberwiegend auf Englisch statt.
Ergebnisse und deren PrÀsentation
Die Arbeit an den Projekten dauerte eine Woche, nach deren Ablauf die Studenten ihre Ergebnisse prĂ€sentierten. Alle bereiteten PrĂ€sentationen vor, in denen sie darĂŒber berichteten, was sie in dieser Schule gelernt haben, welche wichtigen Lektionen sie mitgenommen haben, was ihnen gefallen oder nicht gefallen hat. Danach stellte jedes Team sein Projekt vor. Alle Teams haben die gestellten Aufgaben erfolgreich erfĂŒllt.
Das Team, das fĂŒr die Kalibrierung von Farben zustĂ€ndig ist, hat das Projekt schneller als die anderen abgeschlossen, daher konnten sie auch die Dokumentation fĂŒr ihr Programm vorbereiten. Das Team, das sich mit dem Grafen der StraĂen beschĂ€ftigt hat, versuchte sogar am letzten Tag vor der Projektdemonstration, seine Algorithmen zu ĂŒberarbeiten und zu verbessern.

Fazit
Nach dem Ende der Schule baten wir die SchĂŒler, die vergangenen AktivitĂ€ten zu bewerten und Fragen dazu zu beantworten, inwieweit die Schule ihren Erwartungen entsprach, welche FĂ€higkeiten sie erworben haben usw. Alle SchĂŒler bemerkten, dass sie gelernt hatten, im Team zu arbeiten, Aufgaben zu verteilen und ihre Zeit zu planen.
Die Studenten wurden auch gebeten, die NĂŒtzlichkeit und KomplexitĂ€t der absolvierten Kurse zu bewerten. Dabei bildeten sich zwei Bewertungsgruppen: fĂŒr die einen waren die Kurse nicht besonders herausfordernd, wĂ€hrend andere sie als extrem schwierig einschĂ€tzten.
Das bedeutet, dass die Schule die richtige Position eingenommen hat, indem sie sowohl fĂŒr AnfĂ€nger in einem bestimmten Bereich zugĂ€nglich bleibt, als auch Materialien zum Wiederholen und Festigen fĂŒr erfahrene Studenten bereitstellt. Es sollte angemerkt werden, dass der Kurs ĂŒber Programmierung (Python) von fast allen als einfach, jedoch nĂŒtzlich eingestuft wurde. Am schwierigsten erschien den Studenten der Kurs âComputerarchitekturâ.
Als die Studenten nach den Vor- und Nachteilen der Schule gefragt wurden, antworteten viele, dass ihnen der gewÀhlte Lehrstil gefiel, bei dem die Lehrer schnell und individuell Hilfe leisteten und Fragen beantworteten.
Die SchĂŒler hoben auch hervor, dass sie es mochten, im Rahmen ihrer tĂ€glichen Aufgabenplanung zu arbeiten und selbst Fristen festzulegen. Als Nachteil merkten die Studenten einen Mangel an Wissen an, das bei der Arbeit mit dem Bot benötigt wurde: beim Anschluss, VerstĂ€ndnis der Grundlagen und Prinzipien seiner Funktionsweise.
Fast alle Studenten stellten fest, dass die Schule ihre Erwartungen ĂŒbertroffen hat, und das spricht fĂŒr die richtig gewĂ€hlte Richtung der Organisation der Schule. So sollten die allgemeinen Grundlagen bei der Organisation der nĂ€chsten Schule beibehalten werden, wobei die von den Studenten und Lehrern genannten MĂ€ngel berĂŒcksichtigt und wenn möglich beseitigt werden sollten, möglicherweise durch Ănderung des Kursangebots oder der Unterrichtszeiten.
Autoren des Artikels: das Team in
P.S. Unserem Unternehmensblog wurde ein neuer Name gegeben. Er wird jetzt den Bildungsprojekten der Firma JetBrains gewidmet sein.
Quelle: habr.com
