We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

VPython goes to School

00:00

Formal Metadata

Title
VPython goes to School
Subtitle
3D for ordinary students
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
Publisher
Release Date
Language
Production PlaceBerlin

Content Metadata

Subject Area
Genre
Abstract
Mauri - VPython goes to School Using VPython in high school is an interesting way to introduce students to get in touch with computer programming concepts and to link computer science with other disciplines like Math, Geometry, Physics, Chemistry ----- My presentation is focused mainly on my teaching experience in a high school using VPython. I've posed some problems to my students to solve with VPython: from basic static building representations like castle to more complex dynamic models like bouncing balls. This approach seems a good way to get in touch with computer programming concepts and to link computer science with other disciplines like Math, Geometry, Physics, Chemistry
Keywords
80
Thumbnail
25:14
107
Thumbnail
24:35
CodeStudent's t-testPlanningMortality rateDecimalRight angleEndliche ModelltheorieComputer animationLecture/Conference
ComputerStudent's t-testBerlin (carriage)Self-organizationDampingQuicksortForestXMLComputer animationLecture/Conference
RobotNeuroinformatikCondition numberComputer programmingComputer animationLecture/Conference
PlastikkarteEndliche ModelltheorieComputer programmingComputer animation
Line (geometry)Lecture/ConferenceComputer animation
CodeNeuroinformatikComputer scienceGroup actionFormal languageCodeComputer animationLecture/Conference
Formal languagePresentation of a groupConstructivism (mathematics)Right angleField (computer science)Process (computing)AreaComputer animationLecture/Conference
Binary fileWeb 2.0Module (mathematics)WebsiteMetropolitan area networkOpen setZoom lensShared memoryVisualization (computer graphics)Computer animation
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
Integrated development environmentWeb crawlerPresentation of a groupTerm (mathematics)Visualization (computer graphics)CodeSphereLecture/Conference
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
Metropolitan area networkVisual systemArithmetic logic unitEuler anglesModule (mathematics)Presentation of a groupCASE <Informatik>Object (grammar)Cylinder (geometry)Position operatorAttribute grammarRadiusVariable (mathematics)Computer animation
CASE <Informatik>Attribute grammarObject (grammar)Lecture/Conference
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
Complex (psychology)Computer simulationEvent horizonStudent's t-testGame theoryType theoryObject (grammar)Lecture/Conference
Type theoryFrame problemEllipsoidCylinder (geometry)CuboidPoint (geometry)Ring (mathematics)HelixSlide ruleObject (grammar)Point (geometry)Copyright infringementComplex (psychology)Loop (music)Type theoryComputer animation
Computer iconMetropolitan area networkDemosceneVisual systemValue-added networkStructured programmingData structureSequencePoint (geometry)Loop (music)Computer programmingSphereComputer animationLecture/Conference
Metropolitan area networkVisual systemRevision controlPointer (computer programming)Arithmetic logic unitPosition operatorSphereMultiplication signCASE <Informatik>Loop (music)Demoscene
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
Line (geometry)Functional (mathematics)CASE <Informatik>Computer programmingDemosceneResultantObject (grammar)Lecture/Conference
Metropolitan area networkAngleDemosceneLine (geometry)DemosceneResultantCodeXMLComputer animationLecture/Conference
Maxima and minimaVisual systemMetropolitan area networkArithmetic meanStudent's t-testLine (geometry)CASE <Informatik>Right angleComputer animationLecture/Conference
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
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
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
DisintegrationUniformer RaumComputer networkConstructor (object-oriented programming)SoftwareComputer animation
SoftwareINTEGRALProcess (computing)Connected spaceLecture/Conference
Connected spacePhysicalismVideoconferencingComputer scienceLevel (video gaming)Multiplication signCoordinate systemAverageComputational linguisticsUniverse (mathematics)GeometryMathematicsComputer animationLecture/Conference
Coordinate systemPhysical systemDemosceneCartesian coordinate systemTerm (mathematics)Group actionFrame problemEndliche ModelltheorieTrigonometryConnected spaceComputer fileChemical equationSpacetimeAcoustic shadowVector spaceTexture mappingObject (grammar)Computer animation
Product (business)Software testingSocial classContext awarenessResultantEndliche ModelltheorieProcess (computing)Product (business)MathematicsComputer animation
Visual systemSineMetropolitan area networkHigher-order logicSicComputer iconArmCuboidMaxima and minimaStudent's t-testData miningProgrammschleifeComputer animation
Metropolitan area networkMusical ensembleInheritance (object-oriented programming)SineNewton's law of universal gravitationDensity of statesPosition operatorRandomizationStudent's t-testData miningComputer animation
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
Graph (mathematics)Musical ensembleData Encryption StandardVisual systemSineMetropolitan area networkCovering spaceArmDivision (mathematics)Gamma functionComputer animation
SineVisual systemMetropolitan area networkCartesian coordinate systemPersonal area networkRadiusDuality (mathematics)Student's t-testNeuroinformatikObservational studyComputer scienceProgrammer (hardware)CASE <Informatik>Data miningComputer animation
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
Metropolitan area networkSoftware testingAreaMaxima and minimaValue-added networkTestdatenThomas KuhnComputer iconStorage area networkPrisoner's dilemmaFrequencyResultantCASE <Informatik>NeuroinformatikPoint (geometry)StatisticsRevision controlGraph coloring
Newton's law of universal gravitationInsertion lossMetropolitan area networkValue-added networkBinary fileRevision controlGraph coloringLecture/ConferenceSource codeComputer animation
Metropolitan area networkGame theorySimulationEvent horizonDemosceneMoment (mathematics)Group actionStudent's t-testFrame problemData miningEvent horizonLecture/ConferenceComputer animation
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)
All right, welcome back, everybody. Once again, I'm Austin from 60 North up in Norway.
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.
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.
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.
Someone of you already knows vPython? OK. So I want to talk about computational thinking, computational modeling, and educational programming
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.
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.
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,
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.
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.
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,
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.
So the Python presentation. The Python is 14 years old and was made by David Sharer. And is a package, the package name visual.
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
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.
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,
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.
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.
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,
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.
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.
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.
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.
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.
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.
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.
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,
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.
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.
And this is my dream. I want to construct with my students games with vPython. So here we have 18 types of primary objects
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.
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,
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.
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.
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.
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.
So in this case, it's not so complicated, also in here. We have a result with a very short program.
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.
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.
The pupils, the students can understand the meaning of this. Now continue, oh, sorry. Here, composition and rate, this is important.
In this case, I have an animation. I just put this line here, this line, so rate, rate four.
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.
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
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.
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
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.
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,
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.
Rate, for example, 10, I think. So I have the function at the movement of the function.
Because without rate, I have the final result. And this way, the result is constructed. So interdisciplinarity.
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,
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
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.
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.
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.
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.
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.
We have also connection with philosophy. For example, time and space. But this is another talk. So, educational testing, Python plus vPython.
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.
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,
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,
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.
So it's a little connection. We have interdisciplinarity in this case. Here, vPython Zen, because here, oh, sorry.
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.
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
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.
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.
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.
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.
So in this case, I show you the color version of them, and it's not so, it's not so, so long.
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
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,
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.
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.
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.
So this is all. That's all. Thank you. Thank you.