Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
info:sek1:algorithmierung [2020/04/17 10:07]
schultz
info:sek1:algorithmierung [2020/04/17 12:09] (aktuell)
schultz
Zeile 1: Zeile 1:
 {{tag>​Algorithmierung Algorithmus Struktogramm Programmablaufplan PAP}} {{tag>​Algorithmierung Algorithmus Struktogramm Programmablaufplan PAP}}
-====== Algorithmierung: Einstieg ​======+====== Algorithmierung======
 <​progress><​bar value="​1"​ type="​success"></​bar></​progress>​ <​progress><​bar value="​1"​ type="​success"></​bar></​progress>​
 <nav type="​pills"​ justified="​true">​ <nav type="​pills"​ justified="​true">​
Zeile 8: Zeile 8:
     * [[:​info:​sek1:​algorithmierung:​darstellung:​verbal|Verbale Darstellungsformen]]     * [[:​info:​sek1:​algorithmierung:​darstellung:​verbal|Verbale Darstellungsformen]]
     * [[:​info:​sek1:​algorithmierung:​darstellung:​schematisch|Schematische Darstellungsformen]]     * [[:​info:​sek1:​algorithmierung:​darstellung:​schematisch|Schematische Darstellungsformen]]
-  ​Übung +    ​[[:​info:​sek1:​algorithmierung:​darstellung:​schematisch:​pap|PAP]] 
-    * [[:​info:​sek1:​algorithmierung:​uebung:​1|Bereich 3.1]] +  * Übungen 
-    * [[:​info:​sek1:​algorithmierung:​uebung:​2|Bereich 3.2]] +    * [[:​info:​sek1:​algorithmierung:​uebung:​1|Klassensprecherwahl]] 
-    * [[:​info:​sek1:​algorithmierung:​uebung:​3|Bereich 3.3]]+    * [[:​info:​sek1:​algorithmierung:​uebung:​2|Rundungsregel für natZahlen]] 
 +    * [[:​info:​sek1:​algorithmierung:​uebung:​3|Potenz einer Zahl]] 
 +    * [[:​info:​sek1:​algorithmierung:​uebung:​4|Bauanleitung]]
   * [[:​info:​sek1:​algorithmierung:​kurs|Programmierkurs]]   * [[:​info:​sek1:​algorithmierung:​kurs|Programmierkurs]]
   * [[:​info:​sek1:​algorithmierung:​abschluss|Abschluss]]   * [[:​info:​sek1:​algorithmierung:​abschluss|Abschluss]]
 </​nav>​ </​nav>​
-===== Die Zukunft des Denkens - Bist du fit? ===== +\\ \\ 
-<callout type="​success"​ icon="​glyphicon glyphicon-flag">​**Sieh** dir das nachfolgende Video(([[https://​www.informatiqua.de/​|Videoquelle]])) an.\\ \\ +Bitte wähle oben einen Abschnitt ​aus. Beginne ​am besten ​bei "​[[:​info:​sek1:​algorithmierung:einstieg|Einstieg]]".
-Auf welche Probleme bist du bereits gestoßen, die durch einen Algorithmus gelöst wurden (bzw. gelöst werden könnten)?​ +
- +
-**Notiere** dir 3 Beispiele. +
-</​callout>​ +
- +
-<​html><​iframe width="​560"​ height="​315"​ src="​https://​www.youtube.com/​embed/​bXArJTy45t8"​ frameborder="​0"​ allow="​accelerometer;​ autoplay; encrypted-media;​ gyroscope; picture-in-picture"​ allowfullscreen></​iframe></​html>​ +
- +
-===== Definition Algorithmus ===== +
-Algorithmen spielen also eine wichtige Rolle in unserer Welt. Sie zu verstehen sollte unser aller Ziel sein. +
- +
-<callout type="​success"​ icon="​glyphicon glyphicon-flag">​**Übernimm** dir die Definition für einen Algorithmus sowie die beiden Beispiele in deinen Hefter. +
-</​callout>​ +
- +
-<WRAP center round box 80%> +
-**Definition:​** +
- +
-Ein **Algorithmus** ist eine Verarbeitungsvorschrift,​ die aus einer //​**endlichen**//​ Folge von //​**eindeutig**//​ //​**ausführbaren**//​ Anweisungen besteht. +
-</​WRAP>​ +
- +
-<callout type="​info"​ icon="​glyphicon glyphicon-info-sign">​__Beispiel 1:__ Kochen nach Rezept\\ \\ +
-Das Kochen nach Rezept ist ein Algorithmus,​ weil man zum einen //​**endlich**//​ viele Schritte befolgt bis zum fertigen Gericht, zum anderen genau feststeht welcher Schritt auf den nächsten folgt (//​**eindeutig**//​) und alle Schritte auch umsetzbar sind (//​**ausführbar**//​).\\ \\ +
-__Beispiel 2:__ Buchkritik schreiben\\ \\ +
-Das Schreiben einer Buchkritik ist kein Algorithmus,​ weil man zwar in //​**endlicher**//​ Zeit die Kritik verfassen kann und es für einen Menschen auch **//​ausführbar//​** ist. ABER die Tätigkeit kann **//nicht eindeutig//​** ausgeführt werden, denn jeder würde individuelle Inhalte schreiben und die Reihenfolge der Sätze unterschiedlich wählen. +
- +
-Außerdem kommen bei gleichen Eingabemengen (Buch lesen) unterschiedliche Ergebnisse (individuelle Kritik) heraus. Das widerspricht ebenfalls der Eigenschaft der Eindeutigkeit. +
-</​callout>​ +
- +
-<callout type="​success"​ icon="​glyphicon glyphicon-flag">​**Entscheide**,​ ob es sich bei den folgenden Handlungen um Algorithmen handelt oder nicht. Begründe deine Entscheidung,​ in dem du die nicht erfüllten Eigenschaften benennst.\\ +
-Kopiere dir die Tabelle zum Lösen aus der entsprechenden Vorlagendatei in deinen Hefter: {{ :​info:​sek1:​uebung-algorithmus-definition.odt |Vorlage.odt}} {{ :​info:​sek1:​uebung-algorithmus-definition.docx |Vorlage.docx}}</​callout>​ +
- +
-^ Handlung ^ Algorithmus ja oder nein ^ Begründung ^ +
-|Nachschlagen im Lexikon||| +
-|Schießen eines Tores beim Handball||| +
-|Addition von gemeinen Brüchen||| +
-|Schreiben eines Liebesbriefes||| +
-|Zähne putzen||| +
-|Regal aufbauen||| +
-|Instrument nach Noten spielen||| +
-|Aufschreiben aller geraden natürlichen Zahlen| || +
-|Klassenarbeit schreiben||| +
-|Wandern gehen||| +
- +
-===== Darstellungsformen von Algorithmen ===== +
-<callout type="​success"​ icon="​glyphicon glyphicon-flag">​ +
-**Informiere** dich in der folgenden Übersicht über die verschiedenen Darstellungsformen von Algorithmen.  +
-</​callout>​ +
- +
-<​tabs>​ +
-  * [[#​verbal|Verbale Darstellungsformen]] +
-  * [[#​schematisch|Schematische Darstellungsformen]] +
- +
-<pane id="​verbal">​ +
-==== Verbale Darstellungsformen ==== +
-=== umgangsprachlich (Fließtext,​ strukturiert) === +
->​Umgangssprachlich formulierte Algorithmen versuchen, die Idee eines Algorithmus zu beschreiben,​ ohne strenge Formalien in der Darstellung zu beachten.(([[https://​www.inf-schule.de/​algorithmen/​algorithmen/​algorithmusbegriff/​exkurs_darstellung|inf-schule.de:​ umgangssprachliche Darstellungsform]])) +
-=== Pseudocode === +
->Häufig formuliert man Algorithmen auch in einer Sprache, die sich stark an gängige Programmiersprachen anleht, ohne alle Vorgaben der Programmiersprache strikt zu beachten.(([[https://​www.inf-schule.de/​algorithmen/​algorithmen/​algorithmusbegriff/​exkurs_darstellung|inf-schule.de:​ Pseudocode]])) +
- +
-Beispiel: Ein Quiz-Spiel in Pseudocode(([[https://​scratch-dach.info/​wiki/​Pseudocode|Pseudocode Quiz-Spiel]])) +
-<​code>​WENN Programm beginnt: +
-WIEDERHOLE 10 mal: +
-    stelle eine Zufallsfrage +
-    warte auf Antwort +
-    FALLS Antwort richtig DANN: +
-        bestätige Antwort +
-        gebe einen Punkt +
-    ANSONSTEN:​ +
-        nenne richtige Antwort +
-beende das Programm</​code>​ +
- +
-=== Programmcode === +
->Als Programmcode werden die Anweisungen bezeichnet, die [...] für ein bestimmtes Computerprogramm [...] entstehen und [in einer bestimmten Programmiersprache geschrieben sind]. (([[https://​de.wikipedia.org/​wiki/​Programmcode|Wikipedia - Programmcode]])) +
-Beispiel: Eine Funktion in der Sprache Python, welche die Fakultät einer natürlichen Zahl berechnet +
-<code python>​def fak(n): +
-    if n==0: +
-        return 1 +
-    else: +
-        return n * fak(n-1) +
- +
-n = int(input("​n = ")) +
-print("​fak(n) = ", fak(n))</​code>​ +
-</​pane>​ +
- +
-<pane id="​schematisch">​ +
-==== Schematische Darstellungsformen ==== +
-=== Struktogramm (Nassi-Shneiderman-Diagramm) === +
->Ein Nassi-Shneiderman-Diagramm ist ein Diagrammtyp zur Darstellung von Programmentwürfen im Rahmen der Methode der strukturierten Programmierung. [Jede Aktion ​ eines Algorithmus wird durch einen Block dargestellt.] Es wurde 1972/73 von Isaac Nassi und Ben Shneiderman entwickelt [...] (([[https://​de.wikipedia.org/​wiki/​Nassi-Shneiderman-Diagramm|Wikipedia - Nassi-Shneiderman-Diagramm]])) +
- +
-{{ :​info:​sek1:​beispiel-struktogramm-vokabeltrainer.png?​direct&​400 |}} +
- +
-=== Programmablaufplan === +
->Ein **Programmablaufplan (PAP)** ist ein Ablaufdiagramm für ein Computerprogramm,​ das auch als Flussdiagramm [...] bezeichnet wird. Es ist eine [normierte] grafische Darstellung zur Umsetzung eines Algorithmus in einem Programm und beschreibt die Folge von Operationen zur Lösung einer Aufgabe. (([[https://​de.wikipedia.org/​wiki/​Programmablaufplan|Wikipedia - Programmablaufplan]])) +
- +
-{{ :​info:​sek1:​beispiel-pap-vokabeltrainer.png?​direct&​400 |}} +
- +
-</​pane>​ +
-</​tabs>​ +
- +
----- +
- +
-===== Übung zur Algorithmierung ===== +
-<callout type="​success"​ icon="​glyphicon glyphicon-flag">​ +
-**Fasse** die folgenden umgangssprachlich formulierten Algorithmen zusammen und notiere sie strukturiert.\\ +
-**Zeichne** danach die zugehörigen PAP.</​callout>​ +
- +
-<callout type="​info"​ icon="​glyphicon glyphicon-info-sign">​ +
-Wenn du die PAP am Computer erstellen möchtest, kannst du folgende Software nutzen: \\ +
-Download PAPdesigner:​ [[https://​www.heise.de/​download/​product/​papdesigner-51889|heise online - PAPdesigner]]</​callout>​ +
- +
-==== Algorithmus 1 ==== +
-<WRAP center round box 80%>​**Wahl der Klassensprecherinnen und Klassensprecher:​**\\ +
-Zu Beginn des Schuljahres werden die Klassensprecher in geheimer Wahl bestimmt. ​ Zuerst wird das Wahlverfahren festgelegt:​ +
-Gewählt ist, wer mehr als die Hälfte der gültigen Stimmen erhält (absolute Mehrheit). Wird die Mehrheit im ersten Wahlgang nicht erreicht, so findet eine Stichwahl unter den besten ​erstplatzierten Bewerbern statt. Bei Stimmgleichheit in der Wahl entscheidet dann das Los.</​WRAP>​ +
-\\ +
-<button collapse="strukturiert1">​verbal strukturiert (Hilfestellung)</​button>​ +
-<​collapse id="​strukturiert1"​ collapsed="​true">​ +
-  - Zuerst wird die Wahlleitung bestimmt +
-  - Die Kandidatinnen und Kandidaten werden erfasst. +
-  - Wahlgang: Jede Person hat eine Stimme. Es wird geheim gewählt und ausgezählt. +
-    - Falls eine Person die absolute Mehrheit erzielt, ist sie gewählt. +
-    - Andernfalls ... +
-</​collapse>​ +
-<button collapse="​pap1">​PAP</​button>​ +
-<​collapse id="​pap1"​ collapsed="​true">​ +
-Wir vergleichen die PAP im Unterricht. +
-</​collapse>​ +
- +
-==== Algorithmus 2 ==== +
-<WRAP center round box 80%>​**Rundungsregel für natürliche Zahlen:​**\\ +
-Für das Runden einer natürlichen Zahl ist die Ziffer von Bedeutung, die der Stelle, auf die gerundet wird, unmittelbar folgt. Die Ziffer auf der Rundungsstelle bleibt unverändert,​ wenn ihr eine 0, 1, 2, 3 oder 4 folgt. Sie wird um 1 erhöht, wenn ihr eine 5, 6, 7, 8 oder 9 folgt. Alle auf die Rundungsstelle folgenden Ziffern werden durch Nullen ersetzt.</​WRAP>​ +
-\\ +
-<button collapse="​strukturiert2">​verbal strukturiert (Hilfestellung)</​button>​ +
-<​collapse id="​strukturiert2"​ collapsed="​true">​ +
-  - Zahl und Rundungsstelle festlegen +
-  - Folgt auf die Rundungsstelle eine 0, 1, 2, 3 oder 4? +
-    - ja: ... +
-    - nein: ... +
-  - ... +
-</​collapse>​ +
-<button collapse="​pap2">​PAP</​button>​ +
-<​collapse id="​pap2"​ collapsed="​true">​ +
-Wir vergleichen die PAP im Unterricht. +
-</​collapse>​ +
- +
-===== Progammierkurs ===== +
-<callout type="​success"​ icon="​glyphicon glyphicon-flag">​**Bearbeite** folgenden Online-Programmierkurs und erhalte am Ende das Zertifikat. Nimm dir dafür ca. 1 Stunde am Stück Zeit. +
- +
-[[https://​studio.code.org/​s/​aquatic/​stage/​1/​puzzle/​1|Code.org:​ Minecraft - Voyage Aquatic]] +
- +
-//Hinweis: Für die Teilnahme am Kurs musst du __nicht__ auf der Seite angemeldet sein.// +
- +
-**Lade** am Ende (Wenn du auf "​Abschließen"​ geklickt hast) dein Zertifikat zur Bestätigung der Aufgabe in die Dateiablage deiner Klasse auf LernSax **hoch**. +
-Beachte, dass du die Datei sinnvoll benennst und sie im Ordner "​Informatik"​ hochlädst. Hilfe zur Abgabe geben der untenstehende Screenshot und die Erklärungen. +
-</​callout>​ +
-Erklärung zur Abgabe:\\ +
-{{ :info:sek1:mc02.png?​direct&​200 |Zertifikat drucken}} +
-So gibst du dein Zertifikat ab: +
-  - Gib deinen vollständigen Namen ein. +
-  - Klicke auf Drucken. +
-  - Mache einen Rechtsklick auf das erscheinende Zertifkatsbild und speichere die Grafik/das Bild unter dem Namen **Zertifikat_Klasse_8.5_Nachname_Vorname.png** (Setze deine Klasse und deinen Namen ein.) ab. +
-  - Lade das Bild in die Dateiablage deiner Klasse auf LernSax im Ordner "​Informatik"​ hoch. +
-  - Fertig. :-) +
- +
- +
----- +
- +
-Schlussendlich noch eine kleine Hilfe zur Selbsthilfe((Grafik von [[http://​einserver.de/​tech-support-cheat-sheet|Florian Pichler]], [[http://​creativecommons.org/​licenses/​by-nc/​3.0/​deed.de|Creative Commons Lizenz CC BY-NC]], gesehen bei [[https://​herr-kalt.de/​arbeitsmethoden/​software-selbst-lernen|Herr Kalt]], [[http://​xkcd.com/​627/​|Original von Randall Munroe]])):​ +
-<image shape="thumbnail">​{{ :​info:​sek1:​tech_support_cheat_sheet_german.png?​direct&​200 |}}</​image>​ +
- +
- +
- +
  • Zuletzt geändert: 2020/04/17 10:07
  • von schultz