ITBO-Programming-part-4 und ITBO-Programming-part-2: Unterschied zwischen den Seiten

Aus ZUM-Unterrichten
(Unterschied zwischen Seiten)
Markierung: 2017-Quelltext-Bearbeitung
 
Markierung: 2017-Quelltext-Bearbeitung
 
Zeile 1: Zeile 1:
{{DISPLAYTITLE:Programming for prospective educators (using Scratch) - unit 4}}  
{{DISPLAYTITLE:Programming for prospective educators (using Scratch) - unit 2}}  


| [[Programming_for_prospective_educators_(using_Scratch)| ⇠ back to main page]] | [[ITBO-Programming-part-1| ⇠ unit 1]] | [[ITBO-Programming-part-2| unit 2]] | [[ITBO-Programming-part-3| unit 3]] | '''unit 4''' |
| [[Programming_for_prospective_educators_(using_Scratch)| ⇠ back to main page]] | [[ITBO-Programming-part-1| ⇠ unit 1]] | '''unit 2'''  | [[ITBO-Programming-part-3| unit 3 →]] | [[ITBO-Programming-part-4| unit 4 →]]|


=='''Guidance for students (Open Document Format ODF)'''== {{Box|Download|[[Datei:ProgrammierenTeil2StudentEditionV4.odt|mini]]|Download }}


=='''Guidance for students (Open Document Format ODF)'''== {{Box|Download|[[Datei:ProgrammingPart4StudentEditionV2.odt|mini]]|Download }}


=='''Handout for teachers'''==
=='''Handout for teachers'''== {{Box|Download|[[Datei:ProgrammierenTeil2TeacherEditionV4.odt|mini]]|Download }}


{{Box|Download|[[Datei:ProgrammingPart4TeacherEditionV1.odt|mini]]|Download }}


{{Box|Objectives|* The students shall understand a simulation as a way of searching a solution for a problem.
{{Box|Objectives|* The students will get more familiar with Scratch.


* They will analyse and test the provided example of the simulation of a robotic lawnmower.
* They will learn about and apply the "basic building blocks" of programs (sequence, repetition, conditional execution, variables).


* The students supplement the simulation example with an algorithm that they will develop on their own.
* The students shall understand the concept of turtle graphics for the exploratory learning in primary school.


* They shall understand the block concept as a means to clearly outline programs.|Kurzinfo }}
* They will deal with the programming of turtle graphics by means of a concrete example.|Kurzinfo }}




==='''Introduction'''===
==='''Introduction'''===


:A computer simulation is a program that models a system (e.g. the streets in a neighbourhood with high traffic volumes) and shows (often with a visualisation) how the simulated system behaves under different conditions (e.g. if speed limit 30 was introduced, or if some streets were converted to one-way streets). Computer simulations are useful, for example, when experiments with the real system of interest are too costly, too dangerous or even impossible. And even when experiments are possible, comparison with simulations often helps to better understand the behaviour of the individual components of a system.
:From unit 1 of the programming course, the students of ‹Specialised Upper Secondary School - Occupational field of education› are familiar with programming as a process for formulating and implementing computer-based solutions to problems. They are familiar with basic concepts of programming (methodical approach, object and event orientation, process communication).


:In this unit, the students analyse the example of a simulation program for a lawn mowing robot. They supplement the program with a self-developed algorithm that causes the robotic lawnmower to "return" to its box at the end of the simulation. The students learn about and apply the concept of structuring programs with blocks.
:The example the students will work on in unit 2 of this programming course is a potential lesson in primary school (according to the Swiss curriculum "Lehrplan 21" around the end of grade 4). It has two main focuses.


:The lesson might be started with an advance organiser: Who knows of robotic lawnmowers or hoovers from experience (at home, from neighbours, etc.)? Do these robots mow or hoover the lawn or room completely, right down to the last corner around all obstacles? Can this be proven, estimated or verified? What do you think about a simulation?
:The concept of turtle graphics by  [https://de.wikipedia.org/wiki/Seymour_Papert Seymour Papert] forms one focus. The other one is learning and applying the "basic building blocks" of programs (sequence, repetition, conditional execution, variable).


==='''Getting familiar with the example program'''===
:Programming for children in primary school can be designed in another way than a programming class in high school. With turtle graphics, primary school children can experiment and immediately see on the screen whether they are correct in their reasoning. If not, they adjust their "program" and observe and reflect on the changes brought about. The students should get to know the idea of turtle graphics by Seymour Papert, so that they can later use programming as a meaningful tool for exploratory learning as teachers in primary school.


<br />
:The introduction also provides a first look at the concept of turtle graphics.


[[Datei:BildschirmaufnahmeMähroboterSimulation.png|zentriert|mini]]
:With these two focal points, Part 2 of the programming course becomes a nesting of two distinct sequences of lessons. In order to enable the  students to recognise the intention behind this nesting, they may need support.


==='''Example of a possible lesson with turtle graphics'''===


:For this unit, the students need the program (project) "RobotLawnMowerSimulation-Template". It is published on the Scratch platform and can be downloaded from there to one´s own computer: https://scratch.mit.edu/projects/878189075/
:The students are asked to assume that they have to teach the topic "regular polygons" in the primary school. They shall give the primary pupils an exploratory learning task based on turtle graphics in Scratch.


:The program simulates a robotic lawnmower on a plot of land with shrubs. When the lawnmower touches an obstacle (a shrub, the edge of the plot), it backs up a bit and then rotates through a random angle between 15 and 30 degrees. Then the lawnmower continues straight ahead until it touches another obstacle.
:The students can access the template for the task at: https://scratch.mit.edu/projects/698418539


:The students should start the program several times and take a screenshot of the simulation result. When the students compare the paths of the lawnmower, they should realise that the results differ and understand why this is so.
[[Datei:TurtleGrafik.png|zentriert|mini]]


:Although the simulation always ends after the same number of steps (the algorithm is ''terminating''), the result of the program is always different. The result of the program execution is ''non-determined'': In each simulation, the paths are different and the robotic lawnmower ends up in a different place.
:Next, the future teachers are asked to put themselves in the pupils's place and program the turtle graphic on their own.


:But is the algorithm at least ''robust'', i.e. does it still work reliably when the execution conditions change?
:The instructions for the students are designed in the same way as they could be given to the pupils in primary school. Two imaginary pupils, Alice and Bob, give the necessary explanations in the form of a dialogue.
 
:The students must understand what an algorithm is. They need to take note of the terms terminating, non-determined and robust. Thus they should become aware of the fact that an algorithm does not necessarily always give exactly the same solution when one runs it several times.
 
:The students should modify the program in order to assess the results of the simulation under different conditions. For this purpose, they place an additional obstacle (house) on the "plot of land" .
 
:The students must adjust the relevant execution condition in the block "Mowing" so that the robotic lawnmower recognises the house as an obstacle.
   
   


[[Datei:CodeSequenzHindernisErkennen.png|zentriert|mini]]
===='''The "basic building blocks" of programs'''====


:Perhaps the students need support in this step. They should make sure that the robotic lawnmower doesn't "mow through the house".
:The students have programmed the turtle graphic and experienced how primary school pupils can use the computer for exploratory learning with Scratch.
 
==='''The block concept for the structuring of programs'''===


:The script of the simulation program is very simple.
:The students should now switch back to their role as a future teacher.


[[Datei:SkriptSimulationsprogramm.png|zentriert|mini]]
:The turtle graphic that the students have programmed is now used as a basis for learning about and applying the "basic building blocks" of programs: sequence, repetition, conditional execution, variable.
   
   


:The script comprises two blocks: "Initialisation" and "Mowing". The individual commands for the initialisation and the control of the robotic lawnmower are defined as separate blocks. The division into blocks makes the program easy to understand.
{{Box|Reflection|*Discovery learning with turtle graphics is different from programming an application to solve a problem.


:The students should realise that programs structured in (script-) blocks are clearer and easier to understand. They should therefore implement the following extension of the simulation program using a block.
*How would you describe this difference?|Hervorhebung1 }}
   
   


==='''Extending the algorithm to control the robotic lawnmower '''===
{{Box|Sample solution:|* https://scratch.mit.edu/projects/671362882|Lösung }}
 
:The lawnmower stops somewhere after the number of given steps. However, the lawnmower should drive back into the box in the end.
 
:The students shall design an algorithm that leads the lawnmower back to the box and define the block "returnToBox" for this purpose.
 
:This is not a trivial task. The algorithm for the return of the lawnmower to the box must, like the algorithm for mowing, make it possible to "go around" obstacles. While the algorithm for mowing is non-determined, the algorithm for returning to the box must always deliver the same result, i.e. it must be determined. Therefore, the algorithm for mowing cannot simply be copied. Using this example, the students can discuss very basic considerations about algorithms.
 
:The students should test their algorithm. It might be helpful to discuss possible test strategies with the students beforehand. The lawnmower stops at a random position at the end of the simulation. Would a few attempts be enough to test the algorithm for returning to the box? Or would it be better to position the lawnmower "by hand" at a few selected points and test whether it returns to the box with the self-designed algorithm?
 
:In any case, the fundamental question regarding the correctness of programs is raised (once again) in the final reflection.
 
<br />
 
{{Box|Reflection|*Discuss the usefulness of the simulation from the point of view of …
::- a company offering robotic mowers and
::- a person who wants to buy a robotic mower.
*Probably in none of the completed simulations the "lawn" has been completely "mowed". Do we have to accept that even with computers, completely satisfactory solutions cannot be found for all problems? Do we have to give up warranties for programs?
 
*Are you aware of other areas of applications where simulations are useful or even necessary?
 
*Discuss possible risks that could arise when we transfer simulation results to reality.|Hervorhebung1 }}
 
 
{{Box|Sample solution|* https://scratch.mit.edu/projects/878190948/|Lösung }}


----
----
Zeile 104: Zeile 70:
Translation: Patricia Berchtel
Translation: Patricia Berchtel


 
__INDEXIEREN__
 
[[Kategorie:Remix]]
__INDEXIEREN__
[[Kategorie:Informatik]]  
[[Kategorie:Informatik]]  
[[Kategorie:Programmieren]]  
[[Kategorie:Programmieren]]  
[[Kategorie:Scratch]]  
[[Kategorie:Scratch]]  
[[Kategorie:Simulation]]
[[Kategorie:Turtle-Grafik]]
[[Kategorie:Seymour Papert]]

Version vom 4. August 2023, 07:33 Uhr


| ⇠ back to main page | ⇠ unit 1 | unit 2 | unit 3 → | unit 4 →|


Guidance for students (Open Document Format ODF)


Handout for teachers


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


Introduction

From unit 1 of the programming course, the students of ‹Specialised Upper Secondary School - Occupational field of education› are familiar with programming as a process for formulating and implementing computer-based solutions to problems. They are familiar with basic concepts of programming (methodical approach, object and event orientation, process communication).
The example the students will work on in unit 2 of this programming course is a potential lesson in primary school (according to the Swiss curriculum "Lehrplan 21" around the end of grade 4). It has two main focuses.
The concept of turtle graphics by Seymour Papert forms one focus. The other one is learning and applying the "basic building blocks" of programs (sequence, repetition, conditional execution, variable).
Programming for children in primary school can be designed in another way than a programming class in high school. With turtle graphics, primary school children can experiment and immediately see on the screen whether they are correct in their reasoning. If not, they adjust their "program" and observe and reflect on the changes brought about. The students should get to know the idea of turtle graphics by Seymour Papert, so that they can later use programming as a meaningful tool for exploratory learning as teachers in primary school.
The introduction also provides a first look at the concept of turtle graphics.
With these two focal points, Part 2 of the programming course becomes a nesting of two distinct sequences of lessons. In order to enable the students to recognise the intention behind this nesting, they may need support.


Example of a possible lesson with turtle graphics

The students are asked to assume that they have to teach the topic "regular polygons" in the primary school. They shall give the primary pupils an exploratory learning task based on turtle graphics in Scratch.
The students can access the template for the task at: https://scratch.mit.edu/projects/698418539
TurtleGrafik.png
Next, the future teachers are asked to put themselves in the pupils's place and program the turtle graphic on their own.
The instructions for the students are designed in the same way as they could be given to the pupils in primary school. Two imaginary pupils, Alice and Bob, give the necessary explanations in the form of a dialogue.


The "basic building blocks" of programs

The students have programmed the turtle graphic and experienced how primary school pupils can use the computer for exploratory learning with Scratch.
The students should now switch back to their role as a future teacher.
The turtle graphic that the students have programmed is now used as a basis for learning about and applying the "basic building blocks" of programs: sequence, repetition, conditional execution, variable.


Reflection
  • Discovery learning with turtle graphics is different from programming an application to solve a problem.
  • How would you describe this difference?



Authors: Bruno Wenk, Dieter Burkhard

Translation: Patricia Berchtel