1 / 35

K-12 Game Programming Course Using Textual Programming

K-12 Game Programming Course Using Textual Programming. Vesa Lappalainen , Lecturer PhD Antti-Jussi Lakanen , University teacher MSc Department of Mathematical Information Technology University of Jyväskylä , Finland. ACM SIGCSE 2011 Dallas, Texas Room Dallas A1. Vesa Lappalainen.

nigel-west
Download Presentation

K-12 Game Programming Course Using Textual Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. http://tinyurl.com/jypeli-paper

  3. http://tinyurl.com/jypeli-paper

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. Kodu Game Lab http://tinyurl.com/jypeli-paper

  17. 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

  18. 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

  19. Examplegame: GalaxyTrip http://tinyurl.com/jypeli-paper

  20. 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

  21. Course instances in 2009—2010 http://tinyurl.com/jypeli-paper

  22. ”I haveearlierprogrammingexperience” (2010) http://tinyurl.com/jypeli-paper

  23. ”I considermyself an experiencedcomputeruser” (2009-2010) http://tinyurl.com/jypeli-paper

  24. ”I play computergames…” (2009-2010) http://tinyurl.com/jypeli-paper

  25. 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

  26. http://tinyurl.com/jypeli-paper

  27. 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

  28. 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

  29. 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

  30. 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

  31. InteresttowardsICT/science studies http://tinyurl.com/jypeli-paper

  32. 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

  33. 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

  34. 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

  35. Questions http://tinyurl.com/jypeli-paper

More Related