1 Scratch Einführung in die ProgrammierungMINT Labortage 2017 Donnerstag, 23. März 2017 Hochschule Fulda, Fachbereich Angewandte Informatik Domgymnasium Fulda, Klasse 7 Peter Klingebiel, HS Fulda, Fachbereich AI
2 Ablauf des Labortages 1 Wer sind wir?Peter Klingebiel, Dipl.-Ing. Maschinenbau 21 Jahre Leiter DVZ der Hochschule Fulda, heute: Dozent im Fachbereich AI Maria Holstein und Vanessa Günzel, Studierende der Informatik Scratch - Programmiereinführung - Peter Klingebiel März 2017
3 Ablauf des Labortages 2 Wer seid Ihr? Interesse an Informatik?Kenntnisse in Informatik? Kenntnisse in Programmieren? ??? Scratch - Programmiereinführung - Peter Klingebiel März 2017
4 Ablauf des Labortages 3 Was wollen wir heute machen?Einführung und Motivation Wie funktionieren Computer? Was sind Programme? Grundlagen der Programmierung einfache Beispiele von Scratch-Programmen und praktische Übungen in Programmieren mit Scratch Scratch - Programmiereinführung - Peter Klingebiel März 2017
5 Einführung und Motivation 1Film: Hidden Figures – Unbekannte Heldinnen, USA 2016 Trailer: https://www.youtube.com/watch?v=brS10KpcTMY Scratch - Programmiereinführung - Peter Klingebiel März 2017
6 Einführung und Motivation 2Oder: Mondlandung Apollo 11 am 20. Juli 1969 https://www.youtube.com/watch?v=KoDICeGG4BU Scratch - Programmiereinführung - Peter Klingebiel März 2017
7 Einführung und Motivation 3Film Hidden Figures (2016): drei afroamerikanische Frauen, Catherine Johnson, Dorothy Vaughn und Mary Jackson, erobern sich Anfang der 1960er Jahre ihre Positionen als Mathematikerin, Informatikerin und Technikerin bei der NASA und tragen damit zum Erfolg des ersten Orbit-flugs mit der Friendship und John Glenn bei Mondlandung 1969: riesiger technischer und finanzieller Aufwand Landung war nur möglich mit umfassensten Kenntnissen von Mathematik, Informatik, Naturwissenschaften, Technik … … und eben auch von Computern und Computerprogrammen Scratch - Programmiereinführung - Peter Klingebiel März 2017
8 Einführung und Motivation 4Margaret Hamilton, Mathematikerin, geboren 1936, 1969 bei der NASA verantwortlich für die Programmierung der Bordcomputer von Rakete und Apollo-Kapsel. Hier mit dem Ausdruck aller Programme Scratch - Programmiereinführung - Peter Klingebiel März 2017
9 Einführung und Motivation 5Scratch - Programmiereinführung - Peter Klingebiel März 2017
10 Einführung und Motivation 6Lady Ada Lovelace 1815 bis 1852 britische Mathematikerin, erster Programmierer / erste Programmiererin der Welt! Nach ihr wurden die Programmiersprache ADA sowie der Preis Lovelace Medal benannt. Scratch - Programmiereinführung - Peter Klingebiel März 2017
11 Wie funktionieren Computer? 1Scratch - Programmiereinführung - Peter Klingebiel März 2017
12 Wie funktionieren Computer? 2Scratch - Programmiereinführung - Peter Klingebiel März 2017
13 Wie funktionieren Computer? 3Scratch - Programmiereinführung - Peter Klingebiel März 2017
14 Wie funktionieren Computer? 4Scratch - Programmiereinführung - Peter Klingebiel März 2017
15 Wie funktionieren Computer? 5Scratch - Programmiereinführung - Peter Klingebiel März 2017
16 Wie funktionieren Computer? 6Mikroprozessoren (CPU) Ein- und Ausgabegeräte Speicher und und und … Hardware („Blech“) Computer funktionieren nur mit Programmen! Software Scratch - Programmiereinführung - Peter Klingebiel März 2017
17 Was sind Programme? 1 Computer … Programme beschreiben …… funktionieren nur mit Programmen / Software Programme beschreiben … … was ein Computer tun soll (Aufgabe, Problem) … wie ein Computer seinen Job erledigen soll (Ablauf) Programme gibt es für allgemeine Aufgaben (z.B. Windows) spezielle Aufgaben (z.B. ein Spiel oder Word) Scratch - Programmiereinführung - Peter Klingebiel März 2017
18 Was sind Programme? 2 Beispiel: Lego BauanleitungScratch - Programmiereinführung - Peter Klingebiel März 2017
19 Was sind Programme? 3 DIY - Doppelkaffeetasse von Friedemann Weise https://www.youtube.com/watch?v=KivIinPxVbc Scratch - Programmiereinführung - Peter Klingebiel März 2017
20 Was sind Programme? 4 Definition: „Programmieren ist eine Tätigkeit, bei der versucht wird, durch systematischen Einsatz einer gegebenen Programmiersprache ein gestelltes Problem zu lösen.“ aus: H. Balzert, Lehrbuch Grundlagen der Informatik, 1999 Wikipedia: Scratch - Programmiereinführung - Peter Klingebiel März 2017
21 Was sind Programme? 5 Definition: „Algorithmen, die von einem automa-tischen Prozessor abgearbeitet werden, bezeichnet man als Programme. Ein Programm stellt die Realisierung eines Algorithmus dar. Im Gegensatz zu einem Algorithmus ist ein Programm konkreter und eingeschränkter.“ aus: Balzert, Lehrbuch ... Wikipedia: Scratch - Programmiereinführung - Peter Klingebiel März 2017
22 Was sind Programme? 6 Definition: „Algorithmus (Plural: Algorithmen), Problemlösungsbeschreibung, die festlegt, wie ein Problem gelöst werden soll.“ aus: Balzert, Lehrbuch ... Wikipedia: Scratch - Programmiereinführung - Peter Klingebiel März 2017
23 Was sind Programme? 7 Entwicklung von Programmen:Aufgabe / Problem so genau wie möglich beschreiben Beispiel: Idee / Ziel eines Computerspiels genau beschreiben Lösungsweg (Algorithmus) suchen und so genau wie möglich beschreiben Bsp: Ablauf des Spiels genau beschreiben Programm entwickeln (programmieren) Bsp: Computerspiel / Ablauf des Spiels in eine Programmiersprache umsetzen / codieren Scratch - Programmiereinführung - Peter Klingebiel März 2017
24 Was sind Programme? 8 Einfaches Spiel: „Hexe und Zauberer“Scratch - Programmiereinführung - Peter Klingebiel März 2017
25 Was sind Programme? 9 ProgrammiersprachenProgramme werden in Programmier-sprachen geschrieben / beschrieben Programmiersprachen verlangen fast immer eine exakte Beschreibung der Aufgabe und der Lösung der Aufgabe Programmiersprachen sind fast immer sehr pingelig und erfordern die genaueste Einhaltung der Syntax (Rechtschreibung) Scratch - Programmiereinführung - Peter Klingebiel März 2017
26 Was sind Programme? 10 Spiel: „Hexe und Zauberer“ungefährer Spielablauf: die Hexe (Witch) folgt dem Mauszeiger und bewegt sich über das Spielfeld prallt vom Spielfeldrand ab sagt alle Sekunde „Fang mich doch!“ und schickt diese Nachricht an den Zauberer der Zauberer (Wizard) rennt hinter der Hexe her sagt „Ha! Hab Dich“, wenn er die Hexe fängt / berührt und lacht dann hämisch Scratch - Programmiereinführung - Peter Klingebiel März 2017
27 Was sind Programme? 11 „Programmtext“ zum SpielScratch - Programmiereinführung - Peter Klingebiel März 2017
28 Was sind Programme? 12 Beispiel: Programmiersprache „C“C-Programm wird als Text am Computer erstellt und „übersetzt“ Beispielprogramm hallowelt.c: // hallowelt.c #include
29 Was sind Programme? 13 Programmiersprache „Scratch“einfache intuitive Programmiersprache, um Kinder und Jugendliche die Grundkonzepte der Programmierung spielerisch zu lehren entwickelt am MIT Media Lab unter Leitung von Prof. Mitchel Resnick MIT-Forschungsteam Lifelong Kindergarten Group Wikipedia: https://de.wikipedia.org/wiki/Scratch_(Programmiersprache) Scratch - Programmiereinführung - Peter Klingebiel März 2017
30 Was sind Programme? 14 Prof. Mitchel Resnik, Erfinder von ScratchScratch - Programmiereinführung - Peter Klingebiel März 2017
31 Was sind Programme? 15 Besonderheiten von „Scratch“:einfach und intuitiv zu bedienen sehr niedrige „Einstiegshürden“ Programme werden mit Bildchen und Symbolen spielerisch zusammen-geklickt“ wie „Spielen mit Legosteinen“ Scratch: https://scratch.mit.edu/ Programmieren auf der Website im Browser! mBlock: Download und Programmieren auf eigenem Computer! Hardware kann integriert werden! Scratch - Programmiereinführung - Peter Klingebiel März 2017
32 Was sind Programme? 16 Scratch - Programmiereinführung - Peter Klingebiel März 2017
33 Was sind Programme? 17 Scratch - Programmiereinführung - Peter Klingebiel März 2017
34 Was sind Programme? 18 Scratch - Programmiereinführung - Peter Klingebiel März 2017
35 Was sind Programme? 19 Die Scratch-Oberfläche / Der Scratch-Editor (Internet) https://scratch.mit.edu/projects/editor/?tip_bar=home Scratch - Programmiereinführung - Peter Klingebiel März 2017
36 Was sind Programme? 20 Scratch - Programmiereinführung - Peter Klingebiel März 2017
37 Was sind Programme? 21 Die mBlock-Oberfläche (lokal auf dem PC) Scratch - Programmiereinführung - Peter Klingebiel März 2017
38 Was sind Programme? 22 Hauptmenü Klänge Programmier- blöcke KostümeSpielfläche Bühne Programmier-bereich Skripte Figuren Sprites Bühnenbilder Scratch - Programmiereinführung - Peter Klingebiel März 2017
39 Grundlagen der Programmierung 1Programme werden aus unterschiedlichen Elementen zusammen“gebaut“ Einfachstes Element ist die Anweisung Beispiele (in C) printf(„Hallo, Welt!\n“); clear_screen(); Beispiele (in Scratch) Scratch - Programmiereinführung - Peter Klingebiel März 2017
40 Grundlagen der Programmierung 2C-Programme starten mit main() Scratch-Programme (Skripte) starten bei bestimmten Ereignissen Beispiele Grüne Fahne Taste Nachricht Scratch - Programmiereinführung - Peter Klingebiel März 2017
41 Grundlagen der Programmierung 3C-Programme werden übersetzt und zu einem ausführbaren Programm montiert Scratch-Skripte werden durch Zusammen-fügen der Symbole durch Bewegen mit der Maus zusammengebaut Scratch - Programmiereinführung - Peter Klingebiel März 2017
42 Grundlagen der Programmierung 4Beispiel: mint-beispiel1 Scratch - Programmiereinführung - Peter Klingebiel März 2017
43 Grundlagen der Programmierung 5die meisten Programme sind nicht so einfach gebaut. Fast immer ist eine Steuerung des Programmablaufs erforderlich Bedingungen: wenn / falls / falls sonst … Beispiele: falls das Licht an ist, dann schalte es aus wenn das Zimmer aufgeräumt ist, kannst du spielen, sonst räume weiter auf! Scratch - Programmiereinführung - Peter Klingebiel März 2017
44 Grundlagen der Programmierung 6Schleifen: wiederhole solange bis / wiederhole n mal / wiederhole endlos … Beispiele: solange du die Hausarbeiten nicht fertig gemacht hast, kannst du nicht spielen gehen laufe zehn Runden um den Sportplatz Scratch - Programmiereinführung - Peter Klingebiel März 2017
45 Grundlagen der Programmierung 7Objekte: Scratch hat als Grundelement der Programmierung Objekte (Figuren oder Sprites genannt) werden über Skripte programmiert / gesteuert haben Eigenschaften, z.B. Kostüme kommunizieren miteinander, schicken und empfangen Nachrichten Scratch - Programmiereinführung - Peter Klingebiel März 2017
46 Grundlagen der Programmierung 8Beispiel: Katze und Panda, mint-beispiel2 Scratch - Programmiereinführung - Peter Klingebiel März 2017
47 Einfache Beispiele 1 Ampelsteuerung (Simulation)Scratch - Programmiereinführung - Peter Klingebiel März 2017
48 Einfache Beispiele 2 Ampelsteuerung mit externer AmpelScratch - Programmiereinführung - Peter Klingebiel März 2017
49 Einfache Beispiele 3 Graph eines externen PotentiometersScratch - Programmiereinführung - Peter Klingebiel März 2017
50 Einfache Beispiele 4 Lichtsensor lesen und în Graph darstellenScratch - Programmiereinführung - Peter Klingebiel März 2017
51 Einfache Beispiele 5 Frühstücksroboter von Simone Giertz (auf youtube)Lippenstiftroboter von Simone Giertz (auf youtube) Scratch - Programmiereinführung - Peter Klingebiel März 2017
52 Und jetzt: selber programmieren …Scratch - Programmiereinführung - Peter Klingebiel März 2017