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/03/23 11:19]
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 ====== +====== Algorithmierung====== 
-===== Die Zukunft des Denkens - Bist du fit? ===== +<progress><bar value="1" type="​success"></​bar></progress
-<callout type="​success"​ icon="​glyphicon glyphicon-flag">​**Sieh** dir das nachfolgende Video(([[https://​www.informatiqua.de/​|Videoquelle]])) an.\\ \\ +<nav type="pills" ​justified="true">​ 
-Auf welche Probleme bist du bereits gestoßen, die durch einen Algorithmus gelöst wurden (bzw. gelöst werden könnten)?​ +  [[:info:sek1:algorithmierung:​einstieg|Einstieg]] 
- +  * [[:info:sek1:algorithmierung:​definition|Definition]] 
-**Notiere** dir 3 Beispiele. +  Verbale ​Darstellungsformen 
-</​callout>​ +    * [[:​info:​sek1:​algorithmierung:​darstellung:​verbal|Verbale Darstellungsformen]] 
- +    * [[:​info:​sek1:​algorithmierung:​darstellung:​schematisch|Schematische Darstellungsformen]] 
-<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>​ +    ​* ​[[:info:sek1:algorithmierung:​darstellung:​schematisch:​pap|PAP]] 
- +  * Übungen 
-===== Definition Algorithmus ===== +    ​* ​[[:info:sek1:algorithmierung:uebung:1|Klassensprecherwahl]] 
-Algorithmen spielen also eine wichtige Rolle in unserer Welt. Sie zu verstehen sollte unser aller Ziel sein. +    * [[:​info:​sek1:​algorithmierung:​uebung:​2|Rundungsregel ​für natZahlen]] 
- +    * [[:info:​sek1:​algorithmierung:​uebung:​3|Potenz einer Zahl]] 
-<​callout ​type="​success" icon="​glyphicon glyphicon-flag">**Übernimm** dir die Definition für einen Algorithmus sowie die beiden Beispiele in deinen Hefter. +    * [[:info:sek1:algorithmierung:uebung:4|Bauanleitung]] 
-</callout> +  [[:info:sek1:algorithmierung:kurs|Programmierkurs]] 
- +  * [[:info:​sek1:​algorithmierung:​abschluss|Abschluss]] 
-<WRAP center round box 80%> +</nav
-**Definition:​** +\\ \\ 
- +Bitte wähle oben einen Abschnitt ausBeginne am besten bei "[[:info:sek1:algorithmierung:einstieg|Einstieg]]".
-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.deumgangssprachliche 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 [normiertegrafische 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>​ +
- +
-<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. +
-  - WahlgangJede 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">​ +
-PAP +
-</​collapse>​ +
- +
-<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">​ +
-PAP +
-</​collapse>​ +
- +
-===== Progammierkurs ===== +
-<callout type="​success"​ icon="​glyphicon glyphicon-flag">​**Bearbeite** folgenden Online-Programmierkurs und erhalte am Ende das Zertifikat. Nimm dir dafür am Stück ca. 1 Stunde 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 untenstehende Screenshots und 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/03/23 11:19
  • von schultz