Newsletters

  • Vertrieb kontaktieren

Einsatz von MATLAB in Programmierkursen an der Boston University

Von Dr. Stormy Attaway, Boston University

Seit zwanzig Jahren gibt es an der Boston University den Kurs Introduction to Engineering Computation. Er ist seitdem mit verschiedenen Sprachen wie Pascal, Fortran, C und C++ unterrichtet worden, im Kern aber lange unverändert geblieben. Vor kurzem hat jedoch eine Arbeitsgruppe der ingenieurtechnischen Fakultät die Ziele des Kurses neu überdacht.

Den Anstoß dazu gaben Mitglieder des Fachbereichs für Elektrotechnik und Informatik, die im Fakultätsrat den Vorschlag einbrachten, allen Studenten die Grundlagen der Programmierung mit MATLAB® zu vermitteln, weil sie dadurch in den Aufbaukursen und ihrem weiteren Studium MATLAB effektiv einsetzen könnten.

bu_collage.jpg

Von links nach rechts und von oben nach unten: Dr. Attaway in einer Vorlesung über for-Schleifen; Studenten präsentieren ihr Projekt zur Sammlung von Windturbinendaten; eine Studentin löst ein MATLAB-Problem an der Tafel; das Lehrbuch zum Kurs; eines der technischen Lehrgebäude der BU; Studenten arbeiten mit Dr. Attaway im Labor.

Etliche Fakultätsmitglieder sträubten sich anfangs gegen diesen Vorschlag, weil sie glaubten, dass es hier um eine Entscheidung zwischen MATLAB oder einer Einführung in die Programmierung ging – ihnen war nicht bewusst, dass MATLAB sehr wohl alle für die Lehre erforderlichen Programmier-Konstrukte mitbringt.

Auf den ersten Blick könnte man meinen, dass ein Student der Biomedizintechnik lediglich wissen muss, wie er mit MATLAB effizient arbeitet, während ein Student der Technischen Informatik nur Programmierkonzepte beherrschen muss. In den heutigen Ingenieurwissenschaften ist aber beides unverzichtbar. Ein anderer Gesichtspunkt war, dass Studenten, die eine Low-Level Programmiersprache wie C++ oder Java™ vor MATLAB erlernen, später MATLAB – zumindest anfangs – nur wenig effizient einsetzen. Statt etwa Methoden zur Code-Vektorisierung und die vielen mächtigen in MATLAB integrierten Funktionen zu nutzen, arbeiten sie weiterhin mit for-Schleifen und anderen Low-Level-Konstrukten. Das dauert nicht nur länger, die erzielten Lösungen sind in der Regel auch nicht leistungsoptimiert

Aus diesen Gründen wurde beschlossen, in ENG EK127: Introduction to Engineering Computation erstmalig auf Basis von MATLAB sowohl Konzepte der Programmierung als auch die eingebauten Funktionen nebeneinander zu unterrichten. Jedes Semester mit etwa 200 Ingenieursstudenten aus allen Disziplinen lernt jetzt, wie man mit Variablen, Datenstrukturen, Schleifen, Bedingungen, Funktionen, Input und Output und anderen Programmier-Konzepten in MATLAB arbeitet und wie man mit MATLAB technische Probleme effizient löst.

Direkt loslegen

Eine der größten Hürden beim Unterrichten mit C++ war, den Studenten einen geeigneten Einstieg zu geben. Sie bekamen dazu ein zweiseitiges, eng bedrucktes Papier in die Hand, das ihnen erklärte, wie man den passenden Code-Editor öffnet und Eingaben macht. Allein die Einrichtung der Programmierumgebung nahm eine ganze Unterrichtseinheit in Anspruch.

In MATLAB dagegen können die Studenten sofort sinnvoll arbeiten. Sie geben im Command Window Befehle ein und sehen sofort, was diese bewirken. Es gibt überhaupt keine Berührungsängste. Für einen Anfänger in der Programmierung ist das viel einfacher – und motivierender – als der in anderen Sprachen immer wieder zu durchlaufende Zyklus aus editieren, kompilieren, ausführen und debuggen.

Statt in der ersten Stunde nur darüber zu reden, wie man die Entwicklungsumgebung bedient, können dort jetzt Zuweisungsbefehle, Variablen, Ausdrücke, Operatoren, Abarbeitungsreihenfolgen und Vektoren behandelt werden.

Eine zusätzliche Motivation für die Studenten stellt das Kennenlernen neuer Visualisierungsmöglichkeiten für ihre Ergebnisse dar. MATLAB-Diagramme werden darum schon zu Beginn des Semesters eingeführt. Es ist viel interessanter, Grafiken und Diagramme mit for-Schleifen zu erzeugen, als damit wiederholt Zeichenketten auszugeben.

Kursstruktur

Der Kurs basiert auf dem Buch der Autorin dieses Artikels MATLAB: A Practical Introduction to Programming and Problem Solving. Er besteht aus zwei einstündigen Vorlesungen pro Woche, auf die jeweils eineinhalb Stunden im Computerlabor folgen. Am Ende jeder Woche trifft man sich eine Stunde lang zu einer informellen Diskussion, in der offen gebliebene Fragen diskutiert werden können.

Die Vorlesungen laufen so ab, dass für etwa fünf bis zehn Minuten ein Sachverhalt vorgestellt und ein Beispiel mit MATLAB gegeben wird, und anschließend die Studenten ein Problem zum Bearbeiten bekommen. Zu Anfang wurden die Vorlesungen noch im Computerlabor abgehalten und die Studenten arbeiteten direkt in MATLAB. Dabei hat sich aber gezeigt, dass sie mehr lernen, wenn sie ein Problem zuerst mit Stift und Papier durchdenken und nicht sofort in Code umsetzen. (Aus dem gleichen Grund werden Tests schriftlich im Frage-und-Antwort-Format gestellt und nicht in MATLAB.) Nach jeder Vorlesung werden dann im Labor anspruchsvollere Probleme mit MATLAB gelöst. Die Studenten erhalten so Gelegenheit, die gerade erlernten abstrakten Konzepte direkt anzuwenden.

In Zweier- oder Dreiergruppen bearbeiten die Studenten im Kursverlauf drei Projekte, die komplexer sind als die Laborübungen. Sie sollen einen Eindruck davon vermitteln, wie MATLAB in verschiedenen Disziplinen zur Lösung realer Problemstellungen eingesetzt wird. Normalerweise stammt in jedem Semester jeweils ein Projekt aus jedem der angegliederten Fachbereiche. Aktuelle Projekte waren beispielsweise die Dekodierung einer Textnachricht aus einem Audio-File, die Bildverarbeitung im Rahmen der Qualitätssicherung von Turbinenschaufeln, die Erkennung von Unterschieden in Bildern, die Fingerabdruckerkennung, Finite Differenzen bei der Wärmeübertragung und die elastische Streuspektroskopie in der Krebserkennung.

Über grundlegende Programmierkonzepte hinaus

MATLAB ist für die Studenten so leicht zu bedienen und zu erlernen, dass damit alle grundlegenden programmiertechnischen Konzepte behandelt werden können, die zuvor mit anderen Plattformen gelehrt wurden. Darüber hinaus lassen sich aber auch viele mathematische Konzepte und Problemlösungshilfen einführen wie etwa Lineare Algebra, Kurvenanpassungen und statistische Analysen.

MATLAB hat außerdem neue Lehransätze ermöglicht. In einem Sommerkurs wurden beispielsweise Roboter mit MATLAB und dem LEGO® MINDSTORMS® NXT-System gebaut und für die Navigation durch einen Hindernisparcours programmiert. In einem neueren Projekt wurde ein Windkraftanlagen-Modell in einem Windkanal aufgebaut und MATLAB eingesetzt, um Daten zu erfassen und zu analysieren, Kurven anzupassen, die erzeugte Energie zu berechnen und Simulationen durchzuführen.

Positives Echo

In offenen Treffen mit Studenten im ersten und zweiten Jahr, die den MATLAB-basierten Kurs als Anfänger belegt hatten, betonten diese immer wieder, wie zufrieden sie waren, schon im ersten Studienjahr den Umgang mit MATLAB erlernt zu haben. Auch aus den technischen Fakultäten gab es nur positive Rückmeldungen über den Kurs. Die Autorin arbeitet derzeit mit mehreren Professoren zusammen an einer noch weiter gehenden Integration von MATLAB in die ingenieurtechnischen Lehrpläne. Es soll beispielsweise künftig noch mehr in Kursen für Lineare Algebra und technische Mechanik eingesetzt werden.

Lediglich von einigen fortgeschritteneren Studenten, die noch die C++-Version des Kurses belegt hatten, gab es Klagen. Sie wünschten sich, ebenfalls die Gelegenheit zum Erlernen von MATLAB gehabt zu haben (die ihnen daraufhin in Form von Samstags-Tutorien gegeben wurde, welche äußerst regen Zuspruch fanden).

Beim Unterrichten programmiertechnischer Konzepte mit MATLAB haben sich einige Vorteile erwiesen, die die Initiatoren vorausgesehen haben, aber auch einige, die darüber hinausgehen. So war erwartet worden, dass die visuelle, interaktive MATLAB-Umgebung die Studenten motivieren und ihnen das Erlernen neuer Konzepte erleichtern würde. Dabei stellte sich heraus, dass MATLAB zusätzlich auch ein tieferes Verständnis dieser Konzepte vermittelt. Studenten haben etwa häufig Probleme, das Prinzip verschachtelter Schleifen zu verstehen. Bei der Behandlung von Matrizen-Operationen wird ihnen durch das schrittweise Durchgehen von MATLAB-Files vorgeführt, wie diese in MATLAB implementiert sind. Die Studenten begreifen, wie und warum verschachtelte Schleifen eigentlich funktionieren. Viele sind überrascht, wie simpel ein zunächst schwierig erscheinendes Konzept plötzlich für sie ist.

Dozenten neigen oft zu der falschen Annahme, dass das Unterrichten von Informatik-Kursen mit MATLAB automatisch bedeutet, dass die programmiertechnischen Konzepte an den Rand gedrängt werden. Das stimmt keinesfalls. An der Boston University wurde gezeigt, dass man Programmierfertigkeiten, effizientes Programmieren und grundlegende Problemlösungsstrategien gemeinsam vermitteln kann – alles in der anwenderfreundlichen MATLAB-Umgebung.

Über die Autorin

Dr. Stormy Attaway is an Assistant Professor and Director of Curricular Assessment and Improvement in the College of Engineering at Boston University. Dr. Attaway holds a B.S. in geology from the University of South Carolina and an M.S. in computer science and an interdisciplinary Ph.D. in computer science, applied math, and engineering from Boston University. She is the author of the widely used textbook MATLAB: A Practical Introduction to Programming and Problem Solving.

Veröffentlicht 2010 - 91847v00

Receive the latest MATLAB and Simulink technical articles.

Related Resources

Latest Blogs