Thema der Unterrichtseinheit: Sortieralgorithmus Bubblesort (Sortieren durch Vertauschen)

Ähnliche Dokumente
Einführung in die Informatik I Kapitel II.3: Sortieren

Elementare Sortierverfahren

STUDIENSEMINAR FÜR LEHRÄMTER

Konzepte der Informatik

Grundlagen der Informatik

Gruppenunterricht zum Thema: Sortierverfahren. Berufsschule / Gymnasium

(08 - Einfache Sortierverfahren)

Vom Leichtesten zum Schwersten Sortieralgorithmen

Programmierung mit C Algorithmen

In diesr Schachtel befindet sich ein Zettel, auf dem ein Wert oder eine Zeichenfolge stehen kann, z.b. 5.

Bubblesort. Leitprogrammartige Unterrichtsunterlagen von Lucia Keller

7. Sortieren Lernziele. 7. Sortieren

Algorithmen und Datenstrukturen 1

BUBBLE SORT. Können wir die gefundenen Algorithmen auch auf Listen mit mehr als drei Elementen ausdehnen?

Grundlagen der Programmierung

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

Interne Sortierverfahren

Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 9. Sortieren

Sortieren. Eine Testmenge erstellen

Die Formel für die Standardabweichung lautet (ohne die Wurzel haben wir die Varianz):

Grundlegende Sortieralgorithmen

Grundlegende Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Folge 13 - Quicksort

Humboldt-Universität zu Berlin Institut Für Informatik. Suchen und Sortieren. Unterrichtsentwurf

Sortierverfahren für Felder (Listen)

JAVA - Suchen - Sortieren

Prof. Dr. Margarita Esponda

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Algorithmen und Datenstrukturen

Datenstrukturen. Sortieralgorithmen. am Beispiel Java. c Y. Pfeifer. (Mai 2013)

5 Sortieren in eindimensionalen Zellularautomaten

Algorithmen und Datenstrukturen

Übung Datenstrukturen. Sortieren

Leitprogramm Bubblesort

Datenstrukturen und Algorithmen

Übung: Algorithmen und Datenstrukturen SS 2007

Programmiertechnik II

Arrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss

Vorkurs Informatik SoSe 15 Algorithmen 1

Sortieren durch Einfügen

Tutoraufgabe 1 (Sortieralgorithmus):

Transskript zur Lektion 8.3 Code Riffs

Teil III: Evaluationstest

Sortierverfahren. Sortierverfahren für eindimensionale Arrays

Natürliche Zahlen, Summen und Summenformeln

Kapitel 1 Einleitung. Definition: Algorithmus nach M. Broy: aus: Informatik: Eine grundlegende Einführung, Band 1, Springer-Verlag, Berlin

Ausgewählte Algorithmen: Sortieren von Listen

Unterrichtsverlauf zu: UE Statische Investitionsrechnung, 6 Std., Jahrgangsstufe 1, Betriebswirtschaftslehre, Berufliches Gymnasium

Teil IV: Erprobungsbericht

Algorithms & Data Structures 2

Allgemeine Hinweise: TECHNISCHE UNIVERSITÄT MÜNCHEN. Name Vorname Studiengang Matrikelnummer. Hörsaal Reihe Sitzplatz Unterschrift

Algorithmen und Datenstrukturen

Algorithmen vergleichen: Suchen und Sortieren

Einführung in die Informatik Algorithmen und Datenstrukturen. Thema 17 Sortieren

Inhalt. 3. Spezielle Algorithmen

Spielerische Erarbeitungen der Zusammenhänge von Graphen und Funktionsgleichungen

Unterrichtsinhalt (Lehrer- und Schüleraktivitäten) Arbeitsform und Methoden. Zeit, U- Phase 1. Std. Angestrebte Kompetenzen/Ziele

Kap 7. Funktionen und Arrays

Krawatterätsel - Verbesserung der oberen Schranke

Planung der Unterrichtseinheit Die Farben in der Natur und die Farben der Gefühle

Sortieralgorithmen. Vorlesung Algorithmen und Datenstrukturen 2. Prof. Dr. W. P. Kowalk Universität Oldenburg

Das Studium an der Abteilung Informatik setzt Programmierkenntnisse voraus.

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

FD Informatik Mauch SSDL (WHRS) Reutlingen. Algorithmen

Sortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block

Unterrichtsentwurf. (Unterrichtsbesuch im Fach Informatik) Entwicklung eines eigenen Algorithmus zur alphabetischen Sortierung einer Namensliste

3. Unterrichtseinheit zum Thema Schwimmen und Sinken: Das Schwimmen eines Schiffes durch Verdrängung und Auftrieb erklären

Algorithmen und Datenstrukturen Heapsort

Das Schiffe versenken - Suchalgorithmen

Programmieren I. Modulbezeichnung Programmieren I Modulverantwortliche(r) Müller

Einführung in die Integralrechnung

Einführung in die Informatik I (autip)

Tutoraufgabe 1 (Hoare-Kalkül):

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Erzähltexte richtig aufbauen und sprachlich treffend gestalten

Suchen und Sortieren

1. Grundlagen Sortieren Vertauschen Selektion Einfügen Quicksort Suchen...

Algorithmen I. Tutorium 1-3. Sitzung. Dennis Felsing

Dynamisches Huffman-Verfahren

< Konzepte & Grundlagen der Programmierung />

Wie funktioniert das Sortieren einer Reihe von Zufallszahlen mit Quicksort?

Sortieralgorithmen. Selection Sort

Pro Informatik 2009: Objektorientierte Programmierung Tag 18. Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik

Übungsblatt 1. f(n) = f(n) = O(g(n)) g(n) = O(f(n)) Zeigen oder widerlegen Sie: 3 n = Θ(2 n ) Aufgabe 1.2 Gegeben sei die folgende Funktion:

Übungsaufgaben: 1. Objektorientierte Programmierung - Teil 1

Abschnitt 19: Sortierverfahren

Algorithmen und Datenstrukturen 12

Einführung in die Informatik I Kapitel II.1: Suchen

2. Algorithmenbegriff

Kapitel 2: Programmfluss steuern

2 Sortieren. Beispiel: Es seien n = 8 und a = i : a i : ϕ(i) : a ϕ(i) :

Unterrichtsstunde Mathematik: Die Fläche zwischen zwei Funktionsgraphen

Grundsätze der Leistungsbewertung. im Fach Physik

MatheBuch. Was zeichnet MatheBuch aus? Leitfaden. Übersichtlicher Aufbau. Schülergerechte Sprache. Innere Differenzierung. Zeitgemäße Arbeitsformen

Einschub: Anweisungen und Bedingungen für PAP und Struktogramme (1)

Algorithmen und Datenstrukturen. Kapitel 3: Sortierverfahren. Skript zur Vorlesung. Algorithmen und Datenstrukturen

Exemplarischer Leitfaden zur Unterrichtsplanung

Stundenbild Modell 01

Einführung in Optimierungsprobleme

Transkript:

Lehrprobenentwurf Vorgelegt von: Guido Breuer Datum: 18. April 2005 Zeit: 9.20 10.10 Uhr Schule: Robert-Schuman-Institut Eupen Klasse: 5. Jahr technische Befähigung, Industrie-Elektronik / Industrie-Informatik Klassenlehrer: Johannes Ernst Einordnung des Themas Vorangegangenes Thema: Kontrollstrukturen und Datenfelder in der Programmiersprache C Thema der Unterrichtseinheit: Sortieralgorithmus Bubblesort (Sortieren durch Vertauschen) Nachfolgendes Thema: Realisierung des Sortieralgorithmus Bubblesort (Sortieren durch Vertauschen) in der Programmiersprache C Wert des Themas Die rechtliche Grundlage liegt im Lehrplan, der das Thema Programmiersprache vorsieht. In der Industrieinformatik ist die Kenntnis einer Programmiersprache unabdingbar. Hier bietet sich besonders die Programmiersprache C an, da hier der Umfang der Sprachelemente gering ist. Darüber hinaus bietet C eine gute Portabilität bei gleichzeitiger Systemnähe. Das Sortieren von Datensätzen ist in der Informatik von großer Bedeutung. Zum Beispiel lässt sich ein bestimmter Datensatz in einer Liste effektiver suchen, wenn die Liste sortiert ist. Untersuchungen von Computerherstellern und nutzern zeigen seit vielen Jahren, dass mehr als ein Viertel der kommerziell verbrauchten Rechenzeit auf Sortiervorgänge entfällt. Dies zeigt, dass Sortieralgorithmen von großer Wichtigkeit sind. Bubblesort ist ein elementares Sortierverfahren, bei dem solange zwei jeweils benachbarte Elemente eines Datenfeldes vertauscht werden, bis keine Vertauschungen mehr nötig sind, das Datenfeld also sortiert ist. Bubblesort ist zwar kein effektiver Sortieralgorithmus, zeichnet sich aber durch seine Einfachheit aus. Somit ist er zur Einführung in das Thema Algorithmen im Allgemeinen und in das Thema Suchalgorithmen im Besondern sehr gut geeignet. Klassenanalyse Bei der Klasse handelt es sich um das 5. Jahr technische Befähigung, Abteilung Industrie- Elektronik / Industrie-Informatik. Die Klasse besteht aus vier Schülern, von denen zwei das 5. Jahr wiederholen. Einer der Wiederholer hat sich mittlerweile zu einem guten Schüler im Fach Industrie-Informatik entwickelt. Von den beiden anderen Schülern hat einer deutliche Schwierigkeiten. Die Klasse kann folglich nicht als homogen angesehen werden. Die Schüler verfügten zu Beginn des C-Kurses über keine Kenntnisse der Programmiersprache C und der Algorithmen. 1

Unterrichtsziele Kognitives Lernziel: Die Schüler sollen die Notwendigkeit von Sortieralgorithmen erkennen und den Sortieralgorithmus Bubblesort (Sortieren durch Vertauschen) erklären können. Darüber hinaus wird das für die Programmierung unerlässliche analytische Denken, also das Ziehen und Umsetzen eigener Schlüsse aus beobachteten Sachverhalten, geübt. Affektives Lernziel: Die Schüler sollen die Fertigkeit verbessern, saubere und übersichtliche Flussdiagramme zu zeichnen. Darüber hinaus sollen die Schüler lernen, Zusammenarbeit und gegenseitige Hilfe zu wertschätzen. Überprüfung der Lernziele Das kognitive Ziel gilt als erreicht, wenn der überwiegende Teil der Schüler das Flussdiagramm für den Sortieralgorithmus Bubblesort (Sortieren durch Vertauschen) zeichnen und den Sortieralgorithmus anhand dieses Flussdiagramms und eines Zahlenbeispiels erklären kann. Im Mindestanspruch gilt das kognitive Ziel als erreicht, wenn die Schüler die Notwendigkeit von Sortieralgorithmen erkannt haben. Das affektive Ziel gilt als erreicht, wenn die Flussdiagramme sauber und übersichtlich gezeichnet sind. 2

Ablaufplan für den Unterricht Beginn der Stunde: Begrüßung. Den Schülern wird die Anwesenheit des Prüfungsausschusses erläutert. Hinführung: Lehrervortrag 1 min Die Notwendigkeit das Sortieren von Daten wird an einem Praxisbeispiel erläutert. Schüler Schüler Lehrergespräch, Lexikon 4 min Das Thema der Stunde wird vorgestellt. Dabei werden die Begriffe Algorithmus und Sortieralgorithmus erläutert. Lehrervortrag 2 min Erarbeitung: Es wird gemeinsam sprachlich der Sortieralgorithmus Bubblesort entwickelt. fragend entwickelnd Karten als Datenmodell, Tafel Arbeitsblatt 20 min Das Flussdiagramm des Sortieralgorithmus Bubblesort wird von den Schülern entworfen. Partnerarbeit Lehrer steht zur Hilfestellung bereit Arbeitsblatt 15 min Erfolgskontrolle: Die von den Schülern entworfenen Flussdiagramme werden verglichen und besprochen. Die Flussdiagramme sollen von den Schülern präsentiert werden Schüler Schüler Lehrergespräch Arbeitsblatt Tafel 7 min Ende der Stunde: Den Schülern wird das folgende Thema (Realisierung von Bubblesort in C) vorgestellt. Lehrervortrag 1 min 3

Ausführliche Beschreibung des geplanten Unterrichtsablaufs Beginn der Stunde: Die Schüler werden begrüßt. Dabei wird ihnen der Grund der Anwesenheit des Prüfungsausschusses erläutert. Dadurch soll gewährleistet werde, dass die Schüler sich durch diese Anwesenheit nicht in ihrer Arbeit beeinträchtigt fühlen. Hinführung: Den Schülern wird am Beispiel des Suchens nach einem Lexikoneintrag die Notwendigkeit von sortierten Listen und damit von Sortieralgorithmen erläutert. Dazu sollen die Schüler einen beliebigen Eintrag in einem Lexikon suchen. Die Schüler sollen erkennen, dass sich ein Lexikoneintrag schnell finden lässt, weil die Einträge in alphabetischer Reihenfolge sortiert sind. Die Schüler sollen weitere Beispiele von sortierten Listen nennen, z.b. Telefonbuch, Adressregister, Wörterbuch, Kalender usw. Die Bedeutung von sortierten Listen sollte erkannt werden. Den Schülern wird erklärt, dass es eine Reihe von mehreren Sortieralgorithmen gibt, die unterschiedlich effektiv sind. Dabei wird kurz der Algorithmenbegriff erläutert. Unter einem Algorithmus versteht man eine Verarbeitungsvorschrift, die so präzise formuliert ist, dass sie von einem mechanischen oder elektronischen Gerät (Computer) durchgeführt werden kann. Im Falle eines Sortieralgorithmus kann man auch von einem Sortierverfahren sprechen. Das Thema der Stunde (Sortieralgorithmus Bubblesort) wird an die Tafel geschrieben. Erarbeitung: Der Sortieralgorithmus Bubblesort (Sortieren durch Vertauschen) in seiner einfachsten Form soll gemeinsam erarbeitet werden. Dazu wird zunächst die Frage gestellt, wie ein Datenfeld, das aus fünf Ganzzahlwerten (Integer-Werten) besteht, sortiert werden kann, wenn man lediglich wiederholt das Vertauschen benachbarter Zahlen durchführt. Konkret: Wie kann ein Verfahren aussehen, mit dem man die Zahlen 88, 5, 6, 3, -2 aufsteigend sortiert, wenn man immer benachbarte Zahlen miteinander vertauscht? Diese Frage wird an die Tafel geschrieben. Zur Erarbeitung von Bubblesort werden zunächst Karten, auf denen die Zahlen 2, 3, 5, 6 und 88 geschrieben stehen, in einer unsortierten Reihenfolge (88, 5, 6, 3, -2) auf einen Tisch auf eine Unterlage, die das Datenfeld darstellt, gelegt. Dann wird versucht eine Vorgehensweise zu entwickeln, um die Karten in aufsteigender Reihenfolge zu sortieren. Dabei dürfen jeweils nur benachbarte Karten getauscht werden. Die Ideen der Schüler zu dieser Vorgehensweise werden gesammelt und an die Tafel geschrieben (Beispiele: Ein Element wird mit seinem Nachfolger verglichen, befinden sie sich nicht in der richtigen Reihenfolge, werden sie getauscht. Anschließend werden die nächsten Elemente verglichen usw. So wandert das größte Element an das Ende des Feldes. Dies wird solange wiederholt, bis das komplette Feld sortiert ist. Da nach jedem Durchlauf ein weiteres Element an seinem Platz steht, muss bei jedem weiteren Durchlauf immer ein Element weniger verglichen werden. Der Algorithmus wird mittels zweier verschachtelter Schleifen realisiert....). Am Ende sollte eine sprachliche Version von Bubblesort entstanden sein (Beispiel: Bubblesort besteht aus zwei verschachtelten Schleifen. Die innere Schleife bewirkt, dass das Feld aufsteigend durchlaufen wird. Ist dabei ein Element größer als sein Nachfolger, so werden sie getauscht. Am Ende dieses ersten Durchlaufs ist das größte Element an die letzte Stelle gewandert. Nun erfolgt der Durchlauf zum zweiten Mal. Auf den Vergleich mit dem letzten Element kann dabei verzichtet werden, da dies bereits das größte ist. So gelangt das zweitgrößte Element 4

an seinen Platz. Die äußere Schleife bewirkt, dass der Vorgang so oft durchgeführt wird, bis alle Elemente sortiert sind.). Die Herkunft des Namens Bubblesort wird den Schülern erläutert: Größere Elemente haben bei diesem Algorithmus die Tendenz, wie Luftblasen in Wasser langsam nach oben zu steigen. Diese Analogie hat dem Verfahren den Namen Bubblesort eingebracht (Blasen engl.: bubbles). Auf Deutsch wird auch die Bezeichnung Blasensort oder Sortieren durch Vertauschen verwendet. Auf Französisch wird die Bezeichnung Tri bulles, Tri à bulles oder Tri par bulles verwendet. Anschließend sollen die Schüler jeweils zu zweit (Partnerarbeit) ein Flussdiagramm für ein C-Programm zum Sortieren einen Datenfeldes mit fünf Integer-Werten (int zahl[5] = {88, 5, 6, 3, -2};) mittels des Sortieralgorithmus Bubblesort zeichnen. Dabei sollen die Schüler ein Arbeitsblatt nutzen, auf dem bereits die beiden Anweisungen zahl[5] = {88, 5, 6, 3, -2} und n = 5 für die Zuweisung der Zahlenwerte und der Anzahl der Werte vorhanden sind. Das Tauschen der benachbarten Zahlen kann zunächst durch eine Anweisung Tausche zahl[j] mit zahl[j+1] beschrieben werden. Der Lehrer steht bei der Erstellung der Flussdiagramme zur Hilfestellung bereit. Aufgrund der Inhomogenität der Klasse ist besonders darauf achten, dass die Schüler mit Schwierigkeiten entsprechende Hilfestellungen erhalten. Beim Zeichnen der Flussdiagramme ist darauf zu achten, dass diese deutlich und übersichtlich gezeichnet werden, da die Schüler diese anschließend den anderen Schülern präsentieren sollen. Erfolgskontrolle: Die von den Schülern gezeichneten Flussdiagramme werden miteinander verglichen und besprochen. Die Flussdiagramme sollen von den Schülern selbst erläutert werden. Dabei sind ihnen die mit einer Präsentation der eigenen Arbeit verbundenen Ängste zu nehmen. Bei der Präsentation kann es hilfreich sein, die Zwischenergebnisse des Sortierverfahrens an die Tafel zu schreiben. Ende der Stunde: Anschließend wird den Schülern erklärt, dass in der nächsten Stunde die Realisierung des Sortieralgorithmus Bubblesort in der Programmiersprache C vorgenommen wird. Sollte noch Zeit übrigbleiben, kann gemeinsam mit den Schülern die Vorgehensweise des Vertauschens zweier Datensätze (Vertauschen mittels einer Hilfsvariablen) erarbeitet werden. Möchte man den Inhalt der Variablen a mit dem Inhalt der Variablen b vertauschen, muss man wie folgt vorgehen: hilf = a; a = b; b = hilf; Völlig falsch wäre: a = b; b = a; Hier würden beide Variablen den ursprünglich in der Variablen b gespeicherten Wert beinhalten. 5

Reicht die Zeit hierzu nicht mehr, muss das Vertauschen zweier Daten mittels einer Hilfsvariable in der nächsten Stunde vor dem Realisieren von Bubblesort in der Programmiersprache C erläutert werden. Anhang Auf den nächsten Seiten sind die Arbeitsblätter, das Tafelbild und ein Beispiel für ein Flussdiagramm für ein C-Programm des Sortieralgorithmus Bubblesort dargestellt. 6