Programming for prospective educators (using Scratch): Unterschied zwischen den Versionen

Aus ZUM-Unterrichten
KKeine Bearbeitungszusammenfassung
Markierung: 2017-Quelltext-Bearbeitung
 
(46 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
| [[ITBO-Programming-part-1| unit 1 →]] | [[ITBO-Programming-part-2| unit 2 →]] | [[ITBO-Programming-part-3| unit 3 →]] | [[ITBO-Programming-part-4| unit 4 →]] |
| [[ITBO-Programming-part-1| unit 1 →]] | [[ITBO-Programming-part-2| unit 2 →]] | [[ITBO-Programming-part-3| unit 3 →]] | [[ITBO-Programming-part-4| unit 4 →]] |
 
<br />
 
[[Programmieren für angehende Pädagog:innen (mit Hilfe von Scratch)| Deutschsprachige Originalversion: Programmieren für angehende Pädagog:innen (mit Hilfe von Scratch) →]]
 
<br />


=='''Introduction'''==
=='''Introduction'''==
Zeile 6: Zeile 11:
This course has been developed for students of Swiss specialised upper secondary schools in the occupational field of education (=pedagogy), subsequently abbreviated as «SSC-P».
This course has been developed for students of Swiss specialised upper secondary schools in the occupational field of education (=pedagogy), subsequently abbreviated as «SSC-P».


Dieser Lernpfad wurde 2022 als Teil des [https://zitbox.ch/projekte/modellprojekte-mittelschule/modellprojekt-informatik-module-fms-paedagogik/ Modellprojekts "Informatik-Module für die Fachmittelschule Pädagogik"] im Rahmen der [https://www.itbo.sg.ch IT-Bildungsoffensive (ITBO)] des Kantons St.Gallen (Schweiz) entwickelt. Der Kanton hat uns erlaubt, die Unterlagen als Open Educational Resources mit der Lizenz CC-BY-SA zu veröffentlichen.
The course comprises four units of 2 lessons each. For each unit, instructions are available for the students and a handout for the teacher. In addition, the templates and sample solutions for the programming tasks are published in studio [https://scratch.mit.edu/studios/33643766/|Studio ITBO Programming] on the Scratch portal.
 
=='''unit 1'''==
 
In '''unit 1''', the students will get to know the programming environment of Scratch and the basics of programming by means of a sample project. They will implement a matchstick puzzle (model construction). Without too many theoretical considerations, the students will learn basic concepts of "professional" programming (object and event orientation, process communication). Additionally, the students will get acquainted with a Scratch-extension (text-to-speech).
 
{{Box|Objectives unit 1|* The students get to know the Scratch programming environment and how to use it in order to create and manage their own programming projects.
 
* They learn the basic elements of the Scratch programming language and use them to "write" their first simple programs.
 
* The students reflect on their experiences with programming.


Der Lernpfad umfasst ''vier Einheiten'' (Teilmodule) zu je 2 Lektionen. Zu jeder Einheit steht eine ''Anleitung für die SuS'' (Schülerinnen und Schüler) und eine ''Handreichung für die Lehrperson'' zur Verfügung. Ausserdem sind die ''Vorlagen und Musterlösungen zu den Programmieraufgaben'' im [https://scratch.mit.edu/studios/31665072/ Studio ITBO Programmieren] auf dem Scratch-Portal veröffentlicht.
* They also learn (without too many theoretical considerations) basic concepts of "professional" programming (object and event orientation, process communication).|Kurzinfo }}


[[ITBO-Programming-part-1|jump to unit 1]] [[Datei:Icon_Noun-internal-link-4974682.svg|verweis=ITBO-Programming-part-1|30x30px]]
   
   


=='''Einheit 1'''== Mit dem Teilmodul 1 lernen die SuS die Programmierumgebung Scratch und die Grundlagen des Programmierens anhand eines Beispielprojekts kennen. Sie realisieren ein Zündholzrätsel (Modellbildung). Ohne theoretischen Ballast verwenden sie dazu grundlegende Konzepte der objektorientierten Programmierung (Objekte, Objekteigenschaften, Aktionen/Methoden, Prozesskommunikation). Die SuS machen sich auch mit einer Scratch-Erweiterung vertraut (text-to-speech).
=='''unit 2'''==  


{{Box|Ziele Teilmodul 1|* Die SuS lernen die Programmierumgebung Scratch kennen und nutzen, um eigene Programmierprojekte zu eröffnen und zu verwalten.
'''Unit 2''' focuses on the concept of turtle graphics and the use of Scratch in primary school. Using the example of "properties of regular polygons", the students can experience exploratory learning with turtle graphics for themselves. In addition, the students learn about and apply the essential "basic building blocks" of programs (sequence, repetition, conditional execution, variables).  


Sie lernen grundlegende Elemente der Programmiersprache Scratch kennen und wenden sie an, um erste einfache Programme zu «schreiben».
{{Box|Objectives unit 2|* The students get more familiar with Scratch.


Die SuS reflektieren die Erfahrungen, die sie beim Programmieren machen.
* They learn about and apply the "basic building blocks" of programs (sequence, repetition, conditional execution, variables).


Sie lernen (ganz ohne theoretischen Ballast) auch grundlegende Konzepte «professioneller» Programmierung kennen (Objekt- und Ereignisorientierung, Prozesskommunikation).|Kurzinfo }}
* The students understand the concept of turtle graphics for the exploratory learning in primary school.


[[ProgrammierenITBO-Teilmodul-1|zum Teilmodul 1]] [[Datei:Icon_Noun-internal-link-4974682.svg|verweis=ProgrammierenITBO-Teilmodul-1|30x30px]]
* They deal with the programming of turtle graphics by means of a concrete example.|Kurzinfo }}


[[ITBO-Programming-part-2|jump to unit 2]] [[Datei:Icon_Noun-internal-link-4974682.svg|verweis=ITBO-Programming-part-2|30x30px]]
   
   


=='''Einheit 2'''== Das Teilmodul 2 fokussiert auf das Konzept der Turtle-Grafik und den Einsatz von Scratch im Unterricht an der Primarschule. Anhand des Beispiels «Eigenschaften regelmässiger Vielecke» können die SuS das entdeckende Lernen mit Turtle-Grafik selbst nachvollziehen. Ausserdem lernen die SuS wesentliche «Grundbausteine» von Programmen (Sequenz, Wiederholung, bedingte Ausführung, Variablen) kennen und anwenden.  
=='''unit 3'''==
 
'''Unit 3''' introduces the students to the design and programming of multimedia stories / animations in Scratch.
 
{{Box|Objectives unit 3|* The students analyse a simple interactive, multimedia "story". They complete the "story" with an additional scene.
 
* The students learn how to design and create "scenes" and "scene changes".
 
* They learn how to design and implement animations.|Kurzinfo }}
 
[[ITBO-Programming-part-3|jump to unit 3]] [[Datei:Icon_Noun-internal-link-4974682.svg|verweis=ITBO-Programming-part-3|30x30px]]
 
=='''unit 4'''==


{{Box|Ziele Teilmodul 2|* Die SuS machen sich weiter mit Scratch vertraut.
In '''unit 4''', the students deal with the simulation of a robotic lawnmower. They rely on the block concept, which makes their work much easier and provides a clearer outline of the program. Using this example, the students reflect on the problem of the determinacy and correctness of programmed solutions to problems.


Sie lernen die «Grundbausteine» von Programmen kennen und anwenden (Sequenz, Wiederholung, bedingte Ausführung, Variablen).
{{Box|Objectives unit 4|* The students understand a simulation as a way of searching a solution for a problem.


Die SuS verstehen das Konzept der Turtle-Grafik für das entdeckende Lernen im Primarschul-Unterricht. *Sie setzen sich mit dem Programmieren von Turtle-Grafiken anhand eines konkreten Beispiels auseinander.|Kurzinfo }}
* They analyse and test the provided example of the simulation of a robotic lawnmower.


[[ProgrammierenITBO-Teilmodul-2|zum Teilmodul 2]] [[Datei:Icon_Noun-internal-link-4974682.svg|verweis=ProgrammierenITBO-Teilmodul-2|30x30px]]
* The students supplement the simulation example with an algorithm that they develop on their own.


* They understand the block concept as a means to outline programs clearly.|Kurzinfo }}
 
[[ITBO-Programming-part-4|jump to unit 4]] [[Datei:Icon_Noun-internal-link-4974682.svg|verweis=ITBO-Programming-part-4|30x30px]]
 
 
External devices or systems (e.g. LEGO Mindstorm) were not taken into account. Such devices and systems are a matter of a robotics course.
 
"Data structures" are not sufficiently covered in this programming course. This is a shortcoming inherent in many instructions on how to learn programming. However, the given time budget of 8 lessons does not allow the topic of "data structures" to be dealt with adequately. It would make sense to discuss "data structures" in the context of social media. The students would then be able to recognise the importance and functioning of modern, networked data structures (linked data) and understand why companies are so interested in social media.


=='''Einheit 3'''== Das Teilmodul 3 dient dazu, die SuS mit dem Entwurf und der Programmierung von multimedialen Geschichten / Animationen in Scratch vertraut zu machen.
=='''Teaching process'''==  


{{Box|Ziele Teilmodul 3|* Die SuS analysieren eine einfache interaktive, multimediale «Geschichte». Sie ergänzen die «Geschichte» mit einer zusätzlichen Szene.
The students will bring different levels of prior knowledge to the course and show different levels of interest in programming. Some students will declare that they already know how to program. Others will be sceptical about whether they will ever learn it and whether they need it at all.


Die SuS lernen, wie sie «Szenen» und «Szenenwechsel» entwerfen und umsetzen können.
If the high expectations of programming in school (... logical and critical thinking, creativity, teamwork, ...) are to be fulfilled, the students must deal with the contents of the programming course in their own way.


Sie erfahren, wie Animationen entworfen und realisiert werden können.|Kurzinfo }}
There are instructions for each unit (student editions), with which the students can work independently in groups (ideally in pairs, if necessary in groups of three). This gives the teacher time to deal more intensively with the students who already have experience or are sceptical about programming. For this purpose, teachers have an accompanying document for each unit (teacher edition). Supporting the sceptical students in such a way that they experience their reservations as an encouragement, and motivating the experienced students to (self-)critically examine the contents of selected units would be desirable goals.


[[ProgrammierenITBO-Teilmodul-3|zum Teilmodul 3]] [[Datei:Icon_Noun-internal-link-4974682.svg|verweis=ProgrammierenITBO-Teilmodul-3|30x30px]]
A formative evaluation of the learning outcomes does not make sense in this context. Conversely, a collaborative text editor (e.g. https://edupad.ch) would enable the students to continuously note down and discuss their questions / comments and reflections on the tasks . If necessary, the teacher might require all students to contribute at least three relevant questions and/or comments.


=='''Time requirement'''==


=='''Einheit 4'''== Im Teilmodul 4 setzen sich die SuS mit der Simulation eines Rasenmähroboters auseinander. Dabei stützen sie sich auf das Block-Konzept, das ihre Arbeit wesentlich erleichtert und das Programm übersichtlicher macht. Anhand dieses Beispiels reflektieren die SuS die Problematik der Determiniertheit und Korrektheit von programmierten Problemlösungen.  
The time required for the four units is 2 lessons for each. Units 1 and 2 form a single lesson; depending on the class, they may take a little more time to complete. In that case, unit 4 might have to be omitted.


{{Box|Ziele Teilmodul 4|* Die SuS verstehen eine Simulation als Möglichkeit für das Suchen nach einer Problemlösung.
=='''Material and sample solutions'''==


Sie analysieren und testen das zur Verfügung gestellte Beispiel der Simulation eines Rasenmäher-Roboters.
The documents for the programming course (teacher editions, student editions) are freely accessible on this server (unterrichten.zum.de).


Die SuS ergänzen das Simulationsbeispiel mit einem selbst entwickelten Algorithmus.
The templates and sample solutions to the tasks are published as projects on the Scratch platform in the studio [https://scratch.mit.edu/studios/33643766/ ITBO Programming].


Sie verstehen das Blockkonzept zur übersichtlichen Gliederung von Programmen.|Kurzinfo }}
=='''Disposition'''==


[[ProgrammierenITBO-Teilmodul-4|zum Teilmodul 4]] [[Datei:Icon_Noun-internal-link-4974682.svg|verweis=ProgrammierenITBO-Teilmodul-4|30x30px]]


=='''Unterrichtsverlauf'''==
{{Box|Download|[[Datei:ProgrammingCourseDispositionV2.odt|ProgrammingCourseDispositionV1.odt|mini]]|Download }}


Die SuS werden für den Unterricht ganz unterschiedliche Vorkenntnisse mitbringen und unterschiedliches Interesse am Programmieren zeigen. Einige Schüler:innen werden erklären, dass sie schon programmieren können. Andere werden skeptisch sein, ob sie das je lernen werden und ob sie das überhaupt brauchen.
<br />


Wenn die hohen Erwartungen an das Programmieren in der Schule (… logisches und kritisches Denken, Kreativität, Teamarbeit, ...) erfüllt werden sollen, müssen sich die SuS auf ihre je eigene Art mit den Inhalten des Moduls Programmieren auseinander setzen können.
==='''Why should future teachers learn how to program?'''===


Zu jedem Teilmodul gibt es eine Anleitung, mit der die SuS in Gruppen (idealerweise Zweier-, nötigenfalls Dreiergruppen) selbständig arbeiten können (student edition). Die Lehrpersonen finden so Zeit, sich intensiver mit den Schülerinnen und Schülern zu befassen, die schon Erfahrung mitbringen oder dem Programmieren skeptisch gegenüber stehen. Dazu steht den Lehrpersonen zu jedem Teilmodul ein Begleitdokument zur Verfügung (teacher edition). Die skeptischen Schüler:innen so zu unterstützen, dass sie ihre Vorbehalte als Ansporn empfinden, und die erfahrenen Schüler:innen zur (selbst-) kritischen Auseinandersetzung mit den Inhalten der Teilmodule (oder wenigstens der Teilmodule 2 und 3) zu motivieren, wären erstrebenswerte Ziele.
Programming is an activity that results in a computer program. The fascinating thing about it is the variety of different tasks that can be solved with such programs.


Eine formative Lernkontrolle macht unter diesen Umständen keinen Sinn. Hingegen würde ein kollaborativer Texteditor (z.B. https://edupad.ch) den SuS ermöglichen, ihre Fragen und Kommentare zu den Aufgaben und Reflexionen laufend zu notieren und untereinander zu diskutieren. Bei Bedarf könnte die Lehrperson verlangen, dass alle SuS mindestens drei relevante Fragen und/oder Kommentare einbringen müssen.
There are numerous sources that provide answers to the question why children should learn to program. E.g. "Programming [is] as important as writing and reading.", "Every child should [...] have programmed once in his school career. Through programming, children acquire important skills for the future, such as creative and critical thinking, teamwork and much more.", "Programming is fun, promotes logical thinking, strengthens creativity and the ‹we-feeling›."


=='''Zeitbedarf'''==
Beat Döbeli Honegger (Department of Media and Computer Science at the Lucerne University of Teacher Education) gives a more differentiated answer in his article "Warum Informatik in der Schule?" by declaring computer science as part of general education with nine arguments ( [https://mia.phsz.ch/Informatikdidaktik/WarumInformatik Warum Informatik in der Schule?]):


Für die vier Teilmodule ist ein Zeitbedarf von je 2 Lektionen vorgesehen. Die Teile 1 und 2 bilden eine Einheit; deren Bearbeitung nimmt je nach Klasse vielleicht doch etwas mehr Zeit in Anspruch. In diesem Fall müsste eventuell auf Teilmodul 4 verzichtet werden.
{{Box|citation|* ''Argument 1'': constructionism ("The computer as a pupil")


=='''Disposition'''==
* ''Argument 2'': science ("Computer science belongs to general education since computer science has brought a third pillar to science through simulation.")


==='''Warum programmieren?'''===
* ''Argument 3'': object of thought ("The computer as an object of thought")


Programmieren ist eine Tätigkeit, deren Ergebnis ein Computer-Programm ist. Das Faszinierende daran ist die Vielfalt an unterschiedlichen Aufgaben, die mit solchen Programmen gelöst werden können.
* ''Argument 4'': problem solving ("Knowlegde about computer science also helps to solve problems outside of computer science.")


Warum sollen die angehenden ''Lehrpersonen'' programmieren lernen? Es gibt zahlreiche Quellen, die Antworten auf diese Frage liefern, zum Beispiel:
* ''Argument 5'': explanation of the world ("In order to understand and explain today's information society, knowledge of computer science is necessary.")


{{Box|Zitat|Programmieren [ist] so wichtig wie schreiben und lesen. Quelle: https://www.fritzundfraenzi.ch/gesellschaft/programmieren-so-wichtig-wie-schreiben-und-lesen/|Zitat }}
* ''Argument 6'': conceptual knowledge ("Knowledge of computer science helps to better understand the use of ICT.")


Beat Döbeli Honegger (Fachkern Medien und Informatik an der Pädagogischen Hochschule Luzern) gibt im Beitrag «[https://mia.phsz.ch/Informatikdidaktik/WarumInformatik Warum Informatik in der Schule?]» eine differenziertere Antwort, indem er Informatik mit neun Argumenten zur Allgemeinbildung zählt:
* ''Argument 7'': work technique ("Computer science can be used to practice precise planning, working, and communicating as part of a team.")


{{Box|Zitat|* Konstruktionismus-Argument ("Der Computer als Schüler:in")
* ''Argument 8'': motivation/interest ("With computer science, students interested in technology can be engaged.")


Wissenschaftsargument ("Informatik gehört zur Allgemeinbildung, weil Informatik mit Simulation ein drittes Standbein in die Wissenschaft gebracht hat.")
* ''Argument 9'': career choice|Zitat }}


Denkobjektargument ("Der Computer als Denkobjekt")


Problemlöseargument ("Informatikkenntnisse helfen auch beim Lösen von Problemen ausserhalb der Informatik.")
''Programming is an aspect of computer science''. The programming course at SSC-P is limited to the following objectives:


Welterklärungsargument ("Um die heutige Informationsgesellschaft verstehen und erklären zu können, sind Informatikkenntnisse notwendig.")
*The students of ‹Specialised Upper Secondary School - Occupational field of education› will later, as primary school teachers, develop their own teaching ideas on how computer programs can support their pupils in learning. Therefore, they should be able to program corresponding apps on their own (e.g., an index of words that the children use in their texts that grows over time; the index promotes the expansion of the vocabulary of the entire class and the weaker primary school pupils can easily "look up" the correct spelling of the words).


Konzeptwissenargument ("Informatikkenntnisse helfen, die Nutzung von ICT besser zu verstehen.")
*Primary school pupils should be able to use a computer as a tool for exploratory learning in "traditional" subjects such as mathematics, geometry or geography. The [https://www.worldcat.org/de/title/74666394 turtle graphics approach by Seymour Papert] (further developed and updated by [https://www.worldcat.org/de/title/877077313 Yasmin B. Kafai / Quinn Burke]) is well suited for this purpose. The students of ‹Specialised Upper Secondary School› should therefore acquire the concept of Turtle-Graphics, so that they can explain it later to their primary school pupils. As future teachers, they will then be able to set their own tasks that elementary school pupils can solve with turtle graphics.


Arbeitstechnikargument ("Mit Informatik lässt sich das präzise Planen, Arbeiten und Kommunizieren im Team üben.")
*The students should also understand how programs and other teaching materials can be published as Open Educational Resources (OER) to make it easier for teachers to prepare and hold lessons. This allows them to use IT applications for contemporary forms of collaboration.


Motivations-/Interesseargument ("Mit Informatik lassen sich Schülerinnen und Schüler mit technischem Interesse ansprechen.")
<br />


Berufswahl-Argument.|Zitat }}
==='''"Suitable" programming environments'''===


''Programmieren ist ein Teilaspekt der Informatik''. Das Modul «Programmieren» an der FMS Berufsfeld Pädagogik beschränkt sich auf folgende Ziele:


#Die Schülerinnen und Schüler der FMS Berufsfeld Pädagogik (kurz «SuS») werden später als Primarlehrpersonen eigene Ideen für den Unterricht entwickeln, wie Computerprogramme ihre Schülerinnen und Schüler beim Lernen unterstützen könnten. Sie sollen deshalb entsprechende Apps auch selbst programmieren können (z.B. ein mit der Zeit wachsendes Verzeichnis der Wörter, welche die Kinder in ihren eigenen Texten verwenden; das Verzeichnis fördert die Erweiterung des Wortschatzes der ganzen Klasse und die schwächere Primarschüler:innen können die korrekte Schreibweise der Wörter leicht «nachschlagen»). #Primarschülerinnen und Primarschüler sollen den Computer als Werkzeug für das entdeckende Lernen in «traditionellen» Fächern wie Mathematik, Geometrie oder Geografie nutzen können. Dazu eignet sich der [https://www.worldcat.org/de/title/74666394 Turtle-Grafik-Ansatz von Seymour Papert] ([https://www.worldcat.org/de/title/877077313 weiterentwickelt und aktualisiert von Yasmin B. Kafai / Quinn Burke]). Die SuS der FMS sollen sich deshalb das Konzept von Turtle-Grafiken aneignen, damit sie es später den Primarschüler:innen erklären können. Als angehende Lehrpersonen werden sie dann auch in der Lage sein, selbst Aufgaben zu stellen, die Primarschüler:innen mit Turtle-Grafiken lösen können. #Die SuS sollen auch verstehen, wie Programme und andere Unterrichtsmaterialien in Form von offenen Bildungsressourcen (Open Educational Resources, OER) veröffentlicht werden können, um Lehrkräften die Vorbereitung und Durchführung des Unterrichts zu erleichtern. Damit nützen sie Informatikanwendungen für zeitgemässe Formen der Kooperation.
Which programming environment is suitable for achieving the objectives mentioned above? Here are some selection criteria that were also decisive for the development of this course.


==='''«Passende» Programmierumgebungen'''===


*The programming environment must be user-friendly so that the students can get familiar with the basics of programming in the short time available for the programming course.


Welche Programmierumgebung eignet sich, um die genannten Ziele zu erreichen? Dazu seien einige Auswahlkriterien angeführt.
*It must support modern programming concepts (e.g. object and event orientation) so that the students can also master demanding programming projects.


Die Programmierumgebung muss benutzerfreundlich sein, damit sich die SuS in der kurzen für das Modul «Programmieren» zur Verfügung stehenden Zeit mit den Grundlagen des Programmierens vertraut machen können.
*The programming environment must be usable by primary school pupils. And it must support "turtle-like graphics" (according to the concept of Seymour Papert, 1967, at that time realised with the programming language Logo and turtles as moving objects[https://news.elearninginside.com/seymour-papert-logo-turtles-and-the-origin-of-educational-robots/ Kronk, Henry (2019): Seymour Papert LOGO Turtles, and the origin of educational robots.]).


Sie muss moderne Programmier-Konzepte unterstützen (z.B. Objekt- und Ereignisorientierung), damit die SuS damit auch anspruchsvolle Programmiervorhaben bewältigen können.
*The programming environment must support block-based programming. Text-based programming is not suitable for teaching in primary school.


Die Programmierumgebung muss von Primarschüler:innen genutzt werden können. Und sie muss «Turtle-Grafiken» unterstützen ([https://news.elearninginside.com/seymour-papert-logo-turtles-and-the-origin-of-educational-robots/ gemäss dem Konzept von Seymour Papert, 1967], damals realisiert mit der Programmiersprache Logo und Schildkröten – engl. turtles – als sich bewegende Objekte).
*Ideally, the programming environment should support the cooperative (further) development of programs.


Die Programmierumgebung muss die blockbasierte Programmierung unterstützen. Die textbasierte Programmierung eignet sich für den Unterricht in der Primarschule nicht.
*The programming environment should already be fairly widespread. With a large user group ("community"), it is more likely that the environment is continuously developed and also adapted to changing educational needs.


Idealerweise unterstützt die Programmierumgebung das kooperative (Weiter-) Entwickeln von Programmen.
*Educational Software should be as widely available as possible and remain so in order to make education accessible to all. Ideally, it should be supported by foundations that are independent of individuals or maintained by public institutions. To prevent it from being monopolised, it should be programmed open source.


Die Programmierumgebung sollte schon recht verbreitet sein. Mit einer grossen Nutzerschar («community») ist eher sichergestellt, dass die Umgebung laufend weiterentwickelt und auch an sich ändernde schulische Bedürfnisse angepasst wird.


Schulisch eingesetzte Software sollte möglichst allgemein verfügbar sein und es auch bleiben, damit Bildung für alle zugänglich ist. Idealerweise wird sie von personenunabhängigen Stiftungen oder auch Institutionen der öffentlichen Hand getragen. Damit sie nicht monopolisiert werden kann, sollte sie quelloffen programmiert sein.
A brief description of some well-known programming environments that are used or could be used for educational purposes in German-speaking countries (some of them also in English-speaking countries) can be found in the document [[Datei:ProgrammingCourseDispositionV2.odt| ProgrammingCourseDispositionV1.odt]]


Nachfolgend sind einige bekannte Programmierumgebungen, die im deutschsprachigen Raum für schulische Zwecke genutzt werden bzw. in Frage kämen, kurz beschrieben. Der Auswahl und der Reihenfolge der Programmierumgebungen liegt keine explizite Systematik zugrunde. Schliesslich wird die Wahl von Scratch als Programmierumgebung für den Unterricht an der Fachmittelschule Berufsfeld Pädagogik begründet.
<br />


Im Dokument [[Datei:ModulProgrammierenDisposition-v4.odt|mini]] sind einige bekannte Programmierumgebungen, die im deutschsprachigen Raum für schulische Zwecke genutzt werden bzw. in Frage kämen, kurz beschrieben ([https://xlogo.inf.ethz.ch/release/latest/ XlogoOnline], [https://www.swisseduc.ch/informatik/karatojava/kara/ Kara], [https://scratch.mit.edu Scratch], [https://snap.berkeley.edu Snap!], [http://www.boles.de/teaching/pkjava/solist/scratchkara.html ScratchKara], [http://www.python-online.ch WebTigerJython]). Der Auswahl und der Reihenfolge der Programmierumgebungen liegt keine explizite Systematik zugrunde.
==='''Selected programming environment: Scratch'''===


==='''Gewählte Programmierumgebung: Scratch'''===


The programming environment Scratch is very suitable for achieving the objectives of the programming course at ‹Specialised upper secondary schools - occupational field of education›.


Für das Erreichen der Ziele des Moduls «Programmieren» an der FMS Berufsfeld Pädagogik eignet sich dieProgrammierumgebung Scratch sehr gut.
With its support for modern programming concepts (object and event orientation, process communication), Scratch offers an environment that is generally suitable for programming at secondary schools.


Scratch bietet mit der Unterstützung moderner Programmierkonzepte (Objekt- und Ereignisorientierung, Prozesskommunikation) eine Umgebung, die sich allgemein für das Programmieren an Mittelschulen eignet.
Furthermore, Scratch is also specifically suitable for programming with children, especially for exploratory learning with turtle graphics.


Scratch eignet sich aber auch speziell für das Programmieren mit Kindern, insbesondere für das entdeckende Lernen mit Turtle-Grafiken.
Scratch was developed in 2007 and is now used in many schools at different levels. Scratch is free of charge and available in over 70 languages. The Scratch community comprises 42 million project creators. The Scratch Foundation, a non-profit organisation, ensures the long-term availability and further development of Scratch.  


Scratch wurde 2007 entwickelt und wird mittlerweile an vielen Schulen in verschiedenen Schulstufen eingesetzt. Scratch ist kostenlos und in über 70 Sprachen verfügbar. Die Scratch-Community umfasst 42 Millionen Projektersteller:innen. Die Scratch Foundation, eine Non-Profit-Organisation, gewährleistet die längerfristige Verfügbarkeit und Weiterentwicklung von Scratch.
There is also a large selection of freely available teaching materials for Scratch. Scratch is web-based. Scratch users can therefore access their projects from any device with an internet connection (including tablets). Users can also exchange projects and further develop them together or individually (remix).


Zu Scratch gibt es auch eine grosse Auswahl an frei verfügbaren Unterrichtsmaterialien. Scratch ist webbasiert. Die Nutzer:innen von Scratch können deshalb mit irgendwelchen Geräten mit Internetanschluss (auch Tablets) auf ihre Projekte zugreifen. Die Nutzer:innen können Projekte auch austauschen und gemeinsam oder getrennt weiterentwickeln (remix).
Those who want to use Scratch offline can install the programming environment locally on their own device. The app is available for MS Windows, macOS, ChromeOS and Android ([https://scratch.mit.edu/download download page]). There is no Scratch app for iOS and iPadOS (iPhone and iPad).


Wer Scratch offline nutzen will, kann die Programmierumgebung lokal auf dem eigenen Gerät installieren. Es gibt die App für MS-Windows, macOS, ChromeOS und Android ([https://scratch.mit.edu/download Download-Seite]). Für iOS und iPadOS (iPhone und iPad) gibt es keine Scratch-App.
----


Authors: Bruno Wenk, Dieter Burkhard
Authors: Bruno Wenk, Dieter Burkhard


Translations: Patricia Berchtel
Translation: Patricia Berchtel


[[Kategorie:Informatik]]
__INDEXIEREN__


{{DEFAULTSORT:Programming for prospective educators (using Scratch) }}
{{DEFAULTSORT:Programming for prospective educators (using Scratch) }}


INDEXIEREN
[[Kategorie:Informatik]]
[[Kategorie:Programmieren]]  
[[Kategorie:Programmieren]]  
[[Kategorie:Scratch]]  
[[Kategorie:Scratch]]  
[[Kategorie:Lernpfad]]
[[Kategorie:Lernpfad]]

Aktuelle Version vom 21. Januar 2024, 15:38 Uhr

| unit 1 → | unit 2 → | unit 3 → | unit 4 → |


Deutschsprachige Originalversion: Programmieren für angehende Pädagog:innen (mit Hilfe von Scratch) →


Introduction

This course has been developed for students of Swiss specialised upper secondary schools in the occupational field of education (=pedagogy), subsequently abbreviated as «SSC-P».

The course comprises four units of 2 lessons each. For each unit, instructions are available for the students and a handout for the teacher. In addition, the templates and sample solutions for the programming tasks are published in studio ITBO Programming on the Scratch portal.

unit 1

In unit 1, the students will get to know the programming environment of Scratch and the basics of programming by means of a sample project. They will implement a matchstick puzzle (model construction). Without too many theoretical considerations, the students will learn basic concepts of "professional" programming (object and event orientation, process communication). Additionally, the students will get acquainted with a Scratch-extension (text-to-speech).

Objectives unit 1
  • The students get to know the Scratch programming environment and how to use it in order to create and manage their own programming projects.
  • They learn the basic elements of the Scratch programming language and use them to "write" their first simple programs.
  • The students reflect on their experiences with programming.
  • They also learn (without too many theoretical considerations) basic concepts of "professional" programming (object and event orientation, process communication).

jump to unit 1 Icon Noun-internal-link-4974682.svg


unit 2

Unit 2 focuses on the concept of turtle graphics and the use of Scratch in primary school. Using the example of "properties of regular polygons", the students can experience exploratory learning with turtle graphics for themselves. In addition, the students learn about and apply the essential "basic building blocks" of programs (sequence, repetition, conditional execution, variables).

Objectives unit 2
  • The students get more familiar with Scratch.
  • They learn about and apply the "basic building blocks" of programs (sequence, repetition, conditional execution, variables).
  • The students understand the concept of turtle graphics for the exploratory learning in primary school.
  • They deal with the programming of turtle graphics by means of a concrete example.

jump to unit 2 Icon Noun-internal-link-4974682.svg


unit 3

Unit 3 introduces the students to the design and programming of multimedia stories / animations in Scratch.

Objectives unit 3
  • The students analyse a simple interactive, multimedia "story". They complete the "story" with an additional scene.
  • The students learn how to design and create "scenes" and "scene changes".
  • They learn how to design and implement animations.

jump to unit 3 Icon Noun-internal-link-4974682.svg

unit 4

In unit 4, the students deal with the simulation of a robotic lawnmower. They rely on the block concept, which makes their work much easier and provides a clearer outline of the program. Using this example, the students reflect on the problem of the determinacy and correctness of programmed solutions to problems.

Objectives unit 4
  • The students understand a simulation as a way of searching a solution for a problem.
  • They analyse and test the provided example of the simulation of a robotic lawnmower.
  • The students supplement the simulation example with an algorithm that they develop on their own.
  • They understand the block concept as a means to outline programs clearly.

jump to unit 4 Icon Noun-internal-link-4974682.svg


External devices or systems (e.g. LEGO Mindstorm) were not taken into account. Such devices and systems are a matter of a robotics course.

"Data structures" are not sufficiently covered in this programming course. This is a shortcoming inherent in many instructions on how to learn programming. However, the given time budget of 8 lessons does not allow the topic of "data structures" to be dealt with adequately. It would make sense to discuss "data structures" in the context of social media. The students would then be able to recognise the importance and functioning of modern, networked data structures (linked data) and understand why companies are so interested in social media.

Teaching process

The students will bring different levels of prior knowledge to the course and show different levels of interest in programming. Some students will declare that they already know how to program. Others will be sceptical about whether they will ever learn it and whether they need it at all.

If the high expectations of programming in school (... logical and critical thinking, creativity, teamwork, ...) are to be fulfilled, the students must deal with the contents of the programming course in their own way.

There are instructions for each unit (student editions), with which the students can work independently in groups (ideally in pairs, if necessary in groups of three). This gives the teacher time to deal more intensively with the students who already have experience or are sceptical about programming. For this purpose, teachers have an accompanying document for each unit (teacher edition). Supporting the sceptical students in such a way that they experience their reservations as an encouragement, and motivating the experienced students to (self-)critically examine the contents of selected units would be desirable goals.

A formative evaluation of the learning outcomes does not make sense in this context. Conversely, a collaborative text editor (e.g. https://edupad.ch) would enable the students to continuously note down and discuss their questions / comments and reflections on the tasks . If necessary, the teacher might require all students to contribute at least three relevant questions and/or comments.

Time requirement

The time required for the four units is 2 lessons for each. Units 1 and 2 form a single lesson; depending on the class, they may take a little more time to complete. In that case, unit 4 might have to be omitted.

Material and sample solutions

The documents for the programming course (teacher editions, student editions) are freely accessible on this server (unterrichten.zum.de).

The templates and sample solutions to the tasks are published as projects on the Scratch platform in the studio ITBO Programming.

Disposition


Why should future teachers learn how to program?

Programming is an activity that results in a computer program. The fascinating thing about it is the variety of different tasks that can be solved with such programs.

There are numerous sources that provide answers to the question why children should learn to program. E.g. "Programming [is] as important as writing and reading.", "Every child should [...] have programmed once in his school career. Through programming, children acquire important skills for the future, such as creative and critical thinking, teamwork and much more.", "Programming is fun, promotes logical thinking, strengthens creativity and the ‹we-feeling›."

Beat Döbeli Honegger (Department of Media and Computer Science at the Lucerne University of Teacher Education) gives a more differentiated answer in his article "Warum Informatik in der Schule?" by declaring computer science as part of general education with nine arguments ( Warum Informatik in der Schule?):

citation
  • Argument 1: constructionism ("The computer as a pupil")
  • Argument 2: science ("Computer science belongs to general education since computer science has brought a third pillar to science through simulation.")
  • Argument 3: object of thought ("The computer as an object of thought")
  • Argument 4: problem solving ("Knowlegde about computer science also helps to solve problems outside of computer science.")
  • Argument 5: explanation of the world ("In order to understand and explain today's information society, knowledge of computer science is necessary.")
  • Argument 6: conceptual knowledge ("Knowledge of computer science helps to better understand the use of ICT.")
  • Argument 7: work technique ("Computer science can be used to practice precise planning, working, and communicating as part of a team.")
  • Argument 8: motivation/interest ("With computer science, students interested in technology can be engaged.")
  • Argument 9: career choice


Programming is an aspect of computer science. The programming course at SSC-P is limited to the following objectives:

  • The students of ‹Specialised Upper Secondary School - Occupational field of education› will later, as primary school teachers, develop their own teaching ideas on how computer programs can support their pupils in learning. Therefore, they should be able to program corresponding apps on their own (e.g., an index of words that the children use in their texts that grows over time; the index promotes the expansion of the vocabulary of the entire class and the weaker primary school pupils can easily "look up" the correct spelling of the words).
  • Primary school pupils should be able to use a computer as a tool for exploratory learning in "traditional" subjects such as mathematics, geometry or geography. The turtle graphics approach by Seymour Papert (further developed and updated by Yasmin B. Kafai / Quinn Burke) is well suited for this purpose. The students of ‹Specialised Upper Secondary School› should therefore acquire the concept of Turtle-Graphics, so that they can explain it later to their primary school pupils. As future teachers, they will then be able to set their own tasks that elementary school pupils can solve with turtle graphics.
  • The students should also understand how programs and other teaching materials can be published as Open Educational Resources (OER) to make it easier for teachers to prepare and hold lessons. This allows them to use IT applications for contemporary forms of collaboration.


"Suitable" programming environments

Which programming environment is suitable for achieving the objectives mentioned above? Here are some selection criteria that were also decisive for the development of this course.


  • The programming environment must be user-friendly so that the students can get familiar with the basics of programming in the short time available for the programming course.
  • It must support modern programming concepts (e.g. object and event orientation) so that the students can also master demanding programming projects.
  • The programming environment must support block-based programming. Text-based programming is not suitable for teaching in primary school.
  • Ideally, the programming environment should support the cooperative (further) development of programs.
  • The programming environment should already be fairly widespread. With a large user group ("community"), it is more likely that the environment is continuously developed and also adapted to changing educational needs.
  • Educational Software should be as widely available as possible and remain so in order to make education accessible to all. Ideally, it should be supported by foundations that are independent of individuals or maintained by public institutions. To prevent it from being monopolised, it should be programmed open source.


A brief description of some well-known programming environments that are used or could be used for educational purposes in German-speaking countries (some of them also in English-speaking countries) can be found in the document Datei:ProgrammingCourseDispositionV2.odt


Selected programming environment: Scratch

The programming environment Scratch is very suitable for achieving the objectives of the programming course at ‹Specialised upper secondary schools - occupational field of education›.

With its support for modern programming concepts (object and event orientation, process communication), Scratch offers an environment that is generally suitable for programming at secondary schools.

Furthermore, Scratch is also specifically suitable for programming with children, especially for exploratory learning with turtle graphics.

Scratch was developed in 2007 and is now used in many schools at different levels. Scratch is free of charge and available in over 70 languages. The Scratch community comprises 42 million project creators. The Scratch Foundation, a non-profit organisation, ensures the long-term availability and further development of Scratch.

There is also a large selection of freely available teaching materials for Scratch. Scratch is web-based. Scratch users can therefore access their projects from any device with an internet connection (including tablets). Users can also exchange projects and further develop them together or individually (remix).

Those who want to use Scratch offline can install the programming environment locally on their own device. The app is available for MS Windows, macOS, ChromeOS and Android (download page). There is no Scratch app for iOS and iPadOS (iPhone and iPad).


Authors: Bruno Wenk, Dieter Burkhard

Translation: Patricia Berchtel