VPython goes to School
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Subtitle |
| |
Title of Series | ||
Part Number | 106 | |
Number of Parts | 119 | |
Author | ||
License | CC Attribution 3.0 Unported: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/20005 (DOI) | |
Publisher | ||
Release Date | ||
Language | ||
Production Place | Berlin |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
| |
Keywords |
EuroPython 2014105 / 119
1
2
9
10
11
13
15
17
22
23
24
27
28
41
44
46
49
56
78
79
80
81
84
97
98
99
101
102
104
105
107
109
110
111
112
113
116
118
119
00:00
CodeStudent's t-testPlanningMortality rateDecimalRight angleEndliche ModelltheorieComputer animationLecture/Conference
00:38
ComputerStudent's t-testBerlin (carriage)Self-organizationDampingQuicksortForestXMLComputer animationLecture/Conference
01:16
RobotNeuroinformatikCondition numberComputer programmingComputer animationLecture/Conference
01:37
PlastikkarteEndliche ModelltheorieComputer programmingComputer animation
01:56
Line (geometry)Lecture/ConferenceComputer animation
02:43
CodeNeuroinformatikComputer scienceGroup actionFormal languageCodeComputer animationLecture/Conference
03:08
Formal languagePresentation of a groupConstructivism (mathematics)Right angleField (computer science)Process (computing)AreaComputer animationLecture/Conference
04:09
Binary fileWeb 2.0Module (mathematics)WebsiteMetropolitan area networkOpen setZoom lensShared memoryVisualization (computer graphics)Computer animation
04:35
Metropolitan area networkArmUnruh effectIntegrated development environmentCAN busElectronic visual displayWebsiteNavigationComputer programmingRing (mathematics)Projective planeText editorMortality rateIntegrated development environmentStudent's t-testExterior algebraNormal (geometry)Lecture/ConferenceComputer animation
05:26
Integrated development environmentWeb crawlerPresentation of a groupTerm (mathematics)Visualization (computer graphics)CodeSphereLecture/Conference
05:49
Metropolitan area networkVisual systemValue-added networkDivision (mathematics)Haar measurePersonal area networkProjective planeSpherePresentation of a groupLine (geometry)Student's t-testProgrammer (hardware)Object (grammar)CodeCoefficient of determinationMultiplication signTexture mappingComputer animation
07:15
Metropolitan area networkVisual systemArithmetic logic unitEuler anglesModule (mathematics)Presentation of a groupCASE <Informatik>Object (grammar)Cylinder (geometry)Position operatorAttribute grammarRadiusVariable (mathematics)Computer animation
07:51
CASE <Informatik>Attribute grammarObject (grammar)Lecture/Conference
08:10
Visual systemMetropolitan area networkBinary fileCartesian coordinate systemGrand Unified TheoryDemosceneSingle-precision floating-point formatSimulationMoment (mathematics)Game theoryEvent horizonIntegrated development environmentDemosceneClique-widthResultantGroup actionWeightDynamical systemFrame problemObject (grammar)Endliche ModelltheorieMereologyProcess (computing)Computer programmingVirtual realitySingle-precision floating-point formatFluid staticsComputer animationXML
09:32
Complex (psychology)Computer simulationEvent horizonStudent's t-testGame theoryType theoryObject (grammar)Lecture/Conference
10:01
Type theoryFrame problemEllipsoidCylinder (geometry)CuboidPoint (geometry)Ring (mathematics)HelixSlide ruleObject (grammar)Point (geometry)Copyright infringementComplex (psychology)Loop (music)Type theoryComputer animation
10:26
Computer iconMetropolitan area networkDemosceneVisual systemValue-added networkStructured programmingData structureSequencePoint (geometry)Loop (music)Computer programmingSphereComputer animationLecture/Conference
10:53
Metropolitan area networkVisual systemRevision controlPointer (computer programming)Arithmetic logic unitPosition operatorSphereMultiplication signCASE <Informatik>Loop (music)Demoscene
11:27
Bit error rateTime zoneMetropolitan area networkNewton's law of universal gravitationArtificial neural networkInheritance (object-oriented programming)DemosceneAnglePersonal area networkArithmetic logic unitVisual systemDensity of statesCartesian coordinate systemSet (mathematics)CASE <Informatik>Object (grammar)MathematicsTrigonometryLibrary (computing)Connected spaceArrow of timeSineTrigonometric functionsPiFunctional (mathematics)XML
12:02
Line (geometry)Functional (mathematics)CASE <Informatik>Computer programmingDemosceneResultantObject (grammar)Lecture/Conference
12:24
Metropolitan area networkAngleDemosceneLine (geometry)DemosceneResultantCodeXMLComputer animationLecture/Conference
12:58
Maxima and minimaVisual systemMetropolitan area networkArithmetic meanStudent's t-testLine (geometry)CASE <Informatik>Right angleComputer animationLecture/Conference
13:25
Machine visionNewton's law of universal gravitationMetropolitan area networkVisual systemDemosceneCartesian coordinate systemAngleTotal S.A.Arithmetic logic unitValue-added networkLogarithmBit rateLine (geometry)Object (grammar)CASE <Informatik>Local ringResultantBit rateMaxima and minimaMultiplication signWordXMLComputer animation
14:11
Value-added networkMetropolitan area networkState of matterStudent's t-testCodeMathematicsConnected spaceProcess (computing)Arithmetic meanNeuroinformatikModule (mathematics)Computer programmingGraph (mathematics)Functional (mathematics)Visualization (computer graphics)TrigonometryComputer scienceLeakLecture/Conference
15:32
Visual systemGraph (mathematics)Metropolitan area networkBeat (acoustics)DemosceneCartesian coordinate systemValue-added networkAngleMaxima and minimaArithmetic logic unitComputer iconData acquisitionOvalGamma functionMusical ensembleGrand Unified TheoryFunctional (mathematics)Graph (mathematics)Connected spaceMathematicsResultantBit rateDiagramComputer animation
16:44
DisintegrationUniformer RaumComputer networkConstructor (object-oriented programming)SoftwareComputer animation
17:11
SoftwareINTEGRALProcess (computing)Connected spaceLecture/Conference
17:37
Connected spacePhysicalismVideoconferencingComputer scienceLevel (video gaming)Multiplication signCoordinate systemAverageComputational linguisticsUniverse (mathematics)GeometryMathematicsComputer animationLecture/Conference
18:34
Coordinate systemPhysical systemDemosceneCartesian coordinate systemTerm (mathematics)Group actionFrame problemEndliche ModelltheorieTrigonometryConnected spaceComputer fileChemical equationSpacetimeAcoustic shadowVector spaceTexture mappingObject (grammar)Computer animation
19:17
Product (business)Software testingSocial classContext awarenessResultantEndliche ModelltheorieProcess (computing)Product (business)MathematicsComputer animation
19:46
Visual systemSineMetropolitan area networkHigher-order logicSicComputer iconArmCuboidMaxima and minimaStudent's t-testData miningProgrammschleifeComputer animation
20:12
Metropolitan area networkMusical ensembleInheritance (object-oriented programming)SineNewton's law of universal gravitationDensity of statesPosition operatorRandomizationStudent's t-testData miningComputer animation
20:42
Maxima and minimaData acquisitionMusical ensembleVisual systemDensity of statesInternet forumMetropolitan area networkDiscrete element methodForm (programming)Information systemsGamma functionSoftware engineeringStudent's t-testData miningConnected spaceCASE <Informatik>Right angleXML
21:09
Graph (mathematics)Musical ensembleData Encryption StandardVisual systemSineMetropolitan area networkCovering spaceArmDivision (mathematics)Gamma functionComputer animation
21:29
SineVisual systemMetropolitan area networkCartesian coordinate systemPersonal area networkRadiusDuality (mathematics)Student's t-testNeuroinformatikObservational studyComputer scienceProgrammer (hardware)CASE <Informatik>Data miningComputer animation
21:57
Binary fileMetropolitan area networkValue-added networkMusical ensembleArtificial neural networkZoom lensMountain passTabu searchAliasingChi-squared distributionCovering spacePointer (computer programming)Reduction of orderComputer programmingOrder (biology)MereologySoftware testingReal numberStudent's t-testBlock (periodic table)Source codeLecture/ConferenceComputer animation
22:26
Metropolitan area networkSoftware testingAreaMaxima and minimaValue-added networkTestdatenThomas KuhnComputer iconStorage area networkPrisoner's dilemmaFrequencyResultantCASE <Informatik>NeuroinformatikPoint (geometry)StatisticsRevision controlGraph coloring
23:10
Newton's law of universal gravitationInsertion lossMetropolitan area networkValue-added networkBinary fileRevision controlGraph coloringLecture/ConferenceSource codeComputer animation
23:29
Metropolitan area networkGame theorySimulationEvent horizonDemosceneMoment (mathematics)Group actionStudent's t-testFrame problemData miningEvent horizonLecture/ConferenceComputer animation
23:51
Metropolitan area networkGamma functionPersonal area networkInterface (computing)Integrated development environmentMaxima and minimaParallel portPoint (geometry)Value-added networkLimit (category theory)Java appletPascal's triangleNP-hardBridging (networking)Logical constantVariable (mathematics)IterationCAN busElement (mathematics)Visual systemMIDINormed vector spaceMorphingCuboidLine (geometry)Point (geometry)WeightLimit (category theory)DigitizingCodeSphereFrame problemBridging (networking)Electronic mailing listTheoremElectric generatorResultantLecture/ConferenceComputer animation
Transcript: English(auto-generated)
00:15
All right, welcome back, everybody. Once again, I'm Austin from 60 North up in Norway.
00:21
And in this session, we're going to hear from Maurizio about using vPython in high school. Thank you. So welcome, everyone. vPython goes to school and 3D for ordinary mortals or students. And this is our plan for today.
00:43
For now, introduction. So who am I? I'm a teacher. I teach in high school. I teach also in primary school and middle school. I'm also a Scratch Day organizer. And I'm a Coder Dojo mentor, too.
01:03
So who am I not? I'm not a guru of vPython or a czar of Python. Who are you? Someone of you is a teacher? OK, that's nice.
01:24
Someone of you already knows vPython? OK. So I want to talk about computational thinking, computational modeling, and educational programming
01:40
with vPython. So I want to show you some codes. The subtopic, the aim is to teach how to become, to be and to become smart, hard to use intelligence. So here, I want to start from the etymology of this word.
02:05
Intelligence is from Latin, intus legere, interlegere. So we have something that we have many things. And we have to collect them together. And also, we have to read between the lines.
02:24
This is something deep. So we want to teach. I want to teach to be intelligent in this sense, deep. My educational ratio of my talk, of my work,
02:43
is to find tools and pathways to introduce how to think and code, how to think like a computer scientist, but how to think like a human being. Primary in secondary school. So we have some general actions.
03:04
Coding is difficult. We still don't have the best language for everyone. I don't want to be heretical here at the Python conference. But I don't think that there is a preferred language for everyone.
03:21
I prefer Python. And I use it at school since 2006. But I think that every mind, every pupil has its own way to learn. So we still don't have the best method, pedagogy,
03:44
for everyone. So we have constructivism. We have behavioral process. We have many things in this field, in this area, in pedagogy. But I don't think we have the right solution for everyone. We have many ways, many methods.
04:04
So the Python presentation. The Python is 14 years old and was made by David Sharer. And is a package, the package name visual.
04:26
And it allows us to add 3D graphics to Python in a simple way. This is the reason why I use it in school. So it is easy to create navigable 3D displays
04:43
and animations. So where do we start? We start from the vPython main site. So you see that the subtitle is 3D programming for ordinary mortals. And for me, it's for ordinary students, normal students.
05:03
Setting up the environment is very easy. You need Python. Then you need this package, this package of vPython. And then we need an editor, an IDE. We have also, in the project of vPython, there is also vIdle, an alternative to IDLE,
05:25
which fixes some significant problems with using the visual package in Python. But we can use it, for example, using this presentation spider. Or we can use PyCharm, another IDE.
05:41
It's not so important. So now, I want to show you just this code from visual import star, import all, sphere. So this is our first project.
06:00
So I need, it's something we can navigate through. We can pan, we can zoom, or rotate. And it's, for me, it's very interesting because with two lines of code and with almost, almost no magic,
06:23
no magic at all, but we here don't have many, many strange things for students. Then we can start, or we can continue with this one.
06:40
I can add texture, material, to my scene, to my object, to my thing. So I think we can talk about objects, but maybe object is a word for programmers.
07:01
So maybe it's better to start to talk about things. So we have a sphere, and we can add material to the sphere. Then we can continue our presentation. We have many objects.
07:22
For example here, I import always all from visual, the main module, and I construct a cylinder. In this case, I use a variable. So after this, I can change my object, my thing.
07:44
Here I have many attributes. For example, position, axis, and radius. Then I can ask the object for the values of these attributes, or I can change them.
08:02
So here, I wanna show you just this one. In this case, I use all the scene, because we are in this 3D environment. So I use scene width and scene eight to do this.
08:25
And this is also an important result. Not so difficult, but a little impressive just here. So a Python way to teach or to learn.
08:42
We start from an empty scene, then we use a single object. Then we do an object composition, many objects. Then we continue this process,
09:00
constructing a static virtual reality modeling. Then we can do dynamic simulation. So there are also three parts, group in the vPython terminology, there are frames.
09:21
I can group objects together, and then I can use them like a single object, like in many other programs. Then we can catch events. So in this way, I can construct more complex animations and simulations.
09:45
And this is my dream. I want to construct with my students games with vPython. So here we have 18 types of primary objects
10:05
that we can use. We have simple objects and more complicated and complex objects, sphere, text, pyramid, points, lights, label, and so on. So here I can continue.
10:23
Here we have a composition. Here I use the for loop. So this is an important point, because here I continue the lesson from sequence. I go to the for loop, so I go to the loop,
10:41
the second structure of the programming structure. So here, for example, I made 10 sphere. It's not so complicated, because I change only the x position of the sphere.
11:03
So it's a loop 10 times, repeated 10 times, and I create, and I create in this loop 10 sphere. If I want to change this, I have to, I had to give them a name.
11:22
My, in this case, is not necessary. So here, a little more complicated, complicated scene. In this case, I use a more complex primary object of vPython, and so I use the arrow object.
11:43
In this case, I have a very interesting connection with trigonometry. So I use the function we find in the math library, like, yes, the pi value and cosine and sin functions.
12:07
So in this case, it's not so complicated, also in here. We have a result with a very short program.
12:22
These are only lines to fit the object in the scene. Really, I have this one line, and then I have three lines. If I, for example, if I cut this, I can, oh, sorry.
12:46
I have to close this one before. I have always the result. I continue to have the result only with four lines of code, and these lines are not so magic.
13:03
The pupils, the students can understand the meaning of this. Now continue, oh, sorry. Here, composition and rate, this is important.
13:21
In this case, I have an animation. I just put this line here, this line, so rate, rate four.
13:41
In a second, I repeat the loop at maximum four times. So in this case, I have no result of my word, but I have the animation in my word. So here, I have the movement, I have the movement.
14:02
Really, it's not, it seems a movement, but I create many objects. So it's not an object that moves, but there are many objects created in times. You wrote this code when you taught
14:21
your students trigonometry? No. Is this connected? Okay, the question was about if I teach this when I teach trigonometry. Really, I teach computer science, I don't teach mathematics.
14:40
So I try to have connection with my colleagues of mathematics, but it's not so easy because the programs are very differentiated. You assume that the students know what you see in those processes and all that. Yeah, normally, I assume they already know
15:03
this meaning, or I can say you will see the right meaning in the math course. It depends, it depends, but normally, I assume they already know the meaning.
15:22
So this is another interesting feature we have in visual. In the visual, we have another module graph, and we can graph functions. So here, we are not in the 3D world,
15:40
but in the 2D world. And this is another interesting connection with math. So I can show you here this. And for example, I can add here rate.
16:07
Rate, for example, 10, I think. So I have the function at the movement of the function.
16:25
Because without rate, I have the final result. And this way, the result is constructed. So interdisciplinarity.
16:43
The tactics of interdisciplinarity is not so easy. It's a cultural approach. You have to search methodology to do this. We have many things, for example,
17:01
problem-based learning and teaching is very interesting to do this. We have to encourage the construction of interdisciplinary and neuronal network in schools. We have to get to an integration process
17:23
between knowledges and skills between many, many disciplines. It's not so easy. Popular approach is connections in vPython. This is a popular approach in vPython. It's connection with physics.
17:42
So you find many interesting videos and tutorials about this in many courses, mainly at the university, where they study physics using vPython. My aim is not this.
18:02
My purpose is to teach computer science. So it's a little different from many approaches from this approach. A more basic approach for high school is for me that I have connections before with math and geometry.
18:21
Then I can have approach with physics, chemistry, astronomy, and also computational linguistics. If I have time, I wanna show you an example of this. Math concepts, Cartesian coordinate system, trigonometry, color, and vector values. This is very interesting, very important.
18:43
We have 3D modeling concepts. There are so many, camera, lights, and shadow, coordinate axis, background in a 3D world, texture like before, objects, groups of objects. I told you the right term is frame in vPython.
19:07
We have also connection with philosophy. For example, time and space. But this is another talk. So, educational testing, Python plus vPython.
19:22
My educational context, this one. In a math and science-based high school with only two hours per week. So, I believe in learning process, but products and results are also important.
19:42
So this is a virtual reality model. So here, for example, I wanna show you this one was made by a student of mine. It's very interesting. Here, you have to use many for loops,
20:01
many loops to do this in a proper way, in a human way. Then we have many other, for example, here I have an example of this. Using random, I create a ball,
20:20
then I move the ball in another position randomly. Using this, so it's important or it's good to do this then. Here, another one. Another one here is made by two students of mine.
20:48
So it's a little connection. We have interdisciplinarity in this case. Here, vPython Zen, because here, oh, sorry.
21:02
Eight, right. We have this bounce example. And the ball continue, so it's like Zen. If you stay for two hours, I think you get the enlightenment, maybe.
21:23
So solar systems, this is the one we saw before, was made by my students. It's not so perfect for a computer scientist, for a programmer, but this is not the case
21:41
because they study only two hours per week. So this is another one. This was made by a student of mine, by maybe the best of my students, and it's very interesting. So here, for example, I can write this.
22:03
This is an example of a reduction of the order. The whole program is here, and it's very interesting and very complicated. Just one of my students can do something like this.
22:21
So it's not so easy. Another part. This is a real school test instruction. They have to find the vowels frequency in this poem. This is a real beautiful poem.
22:42
So they have to find the frequencies of the vowels, and this is a computational statistical method to determine if a poem is, for example, in Italian or in English. And they had to represent with the Python the results.
23:06
So in this case, I show you the color version of them, and it's not so, it's not so, so long.
23:21
It's not so easy. It's not so easy for them. But the solution is, yeah, they can get to the solution. So the Python school in the future. Group frame. Just one student, I told you, just one student of mine can do the animation
23:42
we saw before. I wanted to get to events and then to them. For example, here. Here, I show you this one, the last one. I have a box, and when I click,
24:01
I create a sphere with these lines of code. So it's very easy to understand, to write this code and to understand it. So here are some results. Another strong point of the Python is documentation.
24:25
A really nice, nice and well documentation. So there are many problems, for example, to many unbelievers in school. To few evangelists, disciples, Pythonists. Okay, digital net generation, it's a very hard problem.
24:46
They can use technology, but no more. There are intra-Python limits. So I wanna end with this. VPython are semantic frames that allow to make a bridge in a mind more.
25:02
So this is all. That's all. Thank you. Thank you.