{"id":417,"date":"2010-04-07T22:15:22","date_gmt":"2010-04-08T03:15:22","guid":{"rendered":"http:\/\/www.apluscompsci.com\/blog\/?p=417"},"modified":"2010-04-07T22:15:54","modified_gmt":"2010-04-08T03:15:54","slug":"the-gridworld-case-study-a-great-teaching-tool","status":"publish","type":"post","link":"https:\/\/www.apluscompsci.com\/blog\/the-gridworld-case-study-a-great-teaching-tool\/","title":{"rendered":"The GridWorld Case Study &#8211; A Great Teaching Tool"},"content":{"rendered":"<p>This post is a recap of an article I wrote for the CSTA Voice a year or two back explaining how I use the GridWorld Case Study in my AP Computer Science classes from day one.<\/p>\n<p>The AP Computer Science GridWorld case study provides a tool that teachers can and should use from day one to introduce new topics, enhance prior topics, provide a game programming platform, and engage students.<\/p>\n<p>From the very first day, GridWorld can be used to demonstrate what an object is and how to call an object\u2019s methods without ever forcing students to write a single line of code.\u00a0 Due to GridWorld\u2019s interactive nature, manipulating the world is as easy as a mouse-click, allowing students to quickly add objects to the world and call methods.\u00a0 Students quickly learn and observe how methods affect the appearance and behavior of an object; thus, learning why methods are important and useful.<\/p>\n<p>After learning to create and interact with objects, students learn to write basic code to create objects using Actor and Location classes.\u00a0 As it takes very little code to do this, students are not overwhelmed and gain confidence quickly learning one skill at a time.\u00a0 Students learn how to add actors to the world and how the location class is used to store the position of an actor.\u00a0 Method calling and parameter passing comes naturally as the results are seen visually via the graphical nature of GridWorld.<\/p>\n<p>Having the basics in place, Actor can be used to teach inheritance by a simple override of the act method.\u00a0 Constructors and instance variables are not yet necessary which once again allows students to simply focus on mastering a single concept &#8211; inheritance.\u00a0 Using inheritance, students can make new actors that move around the grid and explode when hitting an edge which is very entertaining and engaging.\u00a0 Students learn how to use the fundamental actor methods and get more acquainted with the location class.<\/p>\n<p>Once inheritance is down to an art, decision making can be introduced so that the actors no longer move and explode, but rather move across and reappear on the opposite side of the screen.\u00a0 Students learn to use if statements to check boundaries and determine when to make the actor move so as not to collide with the edges.\u00a0 This process is once again very visual and engaging and students really get into it.<\/p>\n<p>At this point, Bug comes into play perfectly.\u00a0 Bug has some new methods and it requires a fundamental understanding of inheritance and decision making.\u00a0 Using Actor before Bug enables students to learn how a Bug is built before every seeing one.\u00a0 Bug moves around the grid very much like the new Actors created in previous units.\u00a0 Students find the movement and action of Bug pretty straight forward as the students have already made an Actor move and are also very comfortable with inheritance and method overriding.\u00a0 The prep work has paid of big time as Bug is very easy to use and understand.<\/p>\n<p>After using Bug and making Actors move, looping is pretty much ingrained as students have now been using the step button of world which continually calls the act method of each actor over and over again.\u00a0 Students can now transition into writing loops and using loops to solve problems.\u00a0 GridWorld can be used to teach for loops, while loops, and nested loops more easily as the graphical nature allows students to see the results of the looping.\u00a0 Working with loops graphically helps students as they can see how the loop works.<\/p>\n<p>Using GridWorld very early in the year enables student to gain a solid understanding of \u00a0basic object instantiation, \u00a0method calling, inheritance, and decision making while learning how to interact with a grid, properly use a location, create an actor, and interact with a world.\u00a0 These are all very important skills that provide a great foundation for students in the AP Computer Science class.\u00a0 The GridWorld case study provides a wonderful tool that can be used all year long to enhance the learning of all computer science students.<\/p>\n<p>Once the foundation is built, lots of great game projects can be used to expand student knowledge and get students very excited about Computer Science.\u00a0 Board games work very well with Gridworld and can be created with lots of interactivity.<\/p>\n<p><a href=\"http:\/\/www.apluscompsci.com\/gridworld.htm\">More GridWorld Information<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This post is a recap of an article I wrote for the CSTA Voice a year or two back explaining how I use the GridWorld Case Study in my AP Computer Science classes from day one. The AP Computer Science GridWorld case study provides a tool that teachers can and should use from day one [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[21,20,3],"_links":{"self":[{"href":"https:\/\/www.apluscompsci.com\/blog\/wp-json\/wp\/v2\/posts\/417"}],"collection":[{"href":"https:\/\/www.apluscompsci.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.apluscompsci.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.apluscompsci.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.apluscompsci.com\/blog\/wp-json\/wp\/v2\/comments?post=417"}],"version-history":[{"count":3,"href":"https:\/\/www.apluscompsci.com\/blog\/wp-json\/wp\/v2\/posts\/417\/revisions"}],"predecessor-version":[{"id":420,"href":"https:\/\/www.apluscompsci.com\/blog\/wp-json\/wp\/v2\/posts\/417\/revisions\/420"}],"wp:attachment":[{"href":"https:\/\/www.apluscompsci.com\/blog\/wp-json\/wp\/v2\/media?parent=417"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.apluscompsci.com\/blog\/wp-json\/wp\/v2\/categories?post=417"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.apluscompsci.com\/blog\/wp-json\/wp\/v2\/tags?post=417"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}