Monday, March 30, 2009

Game Project Progress Report #8

I just can't leave it alone!

In an attempt to make things more visual, I have added a new option to show lines which show the movement of data between the register and the buckets. The option is set by the popup menu (right click on the panel to see the popup menu.) The lines are shown only when stepping through the program (press Step instead of Run.)

Here's the popup menu showing the Show Lines option...


Here's the program with a line showing. The lines appear for one second only...


By the way, the program now stands at 3,528 lines.

MMORPG Reflection

How are MMOGs fundamentally different from other games and simulations?

MMORPGs bring together large groups users (learners) from remote locations. Consequently, MMPRPGs are Internet only.

How are they like and different from virtual worlds (like Second Life)?

MMORPGs are games or simulations, with a known objective. Second Life is merely an "environment". MMORPGs have non-playing characters (NPCs) which employ artificial intelligence (AI). Second life has other "real" players only.

Could you describe a learning problem in your environment that might be addressed by a MMOG? Describe what it would look like.

I can't think of a use for MMORPGs in my environment. The following phrases were used by the author to describe the benefits of MMORPGs: "support collaborative experience-based and exploratory learning approaches", "support learning through real-time experiences", "support collaboration and team-building skills", "a tool to aid students from different disciplines...to work collaboratively", "leadership training". I could not see this being used in my work place. I can see where it would be of interest to sociology and psychology teachers. As in Second Life, people can be who/what they want to be, and test other peoples' reactions to that.

I thought it significant that the author mentioned the importance of debriefing and reflection (page 60).

Gee Chapter 7

The main points of this chapter were (1) learning is social, and (2) learning is distributed. I don't really have much to say on the first point, but I thought Gee's discussion of the second point was significant. A few quotes:

"So thinking and reasoning are inherently social. But they are also inherently distributed, and more and more so in our modern technological world. By this I mean that each of us lets other people and various tools and technologies do some of our thinking for us." (page 196)

"In school we test people apart from their thinking tools, which include other people as well as texts and various sorts of tools and technologies. We want to know what they can do all by themselves. But in the modern world - and this is certainly true of many modern high-tech workplaces - it is equally more important to know what people can think and do with others and with various tools and technologies." (page 196-197)

"If we want to know how good students are in science - or how good employees are in a modern knowledge-centered workplace - we should ask all of the following (and not just the first): What is in their heads? How well can they leverage knowledge in other people and in various tools and technologies (including their environment)? How are they positioned within a network that connects them in rich ways to other people and various tools and technologies? Schools tend to care only about what is inside students' heads as their heads and bodies are isolated from others, from tools and technologies, and from rich environments that help make them powerful nodes in networks. Adrian wouldn't play a game in these circumstances, nor would most of the other players whom we have interviewed. Good workplaces in our science- and technology-driven "new capitalism" don't play this game. Schools that do are, in my view, DOA in our current world - and kids who play video games know it." (page 202)

In my work as a Java programmer, I very often need to go to the internet to find examples of how to do something. This doesn't make me a weak programmer. I would argue that my ability to find a solution to a similar problem, to read and understand the sample code, and to modify that code to solve my problem, is a difficult skill, and one which is of value to my employer. My reliance on the internet doesn't make me a weak programmer, it makes me a stronger programmer. The trick is to utilize the same techniques in the classroom; to encourage the use of distributed knowledge.

Some might call that "cheating". But I wonder how much of what we call "cheating" is a result of the social norms which we grew up with. Do we need to reconsider what constitutes "cheating" in today's world? For example, I once had a conversation with the secretary to the dean of the college of computer science at a major university. We were discussing comprehensive exams and how silly they are. She said the only reason the college of computer science used comprehensive exams was to catch all the people who cheated throughout their coursework, "especially the [members of one ethnicity]; they don't do their own work."

Indeed, members of this ethnic group have a tendency to work together on everything. It would seem to me - as an outsider looking in - that they are committed to each others' success. In their mind, they are not "cheating", but in the western mind, they are. One might argue that they are merely leveraging knowledge, and the synergistic result is that each is stronger because of it. Is that "cheating"?

I don't have the answer.

Friday, March 27, 2009

Game Project Progress Report #7

I decided to change the functioning of the ZERO and ONE operations. Previously, they moved zero or one respectively directly into a bucket. I've decided to make them move zero or one into the register instead, as this will be more consistent with the workings of the other operations, and will be more consistent with my goal of staying close to an assembler-type language.

I alse decided to change the wording on one of the menu items from "Audit" to "Prove It!" A student would use "Prove It!" to prove to his teacher or friends that he completed a puzzle. Since the puzzles tell you what numbers to enter -- no more no less -- I changed the report to include a list of all number which had been read for the most recent execution of the program.

Here's the new menu item (reminder: right-click to get the popup menu)...




And here's the "Prove It!" report...

PROGRAM

1. Zero E
2. Read
3. While Reg > E
4. Write
5. Read
6. Wend
7. End
8. _

LEVEL

Level is 3.

REGISTER

The register has a value of 0

VALUES READ

1. 3
2. 4
3. 8
4. 2
5. 0

BUCKETS

Bucket A is empty.
Bucket B is empty.
Bucket C is empty.
Bucket D is empty.
Bucket E has a value of 0.

RESULTS

1. 3
2. 4
3. 8
4. 2
5. Normal end.

Game Play Reflection #7

I am continuing with Toon Talk ... and I am very frustrated.

I was introduced to a new "character". Pumpy the bicycle pump can be used to make boxes larger or smaller. Smaller is useful so a large box fits the screen. Press F3 to call Pumpy.

I completed a puzzle which demonstrated that multiplication was just repeated addition.




I seem to have gotten past the robot programming problems I had last time -- remember to "suck", out of the thought bubble, values which will change. (In fact, it would appear as though you need to suck out anything which will change, including scales.)

When I got stuck on one of the puzzles, I was reminded "robots work faster when they are not being watched." So if I stand up and leave the room and come back in, the robot should be done with his (her?) task.

But only if he knows when to stop. I had to program the robot to add 1 to a block, and repeat 1000 times. So I started it, left the room, immediately came back, and the robot was on something like his 91,500th iteration. I cannot get it to stop.

I have searched the internet. I cannot find out how to control the number of iterations a robot makes, nor can I figure out how the "scales" work (used for comparing values). For example, in the diagram below, why do I have 56 on the left? I want it to stop at 24.


I think it is because I need to change the number on the robot's wand, but I haven't been told how to do it. (See the "99" on the image below?)


Consider Marty's comment in the following screen shot: "You know the magic wand doesn't always have the right amount of magic." Yes, I know, but you never told me how to change it!



I am so ready to be done with this aspect of the course....

Gee Chapter 5

I'm afraid if I write about a comment made in the first paragraph of the chapter, it will appear as though I didn't read the whole chapter. But I did! In fact, I've completed the book.

Gee said, "...humans are poor at learning for lots of overt information given to them outside the sorts of contexts in which this information can be used. ... Humans tend to have a very hard time processing information for which they cannot supply such simulations. They also tend readily to forget information they have received outside of contexts of actual use, especially if they cannot imagine such contexts." (page 113)

If I had not already believe this, the point would have been driven home this week with an experience I had. I spent Tuesday, Wednesday and Thursday mornings teaching Microsoft Access to an audience of six people. As is often the case with Access classes, the people attending the class are long time Excel users and though they are willing to believe that Access is the tool of choice for some jobs, they just aren't convinced it will be worth the effort it takes to make the switch.

I am reminded of a comment I once heard at training conference. This was at a time when WordPerfect was the top word processing program, and the speaker made a comment about word processing programs in general. He said, "A word processor is kinda like a spouse: if you have one which satisfies 90% of your needs, it's generally not worth upgrading."

That comment can apply to people who use Excel (rather than Access) as a database system.

I went through the first two mornings following the approved course outline with the approved course text. Anyway, the class was frustrated on the last day since they just couldn't see how they would do this on their job. So I asked each person what they wanted to be able to do. In each case, I was able in 20-30 minutes to show the class how to solve each person's problem. In one case it was getting data into Access from Excel, in another case it was getting data from multiple .txt files into a single Excel table, and in three cases it was creating the proper database design schema. Each person left the class anxious to try (to learn) Access.

I suggested to my employer that we approach the client about offering a day of one-on-one coaching sessions (four people each sign up for a two hour time slot.) This would be training in the context of each individual's work requirements. (Gee discusses "just in time" and "on demand" information on page 136. See -- I did read the chapter!)

Thursday, March 19, 2009

Game Project Progress Report #6

There is now one URL only: http://www.billqualls.com/sim

To change levels, right-click on the panel and choose Level I, II, or III from the popup menu. At some point I hope to make the level selection more sophisticated (e.g. database driven).


I have also added an Audit feature: right-click on the panel and choose Audit from the popup menu. A dialog box will appear showing the contents of the code display, the register, the buckets, and the output display. For now, this can be used for printing your work.


The complete audit report appears as follows:

PROGRAM

1. Read
2. Store A
3. Read
4. Add A
5. Write
6. End
7. _

LEVEL

Level is 1.

REGISTER

The register has a value of 5

BUCKETS

Bucket A has a value of 2.
Bucket B is empty.
Bucket C is empty.
Bucket D is empty.
Bucket E is empty.

RESULTS

1. 5
2. Normal end.

Game Play Reflection #6

Having given up on America's Army, I have returned to Toon Talk. But this, too, proved to be frustrating. My task was to create the complete alphabet by repeatedly add 1 to a letter and appending that letter to the already existing string of letters.



But I couldn't remember how to train the robot, and there is no help. In desperation I went to the internet. Supposedly I could press F1 while holding an item (robot?) and get help, but that didn't work: the computer just made some sound indicating I had done something invalid. F10 shows a function key table, but it turned out to be useless as well. Finally I discovered I had to drop a box ON the robot (but NOT on his "thought bubble") to get it to run. But then it would do one iteration only. Finally, I went back to Marty (the Martian) and he said to use Dusty (the vacuum) to "suck up only the stuff that will change in the 2nd and 3rd holes." So I did so, and it worked. But it was painfully slow because I forgot the technique whereby I could skip the animation and go straight to the result.



What I find so annoying is that I could have saved a lot of time -- well over an hour -- if I could have asked someone a question -- not on the programming but on the usage of the robot. It was extremely frustrating! And sometimes you do the right thing accidentally, and you aren't sure what you've done so you can't do it again. What kind of learning is that?

Wednesday, March 18, 2009

Game Project Progress Report #5

I've made some great progress on BucketLogic.
  • Level II has if/else/endif
  • Level III has while/wend and zero/one
  • Puzzles for all levels have been added to the Puzzles page
I am having some problems getting the program to change levels as seamlessly as I would like, so for the time being it will require three different URLS.

Level I: http://www.billqualls.com/sim
Level II: http://www.billqualls.com/sim2
Level III: http://www.billqualls.com/sim3

I have a friend whose wife is involved with a home schooling group. I'm going to ask her to pass it around to see if I can get some age appropriate feedback.

Have fun!

p.s. The program now stands at 3,039 lines!


Tuesday, March 17, 2009

Aldrich article

Describe at least two primary barriers to the use of these technologies in your setting and how they might be addressed.

The following comments by Aldrich were relevant to me. Some of my comments relate to my game project (Bucket Logic), while others relate to the development and/or use of simulations in the workplace.


(1) Free play versus guided play.

"How much do you help the user along?"

"If you guide them too much, the point of the simulation falls away. Now they are getting linear instruction again, and just mindlessly carrying out orders."

Comment: How much help, indeed. I need to give the user (learner) more credit for their abilities to figure things out. And if it's too easy, they will probably get bored.


(4) Sabbatical, Not Seamless.

"Training departments have been pressured over the years to reduce the length of their programs."

"Through customization and smaller pieces of content, we expect a piece of content, a single moment of understanding, to be delivered when and where we want it."

Comment: I have said before (particularly in the context of project management training) that most clients don't want training: they want the laying on of hands. They want a miracle.


(8) One "Level" at a Time

"The instinct for a simulation designer is to do everything."

Comment: This echoes the sentiment expressed in (1) above.

"These (Star Trek) games did not do well despite how narrowly they focused, but because of how narrowly they focused."

Comment: I am adding "levels" to my game. Each "level" will have a focus. Level I will be read, write, and simple math. Level II will be selection (if/else/endif). Level III will be looping (while/wend). By adding "puzzles" (which for the time being will be listed on the web page), the user can check their own mastery at each level.


(11) Role of Standards

"LMSs have a hard time tracking them."

Comment: I have seen in my own work the increase in complexity (read: cost) of eLearning or simulations when tracking is required. In the past, I have attempted to "negotiate" that away.


(12) Evaluation

"It will be harder to evaluate simulation-based content."

Comment: Here the author is discussing the ability of the simulation to satisfy the learning objectives. This is difficult because the user can, in some cases, take many paths to the same goal. And part of the benefit of simulations is that the learner can benefit from mistakes. Who learns more: the user who "gets it" on the first try (was it just dumb luck?) or the user who makes mistakes along the way? I think part (but definitely not all) of the solution is to really nail down the performance based objectives of the course before beginning design and development. That sounds so obvious, but I know that it is seldom done.

Thursday, March 5, 2009

Game Project Progress Report #4

OK, I fixed the GUI. In fact, the interface is complete!


Program now stands at 1,621 lines.

I still have to add the execution logic (to run the programs which the user writes) and make it accessible over the internet (probably as an applet).


I think "BucketLogic 1.0" will be complete tonight. But I can't say at what hour...!

BucketLogic 2.0 will include IF and WHILE/WEND constructs...eventually.

Game Project Progress Report #3

I made some changes to the GUI for aesthetic purposes...only another Java programmer would understand how easy it is to screw things up when you do that. Stupid layout managers...grrr...

Wednesday, March 4, 2009

Game Project Progress Report #2

I spent some more time on my project today. In an attempt to make it as visual as possible, I have decided to replace the "keyboard" with a "keypad". Therefore, the entire simulation will be button driven.

I have no significant design issues to discuss...just a progress report. Here's what it looks like so far:


FWIW, this is 859 lines of Java code so far (that count includes blank lines, comments, braces, etc.)

Tuesday, March 3, 2009

Game Play Reflection #5

At 2:03pm I started playing. Yes, I am timing it as I am not willing to spend more than the requisite two hours per week playing – and I am counting the time it takes to write my reflection in those two hours so as to minimize my suffering.

I am still trying to complete the Special Forces Escape and Evasion training. And it’s so hard to see! After about a half hour I went to the internet to see if there were any good hints. One post mentioned adjusting your brightness. Huh? I can adjust the brightness? It didn’t say how, so I just started pressing function keys until I saw some reference to brightness. OK, at least now I can see.

So I continue to stay low and slow. But it doesn’t matter. The “enemy” always sees me. When you are seen, the game zooms in from the perspective of the spotter. Sometimes I can see myself clear as can be. Oops. I was out in the open (but there wasn’t any cover!) Othertimes, I can’t see any hint of me. I have no idea what they saw. So it’s back to the start again.

A couple of game forums mentioned that this particular part of America’s Army can take three hours to complete: one hour per checkpoint. I have yet to make it to the first checkpoint.
I continue to try and to retry. In this picture I have gotten farther than ever before by going through the trees to the left of the enemy camp. I managed to get here three or four times, but I always get spotted.


I check the clock. 3:03pm. I’ve spent an hour. An hour I can never get back. OK, new strategy. From this point on – or until I adopt a new strategy – I will spend one hour in training and one hour in combat; that is, if I can find a combat mission to take part in. What I really need now is an hour of bloody mayhem to calm me down abit.

So...I’ll try “Infantry – Border Missions”. But wait...it looks like I have to enter a multi-player game. It’s probably full of nerdy kids and frustrated graduate students. I can’t face this kind of humiliation yet.


But somehow – no, I don’t know how – I’ve stumbled on a “map” game where I just walk through the map, picking up “briefcases” with sensitive information. No one shooting. Just the wind howling and the occasional dog barking. I don’t need to be Special Forces to do this! So I walk around, and I am understanding how the navigation tool works at the bottom of the screen.

Here’s some nice desert scenery. This is good. Afterall, I like desert.


And here’s a briefcase, just before I press “F” (how intuitive) to pick it up...


And approching another objective (B, C, and D turn out to be beat up pickups.)


Having accomplished all of the objectives (and meeting no resistance at all) I have no choice but to start playing the game. I choose a server, and then I am required to enable something called “Punkbuster”, which requires about 5-10 minutes. Finally, I “pass” and I am fighting with the likes of “IMA HOE”. I can see that Punkbuster is really doing its job. I have to join a side and pick a squad (at least I think that’s what this is...)


And eventually I am in the game. So I start walking around. I see a few friendly forces running around haphazardly. I attempt to find an objective. About three minutes into the game, some asshole shoots me in the back. This is me dead...


And this is my corpse rotting in the desert...


Actually, it’s just bad rendering, but I think it looks like my body has been picked clean by rodents.

OK, it’s now 4:18pm and I’ve gone over my required time by fifteen minutes. Seriously, enough is enough. I am going to buy “ToonTalk”, which I reviewed earlier in the semester, and start playing that game in earnest. I am far more interested in an educational game that teaches “visual programming” than in this piece of crap. With all due respect to the men and women of the United States Armed Forces, this Private is taking his leave now.

Gee Chapter 4 – Best chapter yet…

Describe an example of situated learning (meaning) in your video game.

First, I will give a couple of quotes from Gee as he describes situated meaning:

“In games like Deus Ex, the meaning of any event, object, artifact, conversation, written note, or any other potentially meaningful sign is up for grabs. …meanings in video games are ‘situated meanings; or ‘situation-specific meanings’, not just general ones.” (page 82)

“While video games actively encourage such situated and embodied thinking and doing, school often does not. In school, words and meanings usually float free of material conditions and embodied actions.” (page 84)

“Meaning is material, situated, and embodied if and when it is useful.” (page 87)

An example in my video game (America’s Army) is the use of various keys. Most important keys: “W” to go forward; “X” to cycle through standing, crouching, and crawling; and “F” to “use”, where the meaning of “use” is, itself, situational. “Use” can mean pick up a rifle, open a door, or flare your parachute.

Describe a learning experience in a traditional environment you have had that would have been much improved if it had been better situated, How could that have been done?

I think statistics classes are flush with opportunities for improvement! In particular, the notion of variation in a process. Around about 1996 I traveled to Christian Brothers University in Memphis to attend workshop for statistics instructors. We spent several days working with very simple hands-on examples which repeatedly “gave meaning” to the notion of variation in a process. The entire weekend we did nothing more complicated than calculate an average. I don’t think we ever calculated a standard deviation: no square roots all weekend! But I learned more about variation from those simple exercises than I ever had before. Indeed, concepts which were still abstractions to me finally became concrete. And this is after I had completed my MS in Applied Math. There were other teachers there with PhDs in Mathematics, and I know they felt the same way.

Any other thoughts?

Yes! Pages 84 through 86 are awesome! But especially the following quote, which is relevant to my experience at CBU as described above:

“Now someone’s sure to say: ‘But we cannot teach children everything they need to learn in school, things like science and math, in ways that make sense in terms of situated meanings and embodied actions. There just isn’t enough time, and, after all, they’re not all going to become scientists.’ There is a sort of good common sense in this remark, but the problem is this: There really is no other way to make sense. If all you know – in any domain – are general meanings, then you really don’t know anything that makes sense to you.” (page 84)

So true!

Sunday, March 1, 2009

Game Project Progress Report #1

I have come up with a game for my course project. Actually, it's more of a simulation, and it's an extensive rework of a project I completed in 2001. It is a computer simulator, and the user can actually write and execute their own programs using a limited instruction set. It's written entirely in JavaScript, and it's a pretty cool program if you're into this kind of thing. Anyway, here's what the original looks like:


As you can see, the original was entirely text based. Well, I was profoundly affected by Gee pages 84-87, especially the comments about situated meaning, embodied experiences, and abstraction. It occurred to me that my computer simulator could be made less abstract if it was more visual. So I came up with a Powerpoint storyboard, the last slide of which appears as follows:

In this example I am using labeled bins to show the contents of memory rather than a text based "memory dump" as shown in the first image. I sent the storyboard to our professor, and he said to go with it, and so that's what I have done. He also suggested that I post my progress here. (I have an advantage over most of you in this area because I am a Java programmer by profession. And work is slow right now, so I have some time to kill.)

As I thought about it some more, I decided I want to make this as "visual" as possible. Now here is where you all have the advantage over me: I am not artistic at all! But the first thing I came up with is the use of buckets. Over the years I have often heard the term "bucket" used by programmers when referring to some place in memory to hold the contents of a variable. So I found a bucket on the web...

Now Java is a great programming language, but when it comes to designing the GUI; that is, laying out the screen, it is a terrible language. Creating the layout can be very time consuming, and usually involves a lot of trial and error. Anyway, here is my game so far...


Buckets will show their contents in text boxes. Buckets are "lettered" and the user will refer to the buckets (memory locations) by letter. I tried to come up with a clever name for my simulator, and the best I could come up with is "BucketLogic". What do you think of the name? I welcome your suggestions. I will keep you posted of my progress.