Tag Archives: GridWorld

AP Computer Science SIs – return;

All 3 of my AP SIs have concluded.  I had a great time at all 3 stops and look forward to doing a few summer institutes again next year.

This year, I started each SI with Scratch and Jeroo on the first day and then moved on to GridWorld and lots of Java.  I spent considerable time on arrays and ArrayLists as those topics constitute a huge part of the exam.  We worked with arrays and lists using graphics, games, and cross-curricular focused projects.

Time was spent discussing ways to show students how important Computer Science skills all to other disciplines and to students considering a degree other than Computer Science.  We read articles each day, like the ones I post here on this blog and discussed the relevance of talking about articles in class.

I just received a link to a great article about Stanford Computer Science and the changes they have made.  It is a great article and makes me feel great about many of the changes I have made to my curriculum over the last 3 or 4 years.

Enjoy the rest of your summer!

Post AP Exam Humor

Well, another AP exam has come and gone.
The 2012 exam is now in the rear view mirror.

This year’s exam is proof that you will never get the Bugs out of your code no matter how hard you try.

Having tortured my students with over 600 practice M/C questions ( Moodle makes this sooooo easy ) and volumes of Free Response questions, I felt the need to blog a bit about the comments I heard after the exam ( more than 48 hours after the exam ).

It never fails that after spending hours working to help students prepare that there will be handful of comments that upon hearing make you laugh and cry at the same time.  I have embellished these just a bit to protect the innocent and to slightly increase the humor factor.

These comments are in decreasing order of humor or pain – however you quantify them.
Please do your best to infer the extreme level of sarcasm in my [anecdotal bracketed] mental responses.

DISCLAIMER – All comments were heard 48 hours after the exam.

#5 – “We had to write programs all year long with Bug[], Dog[], Cat[], Alien[], Aardvark[], Chicken[], and Alligator[] arrays, but never any Horse[] arrays.”
[ I clearly blew it on this one.  How could I have not know to make a Horse[] array lab?  Arrrgggh!  ]

#4 – “What do you guys mean that you should always put private on instance variables?”
[This is only to prevent other goofballs from destroying your data from afar – the danger is apparently much closer. ]

#3 – “You should never in your life override an act() method!”
[Yes, all classes have act methods that are sacred and free from that nasty process called overriding and the multitude of assignments we did where we overrode act were just figments of your imagination. ]

#2  –  “I made sure to return on all parts of the Free Response – even from the void methods!”
[ My motto is if all else fails and are you are unsure what to do – just return.  Works almost every time.  Duh!]

#1 –  “We had to go through matrices over and over again and even had to count up all of the 5s in one matrix lab, but we never had to count up all of the 255s.”
[Once again, I clearly blew it  – I was way off by a whopping 250!]

I hope you enjoy this humorous post and also hope you have a great summer!
Enjoy the AP Reading if you are going and look me up if you need a Great AP Summer Institute!


AP Summer Institute – Houston #2

AP Summer Institute #3 is history.
I had a huge group in Houston from all over the US.
The workshop started on July 18th and ran for four days.
The Region Center in Houston always has great food.

We covered tons of material, including Scratch, Jeroo, GridWorld, and lots of Java.
We discussed teaching with Codes and Ciphers, teaching List Processing using multiple environments, and using GridWorld games like Sliding Puzzle to teach Object-Oriented Programming.

Attendees came all of the way from Ohio, Arkansas, Texas, and Massachusetts. All sorts of folks attended, including an Astronomer, Fortran Programmer, and multiple former Disney employees. It was a great group of people and it was nice to get to know them all.

I am currently conducting an AP SI in Fayetteville, Arkansas at the University of Arkansas.
See all of my workshop dates and available materials.
Follow my travels across the US to my workshops via my son’s travel blog.

CS News – Gamers Help Solve Medical Problems

Gamers Help Solve Medical Problems

Protein Game Site

This is really cool!  It makes sense to use a game to solve a problem as problem-solving is a essential part of playing any game.
I have made several posts about using games to teach Computer Science and the benefits.  I have been using basic games, complex games, and the theory and logic behind them to teach Computer Science and problem-solving concepts in my classes for a long time.  Games, like bowling, are just good family fun.  Games are interesting and get students excited and they require serious thought and planning to build.  I have my students build a sliding puzzle project in GridWorld and use it as a stepping stone to talk about using priority queues and the A* algorithm to write an automated solver.  The A* algorithm is a fun algorithm to learn and can be used for lots of different games and such.   Yes, I did just use algorithm and fun in the same sentence and meant to do it!  The games are the hook and the rest of the concepts just fall into place.

Sliding Puzzle Image

Sliding Puzzle Image

The GridWorld Case Study – A Great Teaching Tool

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 to introduce new topics, enhance prior topics, provide a game programming platform, and engage students.

From the very first day, GridWorld can be used to demonstrate what an object is and how to call an object’s methods without ever forcing students to write a single line of code.  Due to GridWorld’s interactive nature, manipulating the world is as easy as a mouse-click, allowing students to quickly add objects to the world and call methods.  Students quickly learn and observe how methods affect the appearance and behavior of an object; thus, learning why methods are important and useful.

After learning to create and interact with objects, students learn to write basic code to create objects using Actor and Location classes.  As it takes very little code to do this, students are not overwhelmed and gain confidence quickly learning one skill at a time.  Students learn how to add actors to the world and how the location class is used to store the position of an actor.  Method calling and parameter passing comes naturally as the results are seen visually via the graphical nature of GridWorld.

Having the basics in place, Actor can be used to teach inheritance by a simple override of the act method.  Constructors and instance variables are not yet necessary which once again allows students to simply focus on mastering a single concept – inheritance.  Using inheritance, students can make new actors that move around the grid and explode when hitting an edge which is very entertaining and engaging.  Students learn how to use the fundamental actor methods and get more acquainted with the location class.

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.  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.  This process is once again very visual and engaging and students really get into it.

At this point, Bug comes into play perfectly.  Bug has some new methods and it requires a fundamental understanding of inheritance and decision making.  Using Actor before Bug enables students to learn how a Bug is built before every seeing one.  Bug moves around the grid very much like the new Actors created in previous units.  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.  The prep work has paid of big time as Bug is very easy to use and understand.

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.  Students can now transition into writing loops and using loops to solve problems.  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.  Working with loops graphically helps students as they can see how the loop works.

Using GridWorld very early in the year enables student to gain a solid understanding of  basic object instantiation,  method 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.  These are all very important skills that provide a great foundation for students in the AP Computer Science class.  The GridWorld case study provides a wonderful tool that can be used all year long to enhance the learning of all computer science students.

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.  Board games work very well with Gridworld and can be created with lots of interactivity.

More GridWorld Information