350 likes | 470 Vues
This presentation discusses a week-long game programming course aimed at K-12 students to stimulate interest in IT, math, and science. Developed by researchers at the University of Jyväskylä, the course employs the Jypeli programming library to ease students into game programming concepts. Over 150 students aged 11-17 have participated, highlighting the importance of engaging content to counter declining interest in STEM fields. The focus is on combining fun with educational value, using games as a tool for understanding complex concepts in math and physics.
E N D
K-12 Game Programming Course Using Textual Programming VesaLappalainen, Lecturer PhD Antti-JussiLakanen, University teacher MSc Department of Mathematical Information Technology University of Jyväskylä, Finland ACM SIGCSE 2011 Dallas, Texas Room Dallas A1 http://tinyurl.com/jypeli-paper
VesaLappalainen • PhD 1985 in Mathematics • Teaching programming since 1982 • Research activities: • InSitu: Interaction possibilities on a mass lecture • ComTest: Making test-driven development (TDD) simple • Students’ perceptions of programming • Early recruitment in ICT • My gaming background • Two teenager boys http://tinyurl.com/jypeli-paper
Antti-JussiLakanen • MSc 2010 in Mathematical Information Technology • Teaching programming, recruitment, tutoring freshmen • Research activities • CS1 and games, effect on study success • K-8/K-12 programming • My gaming background • Commodore 64, Amiga 500, ... • More of fun, less of “useful” activities http://tinyurl.com/jypeli-paper
Ourpresentation in a nutshell • Weareworriedabout the decline in IT, science and mathstudents • Wedeveloped a week-longgameprogrammingcourse for youngsters to motivatestudyingIT, science and math • Jypeliprogramminglibrarywasdeveloped as a tool to reduce the cognitiveload in beginninggameprogramming • Wehavehad 7 courses, 150 students, aged 11-17 http://tinyurl.com/jypeli-paper
Disclaimer • The courseconceptintroduced is a combination of • departmentstaff (teachers), • tools (Jypeli etc.), • content and • motivatedparticipants • Each of thesehasits’ ownimportantrole in the process • Ifwechangesomepart, weaffectthe ensemble http://tinyurl.com/jypeli-paper
Links • https://trac.cc.jyu.fi/projects/npo • https://www.jyu.fi/it/laitokset/mit/opiskelu/nuortenkurssi • Facebook group: http://www.facebook.com/#!/group.php?gid=114345435260705 http://tinyurl.com/jypeli-paper
Acknowledgements • University of Jyväskylä / Department of Mathematical Information Technology • Funding courses in 2009, Jypeli development • Technology Industries of Finland Centennial Foundation • Courses in 2010—2011 • Agora Center • Research in game development • Microsoft • Software, Xbox controllers • Ville Isomöttönen • Co-author of the paper • Physics2D.NET physics library http://tinyurl.com/jypeli-paper
Introduction • Student decline in ICT and science fields (economics still get students) • Amount of students passing the courses has gone down 50 % since 2004 • How to get youngsters to choose science courses in high school? • And hopefully to continue their studies later in university http://tinyurl.com/jypeli-paper
Why this course? • What are the young interested of? • Something to excite! • How to combine fun with “real things” • We wanted to show that concepts of high school math and science apply also in games • Why not to target senior high? • We wanted to influence what subjects they pick in senior high • With senior high students we would be late(ca 50 % doesn’t even go to senior high) http://tinyurl.com/jypeli-paper
Finnisheducationalsystem University (master), 2 yrs Polytechnics (bachelor), 3.5 – 4 yrs University (bachelor), 3 yrs Senior High School (lukio), 3 yrs Vocational School (ammattikoulu), 3 yrs 50.2 % 41.2 % (8.6 %) Junior High School, 3 yrs (Yläkoulu in Finnish) Compulsoryeducation Elementaryschool, 6 yrs (Alakoulu in Finnish), starts at the age of 7 Pre-school, 1year (Esikoulu in Finnish), starts at the age of 6 http://tinyurl.com/jypeli-paper
Motivation and learning outcomes • Motivation to physics concepts • Quantities: time, distance, speed, acceleration and force • Causal relationship: dependencies between objects • Gravity, friction, motion, balance • Mass and its effects • Particle kinematics http://tinyurl.com/jypeli-paper
Motivation and learning outcomes • Motivation to math concepts • Problem solving • Function, interpretation and drawing • Coordinates • Geometry: straight line, scaling, shapes • Vectors • Equations and solving them • Probability and random numbers • Boolean value, logic • Angle, degrees and radians http://tinyurl.com/jypeli-paper
How to program games • Two mainstream options • Visual programming • Alice, Scratch, Greenfoot, … • Lego robots (compare to industrial process programming, e.g. National Instruments, LabView, etc.) • Microsoft Kodu • Textual programming • Java ACM Task Force • XGC1 (UWB) http://tinyurl.com/jypeli-paper
Kodu Game Lab http://tinyurl.com/jypeli-paper
Jypeli library -- Why and objectives • “Real programming” by mainstream tools • First game should not be many lines of code • “Realistic” physics built-in • Event-drivenfor controls and collisions • Less structures, as few as zero loops and ifs • Endless possibilities for advanced programming • Possibility to transfer games to game consoles and mobile phones http://tinyurl.com/jypeli-paper
Choosing the tool – Motivation to building a new library • Lack of Finnishmaterial • Xbox currentlyonlygameconsole with the possibility to transferowngameseasily C# as the language • Lack of physicsengines in availablelibrariesout-of-the-box • Limited timeavailable– Italsotakestime to study a librarysomeoneelsehas made • Facultyinterests in bringingknowledgeaboutbuildinggameengines, physicsengines etc. http://tinyurl.com/jypeli-paper
Examplegame: GalaxyTrip http://tinyurl.com/jypeli-paper
PhysicsObjectCreateGalaxy() { PhysicsObjectgalaxy = PhysicsObject.CreateStaticObject(tileWidth, tileHeight); galaxy.Color = Color.LightBlue; AddCollisionHandler(galaxy, CollidedWithGalaxy); galaxy.Image = galaxyImage; returngalaxy; } PhysicsObjectCreateSombrero() { PhysicsObject sombrero = PhysicsObject.CreateStaticObject(tileWidth, tileHeight); sombrero.Color = Color.Yellow; sombrero.Image = sombreroImage; AddCollisionHandler(sombrero, CollidedWithSombrero); return sombrero; } voidCollidedWithGalaxy(PhysicsObjectgalaxy, PhysicsObjecttarget) { PlaySound("blop"); } voidCollidedWithSombrero(PhysicsObject sombrero, PhysicsObjecttarget) { PlaySound("exp"); explosionSystem.AddEffect(target.X, target.Y, 50); sombrero.Destroy(); } voidChangeGravity(AnalogState s) { Gravity = s.StateVector * 2000; } } using System; usingJypeli; usingJypeli.Effects; publicclassGame : PhysicsGame { staticString[] lines = { " ", " ", " ", " X X ", "X ", " * ", " X X ", " ", " ", " ", " ", "* X X ", "X ", " * ", " X X ", " ", " ", " ", " * ", " X X ", "X ", " ", " X X ", " ", }; staticinttileWidth = 800 / lines[0].Length; staticinttileHeight = 480 / lines.Length; static Image playerImage = LoadImage("ship"); static Image galaxyImage = LoadImage("galaxy"); static Image sombreroImage = LoadImage("sombrero"); static Image explosionImage = LoadImage("bum"); ExplosionSystemexplosionSystem; PhysicsObjectplayer; protectedoverridevoid Begin() { Level.Background.Image = LoadImage("space"); Gravity = new Vector(0, -1000); NewGame(null); } voidNewGame(Touchtouch) { ClearGameObjects(); ClearControls(); player = new PhysicsObject(50, 50, Shape.Circle); player.Image = playerImage; Add(player); explosionSystem = new ExplosionSystem(explosionImage, 50); Add(explosionSystem); Keyboard.Listen(Key.Up, ButtonState.Pressed, MovePlayer, "Moveup", player, new Vector(0, 500)); Keyboard.Listen(Key.Down, ButtonState.Pressed, MovePlayer, null, player, new Vector(0, -500)); Keyboard.Listen(Key.Left, ButtonState.Pressed, MovePlayer, null, player, new Vector(-500, 0)); Keyboard.Listen(Key.Right, ButtonState.Pressed, MovePlayer, null, player, new Vector(500, 0)); TouchPanel.Listen(ButtonState.Pressed, NewGame, null); Accelerometer.Calibration = AccelerometerCalibration.ZeroAngle; Accelerometer.ListenAnalog(AccelerometerSensitivity.Realtime, ChangeGravity, null); TileMaptiles = TileMap.FromStringArray(lines); tiles['X'] = CreateGalaxy; tiles['*'] = CreateSombrero; tiles.Insert(tileWidth, tileHeight); Level.CreateBorders(); Camera.ZoomToLevel(); } publicvoidMovePlayer(PhysicsObjectplayer, Vectorforce) { player.Hit(force); } http://tinyurl.com/jypeli-paper
Course instances in 2009—2010 http://tinyurl.com/jypeli-paper
”I haveearlierprogrammingexperience” (2010) http://tinyurl.com/jypeli-paper
”I considermyself an experiencedcomputeruser” (2009-2010) http://tinyurl.com/jypeli-paper
”I play computergames…” (2009-2010) http://tinyurl.com/jypeli-paper
More student demographics • They have tried some languages, e.g. Java (20), Basic (17), C++ (17) (numbers overlap) • Most students are interested in career in software engineering (57 %) • Conclusion: Students were interested and motivated, but did not know what to expect out of the course http://tinyurl.com/jypeli-paper
Overall satisfaction • Overall satisfaction: 4.71 (2009), 4.56 (2010) • Fulfilled the expectations: 4.1 (2009), 3.9 (2010) • 85 % would recommend the course to his/her friends (2010) • (Scale: 1 Fully disagree -- 5 Fully agree) http://tinyurl.com/jypeli-paper
Hardest things on the course • 42 % of the responses related to new language and new syntax • “learning a new programming language" • “writing the code" • “syntax of the language" • “finding errors” • “writing errorless code” http://tinyurl.com/jypeli-paper
Is it hard to do programming? • Majority of the students had none or only little earlier programming experience (2009: 89 %, 2010: 73 %) • 68 % said that programming was NOT harder than he/she had expected • 49 % said their conception of programming had changed during the course • Thought it was harder • Programming games was more fun than expected • Programming was more fun than expected • Conclusion: It’s hard, but fun, and less hard than expected http://tinyurl.com/jypeli-paper
Correlationanalysis: Effect of earlierprogrammingexperience • Positive correlation with the question ”I willstudy in the field of ICT/science in the future” (Pearson correlation, ) • Negative correlation with the question ”The giventaskswerehard” (Pearsoncorrelation, ) http://tinyurl.com/jypeli-paper
InteresttowardsICT/science studies http://tinyurl.com/jypeli-paper
Challenges of the concept • How much do they learn • Measuring this is challenging • Is learning many things reallythe objective? • Is it enough just to “have funwith programming”? • What happens after the course • Post-course communication • Facebook http://tinyurl.com/jypeli-paper
Game theme in theUniversity of Jyväskylä • Ohjelmointi 1 (CS 1) with a gametheme • Started in 2010 • Strong learning outcomes • TDD (ComTest for C#) • As of autumn 2011 game theme will be a common denominator in the majority of the courses of the IT faculty http://tinyurl.com/jypeli-paper
Studies for senior high school students • We offer university courses for senior high school students • E.g. Programming 1 (CS 1) with a game-theme • Students are fully credited when they entry university • Give advantage in entrance examination http://tinyurl.com/jypeli-paper
Questions http://tinyurl.com/jypeli-paper