In her dissertation on African-American leaders, Dr. Shanetta Robinson has a couple of memorable quotes on this topic.

One executive she interviewed urged women leaders that have reached the top to “leave the ladder down”.

Another admonished that if you reach the top, you should bring someone else with you.

Michelle Obama, in her beautiful speech at the Democratic National Convention said that her husband

…  he believes that when you work hard and done well and walk through that doorway of opportunity, you do not slam it shut behind you.

No, you reach back and you give other folks the same chances that help you succeed.

It’s funny because I wrote almost the same thing on my blog on judo yesterday, that success is what you leave behind, about my friends and mentors, Frank Fullerton and Bruce Toups, who provided the resources I needed to win the world judo championships. In appreciation, I still teach judo to this day.

The same applies to business, to academia. We hire interns, I teach graduate students, not because it pays off that much but because at some point someone gave me my first opportunity , someone (more than one) spent time to show me the ropes, answered my questions.  When someone hires us instead of a large multinational consulting company, we appreciate that. We do a lot of business with small local companies. We’re the largest customer for a number of small businesses. We believe in leaving the ladder down.

Recently, a successful young business owner argued with me against working with another developing small business,

Sorry, but I’m an established business. I’m successful. I can’t be experimenting by working with someone who is just getting started and isn’t sure what they are doing.

That young person was wrong. We’re all experimenting all of the time. Sometimes the chances pay off and sometimes they don’t. If no one took a chance, though, we wouldn’t be here.


Learn math. Save lives. Learn culture. Kill animals. (Relax, it’s a game.)

7 Generation Games Logo with feathers

My heart goes out to whoever is writing the blog, “My start-up has 30 days to live”. It’s the truest thing I’ve read about business since Paul Hawken wrote that the reason most small businesses fail is that they have too much money. 

It’s funny, because I was on the Forty Women to Watch over Forty list that came out this week as “Gaming the System, by her Bootstraps”.

We did the opposite of a lot of the choices this failed entrepreneur made, in part because this isn’t our first time around the merry-go-round and partly due to that, angel investors weren’t beating down our door. The only one who looks less like the Mark Zuckerberg – Bill Gates – Steve Jobs demographic start-up than me is this guy:

pirate skeleton


I wrote a post We’re grandparents doing an awesome start-up and Logan’s Run can bite me in which I pointed out that people over 50 may be perfectly poised to be entrepreneurs. Three of our four children have their own careers and are doing quite well. The Spoiled One received a scholarship to La-Di-Da Prep Boarding School (just because she’s spoiled doesn’t mean she isn’t smart).

In short, we were able to bootstrap 7 Generation Games. A big part of the cost is programming and we have two programmers right here. Rather than take angel investor money and hire a programmer or two, we cut out the middle man, did the work ourselves and lived off a combination of retirement income from The Invisible Developer, who had worked things out to retire at 56 (we’re GOOD at math) and whatever statistical consulting I felt like doing.

I received conflicting advice. Some people told me that venture capitalists don’t take bootstrapped companies too seriously. The best advice, though, came from a VC at a Women 2.0 meet-up who told me not to let go of 1% of equity any sooner than I had to. Because it was our own money, we were spending when we hired artists, animators or administrative staff, we made damn sure we needed them. I really watch our budget. When we picked up $21,000 from Kickstarter, some of it was from family and friends and some was from people who I know the $50 they kicked in was hard-earned so I feel a real responsibility to make sure not a dime is wasted. We still don’t rent an office. Mine is downstairs in our house, The Invisible Developer is upstairs (no one sees him).

We applied to one or two accelerators, were not accepted and were told flat out by a couple of venture capitalists that our target market wasn’t big enough. I’m a statistician and it seemed to me that a 50% probability of making $5 million a year was worth more than a 1% chance of making $100 million.

“Cut out that pesky client that generates 80% of your revenue”

That comment from the dying start-up blog sounded familiar. The really lucky thing for us not being part of one of those accelerators is that we went right on doing what we do well – developing games to teach math. We started taking pre-release orders this week. Starting next month, I will be meeting with each of the schools that will receive free licenses. In our Kickstarter campaign, we promised to donate a license for every one purchased. Most of these schools are on or near American Indian reservations, which is where most of our employees live. One grant funding agency called our decision to focus on low-income Native American students “inexplicable” since they weren’t a large enough population to bother with. Fortunately, the USDA disagreed and gave us $99,000 in Small Business Innovation Research grant money.

The same start-up blogger says that he didn’t build his company with generalists, he built it with perfectionists who could build beautiful things. We have perfectionists who can build beautiful things, but they are on contract and paid a set amount per task. They could probably do it better for more money but as I often quote to Darling Daughter Number Three “The Best is the Enemy of the Good”. We have a budget and the people who make beautiful things have to work within it. The people who can do 15 different things are on salary.

My point is not that we are so smart and the man closing down his company is not. Quite the contrary. As I read his posts, at many, many points, I think That could have been us. Maybe if angel investors had been more interested earlier on, before The Invisible Developer turned to me and said,

“You know, I can work on this for free, well, forever”

we would have taken angel funding. I’m not dissing angel investors, by the way. I attended a few Tech Coast Angel events and learned a lot.

What I’ve been reflecting on lately is the fact that because we were an older, atypical start-up, we were passed over by a lot of the fast-track resources.

And that just may have saved us.


Learn math. Save lives. Learn culture. Kill animals. (Relax, it’s a game.)

7 Generation Games Logo with feathers


So, yesterday, if you were paying attention, we figured out WHY to do a factor analysis today’s post is about how. I’m using SAS Enterprise Guide because I had it open on my computer.

Here is what the completed project looks like:

Factor Analysis project


Here is what I did, reading from the top — I opened a data set, ran a factor analysis and looked at it. When I looked at it, I saw that over 120 of the records were missing out of less than 500 people. I made a note of this – literally.

Thing to know: the default for SAS is to delete a record if it is missing ANY of the variables.

Next, I ran summary statistics to see if maybe there was one that 200 people were missing, say it was about how much input parents have into your job choices and most of the kids did not work. If that had been the case, I could have just dropped that one variable. It wasn’t.

So… I ran correlations of all the variables and then I factor analyzed the correlation matrix (WAY easier than it sounds!)

After I took a look at the results from this analysis, I thought I could do better, so I re-analyzed the data requesting only three factors.

With the overview out of the way, let’s take a look at each part.

Open the data set is a piece of cake, go to File > Open > Data

factor2Select the data set you want, just like you open a file in Microsoft Word or anything else.

To do the Factor Analysis, click TASKS then MULTIVARIATE  and then select FACTOR ANALYSIS


A window will pop up where you select the variables you want to use in the analysis

select variables


Click on a variable and then click the arrow which I have so helpfully labeled as “A”. Notice that SAS Enterprise Guide in the box I have equally helpfully labeled “B” often gives you tips on what you are supposed to do in a given situation. You’re welcome. You can hold down the shift key, and select a bunch of variables at once, too.

You can leave most of the defaults but I would strongly suggest that you change two of them under ROTATION AND PLOTS. Generally, you’ll find a rotated factor pattern easier to interpret. I usually start with ORTHOGONAL VARIMAX rotation, which assumes that your factors are unrelated. I always want a scree plot, so I check that. Then, click RUN.

options to change


When you get your results, do NOT look at your results first. Be smarter than most people and look at your log. To do that you click on the tab that says LOG



When you do, you see this:


If we didn’t have a lot of people missing data, we could skip the next few steps, but hey, that’s life. One of my big gripes about many statistics courses and textbooks is they pretend that data is always just pristine and perfect. There are very few times in real life that your data are like that, and this is not one of them.

So …. before going any further, I decide to look at the descriptive statistics for the data. Normally I look at this before any other  analyses to make sure the data are not out of range, there aren’t people who show an age of 999 or who scored 99 on a scale of 1 to 10. There aren’t variables that were skipped by 90% of the sample.  I did that with these data but since now I am missing over one-fourth of the sample, I decide to look again.

To get descriptive statistics using SAS Enterprise Guide, go to TASKS > DESCRIBE > SUMMARY STATISTICS

Tasks to Summary statistics


A window will pop up and just as you did above, select the variables you want to analyze. When I look at the results, I can see that the data are fine. The variables are on a 0 (=Never) to 3 (=often) scale and that all looks right. The sample size is 431, 428, 429, 415. In other words, for each question, a few people overlooked it or skipped it, but if you add all of those people who missed one here or there together it comes out to 123 people.

sample summary statistics


Here is where you can factor analyze  the correlation matrix. You see, a factor analysis is a look at which items on a questionnaire are related. We hope to find a group of items that are related to each other and then put them into  a scale of say, parental supervision. What else looks at whether a bunch of items are related? Why, a correlation matrix.

Because I should get some actual work done for money, I’ll talk about how to do that in my next post, unless some other shiny thing catches my eye and I decide to write about something else.


Learn math. Save lives. Learn culture. Kill animals. (Relax, it’s a game.)

7 Generation Games Logo with feathers




“The problem with women isn’t that they leave you, but that they have to tell you WHY.”

Whether in teaching judo, statistics, programming or management, I’m a big fan of telling people why.

As I said before, the first step in programming is to THINK. This applies to statistical programming as well, which is what you are going to do with your survey data.

Ronda choking Manny with triangle

Okay before you react as if you are being choked by Ronda

and try to escape and run screaming from the room, hear me out.

In my example, the 500 Family Study, the data set I used had 460 different items.

Even if you break it down to only the ones that are of particular interest to your question, which were relationships between parents and children, you have 42 different questions. How are you planning to discuss these?

If you are like too many people, you’ll give 42 statements like:

9% of adolescents reported parents never checked their homework

23% said their parents checked it rarely  ….

blah blah blah for 42 variables.

There are three problems with doing it this way:

  1. No one, unless they are on your dissertation committee, is ever going to read it,
  2. God forbid you might want to actually look at RELATIONSHIPS among things, say, parental supervision, communication and positive views of parents. What are you going to do now? Look at how each of the 42 variables relates to the other 42 variables?  That’s 1,764 variables, if you are keeping track. And don’t you DARE run a correlation matrix and just interpret the 88 that are significant. You will go to statistical hell right along with Sir Cyril Burt.
  3. Individual variables are notoriously unreliable.

Let’s talk about reliability, variance and validity, which you already know quite a bit about just by living. Answer these questions:

You have studied for a final exam in Biology 101. There is one question, “What is the relationship between respiration and photosynthesis?”

Is this a fair test?

Your child is in fifth grade. Her weekly spelling  test consists of one word.

Is this a fair test?

Okay, these aren’t trick questions and don’t start with the “Well, it depends on what was covered in the class …”  unless your biology teacher was incompetent or your child’s teacher was an idiot, there was more taught than photosynthesis in your biology class and they learned more than one spelling word that week.

The plain fact is that people are complicated and whether it is their knowledge of biology, how well they can spell or their relationship with their mom, you aren’t going to get as much information from one single question as from several put together. This is why spelling tests aren’t just one word. People VARY. They vary a lot. If you give only one question then all of your students fall into one of two groups – they spelled it correctly, 100% or they spelled it incorrectly 0%.  That is almost certainly not valid, surely some of your students are better spellers than others and they don’t fall into just two groups. Same with any number of other characteristics – some people wouldn’t cross the street to piss on their parents if they were on fire and others have practically never left the womb at age 14.  Then there is everybody in between.

wine label - totally randomEvery individual item has a “true variance” aspect, how much you know about biology or spelling, how much of a loving family you are, and the statistician’s favorite whine – totally random, that is error variance. Maybe you know a lot about biology but you just happened to miss that day, skip that chapter on photosynthesis. It’s error in the sense that it doesn’t really represent the underlying construct (idea) you are trying to measure. Perhaps your family doesn’t ever have dinner together because Dad works the day shift and Mom works the night shift ….

So, other things being equal, the more questions you add together, the better. A spelling test with ten words is going to be more reliable, have more variance and be more accurate (valid) than a test with only one word. The same is true of a biology test or a measure of family functioning.

That other things being equal qualifier is important. If you add up the question on biology, the one on spelling and the one on your mom, you don’t have a more reliable or valid test of anything, even if you do have more variance. You’re just being stupid. Cut it out.

SO … you should have done this in the first place, but if you didn’t, better late than never.  Sort your items into groups that might be related. In my example, I have parental supervision, decision-making and discussion. That just happens to be 42 questions. I may revisit this decision later, but that’s what I’m going to use for now.

NOW  do you get to do a factor analysis? No.

NEXT you want to make sure your data are accurate. For reasons totally behind my comprehension, many people use codes for missing data, like 9. So, you have a bunch of people who have a score of 9 on a 1 to 5 scale and it completely throws off your results. Look at the descriptive statistics for your data and at a bare minimum see that you don’t have any variables out of range like that. This is just a reminder to always check your data before doing any even barely sophisticated statistics.

You’re set.

You understand WHY you are doing a factor analysis  – because you want to combine these many, many questions into a few reliable, valid scales that have some decent variance.

You understand WHAT you are doing a factor analysis with – you have selected out the appropriate questions you want to use.

You have checked to see that your data at least don’t totally suck. (If you’re not sure how to do this part, I’ll talk a little about that tomorrow,too).

Well, congratulations, you are now all ready. Check back tomorrow for “Mama AnnMaria’s Point-y Click-y Guide to Factor Analysis” in as many easy lessons as I decide to do before I get bored.




How we refer to older women in our language would be translated literally as “the one who holds things together”. Yet, we have forgotten that in the modern world. We are no longer proud of our grey, we hide it with dye in our hair. We go to aerobics classes to try to keep the figure we had in our twenties. Every magazine tells us to try to look younger rather than taking pride in our status as grandmothers and elders.



I think when she said that was the moment I decided that Debbie Gourneau was the perfect person to hire as our cultural consultant for the Ojibwe content in our game. Debbie is, as the old saying goes, a woman who is comfortable in her own skin. She doesn’t feel a need to be one whit different than she is.

She is also correct that in many instances, older women ARE those who “hold things together”. I love my children very much and, as our Dakota cultural consultant, Dr. Erich Longie said when he came to visit one day, “It’s clear your family revolves around you.” I actually knew exactly what he meant and what Debbie meant also. In many families – I would say most – the mother is the hub of the family, just like those airline hubs where I spend FAR too much time. You know, like if you fly Delta you’re probably going to change planes in Atlanta.

My children see each other at Christmas, at Easter, Mother’s Day when they come to see me and they are all there. I’m the one that texts reminders, “Call your sister, it’s her birthday”, who helps pay for weddings, reminds people to send gifts to graduates, tells one person to do her homework, reminds another to call her accountant and hollers at all parties involved until they make up after an argument. It’s a mom thing.

The same is true of running a business. I spent all last week (when I REALLY wanted to be coding) doing a breakdown of our next game into a hundred different tasks, literally. The artist will draw this, one of our cultural consultants will read this dialogue, the animator will create a video, the math problem will be this, the 3-D game challenge will be that. It is the same skill of pulling people together, remonstrating when they make a mistake, helping people develop skills, seeing what we’ll need in the future to all grow together.

It’s no surprise to me at all that women over forty are running technology start-ups. It seems like we’re a natural fit.

I am super-stoked to be on the list of 40 Women to Watch Over 40. Check it out.


7 Generations Game Logo

And if that isn’t enough, our 7 Generation Games has launched! Click here to find more details and get in on the fun and learning! 

Too often, when I look at the surveys some people design, I have the same thought as when I see my granddaughter with a lollipop bigger than her head –

Just what exactly do you think that you are going to DO with that?

Eva with huge lollipop

The problem is that both may have metaphorically (or, in Eva’s case, literally) have bitten off more than they can chew.

Okay, great, you asked 72 questions on your survey, received 1,873 surveys back and most people answered most of them. You could try throwing everything into data mining software with your 72 items and hope for the best but that presumes a) you have some data mining software handy and b) an understanding of test sets and validation. I’m going with the more likely scenario that the answer to either a) or b) is

Um – no.

Imagine yourself in this scenario – someone, maybe you, has collected survey data at great expense. Maybe you paid subjects to answer questions about themselves, gave students credit to participate in a study, and now you have dozens, perhaps hundreds, of variables on each person. How on earth do you analyze these data? You could just go through and start putting questions together to form subscales, but that is pretty arbitrary. Enter factor analysis to help you make sense of your data.

Factor analysis is extremely useful. Conceptually, it is relatively easy to understand – mathematically, um, not so much so.

You take a large number of questions and find what few, underlying traits they represent, such as supervision, collaborative decision making and ambition.

So, for example, the Weschler Intelligence Scale has many, many items. These can be combined into subscales such as information, comprehension, object  assembly and coding. The subscales can be further aggregated into two scores – a Verbal IQ and a Performance IQ.

This is based on the belief expressed by Wechsler who said that some people were good at reasoning with words and other people are good at reasoning with things but that both were types of intelligence. Writing a paper displays your intelligence, but so does putting together a computer or designing a part for it. So, said Wechsler, let’s have a bunch of items that measure those two factors, add up the scores on those items and get our two types of IQ.

Ever since I watched this TED talk by Conrad Wolfram on how math does not equal computation (and he is, of course, right), I’ve been thinking about how to apply it to the work we do here at The Julia Group.

Factor analysis is one example. The math behind it can be fairly daunting, but the actual concept is quite simple, and there are tools like SPSS and SAS Enterprise Guide that now eliminated the need to learn programming.

Still …. how do you know the number of factors? How do you decide which survey item goes with which factor? Why would you rotate and which rotation would you use?

Stay tuned and … later this week I will explain the answer to those questions and more. I know you can hardly wait.

If you have not listened to the TED talk by Conrad Wolfram, I highly recommend you do. If you have any interest in math education, the odds are great that his talk is far more important than anything else you could possibly doing in the next 20 minutes.

If you think the name sounds familiar, it’s because he is one of the masterminds behind Mathematica.

What is so fascinating about his ideas? In a nutshell, he says that we teach calculation – addition, multiplication, exponentiation, logarithms – as math. That takes up 80% or more of our curriculum because it is not easy for most people to learn, it requires memorization and they don’t want to learn it (so it probably requires more badgering).

We spend a few years in childhood learning “math facts” – subtraction, division, multiplication, addition. We spend a few more in adolescence, if we are “good at math” – learning how to compute sines, tangents, logarithms, derivatives. Then, for the rest of our lives, we almost never do that by hand again.

This change occurred during my lifetime and it was one occasion where it actually benefited me to be poor. I could not afford a calculator in high school, so while all the more affluent kids whipped through their homework using calculators, I had to work it all out. When we took the SATs, unlike now, you were not allowed to use a calculator, so I did much better then they did.

Back then, it made sense. Calculators cost hundreds of dollars and you could not just assume you would always have one handy. As I sit here, there is calculator and several types of statistical and mathematical software on my desktop, laptop and iPad. There are even a couple mathematical apps, and, of course, the ubiquitous calculator, on my cell phone. When there are four devices capable of computation I can reach from where I am sitting it really doesn’t make sense to spend years of teacher and student time insuring that every child knows that 13 x 13 = 169.


One use Wolfram sees for computation is estimation. I wholeheartedly agree with him there. In writing our math education games, the next major update is going to have better analysis of student errors.

You are being attacked by rabid wolves. You’re just a kid, you can only hit a wolf about once every 5 times and 7 wolves are coming at you. How many arrows do you need?

There is an important difference between the student who answers this question with 33 and with 5 or 187. If they repeatedly make that type of error, it is clear that in the first case, they are good at estimation but not so good at computation. That is one reason we give two tries for most answers, and we almost never have multiple choice. We want to distinguish among the student who knows the answer but was in a hurry and didn’t read the problem completely, the student who understood the problem and did not get the calculation exactly right and the student who is completely confused.

I just watched this video for the first time a few days ago, and Spirit Lake: The Game was already out to our testers and ready to be uploaded. However, you’ll see some changes based on these ideas in the update in October, and even more in the new game we are making now.

Seriously, what is the point of learning new ways of thinking about math if you don’t do anything about them?

Your turn.


artwork from game7 GENERATION GAMES






Do yourself a favor and read this terrific post, The 10 Biggest Mistakes I Made as a Start-up Founder.  Given the miasma of bad start-up advice out there, this post is a breath of fresh air in a pollution of stupid.

The Julia Group is doing well, and our latest venture, 7 Generation Games, which started last year, particularly so. In part this is due to having avoided many of the mistakes Chima describes so honestly in his post. (Don’t take this to mean we never made any of the mistakes he mentioned, but this isn’t exactly our first time around on the merry-go-round. We’ve been in business so long I just refer to it as “being in business a long time” as opposed to “serial entrepreneur”. Uncool, I know.)

1. Don’t choose the wrong co-founder

When 7 Generation Games desperately needed another technical co-founder, The Invisible Developer had just retired from 30 years in software engineering. Chima says more effort should go into choosing a co-founder than picking a spouse. In my case, the exact same amount of effort went into it. This is the guy  who, when we were dating, my college students referred to as “Computer God”. Obviously, we can get along and negotiate conflict, since we have seen three daughters through adolescence and are now on the fourth. When he expressed interest in finding some new software project to keep him occupied, I immediately said,

“I will pay you, give you a share of the company and have sex with you, too.”

Prompting The Spoiled One to run from the room with her hands over her ears chanting “La la la, I can’t hear you!”

Julia, aghast

Seriously, if you have an opportunity to co-found a company with someone people call “Computer God” and you don’t, you’re probably going to fail no matter what you do.

The other co-founder we brought in was Maria Burns Ortiz, a journalist with a decade of experience at Sports Illustrated, ESPN and published hundreds of times in two languages in three countries. Her latest venture was the social media beat for We needed someone to do marketing and when Maria stepped in and helped run our Kickstarter campaign that raised over $20,000 I knew we had a winner. She is also my oldest daughter so I knew full well how driven she is to succeed.

Working with family members can have its own unique set of challenges and advantages, as Jon Peltier, commented on twitter. One advantage in our case is that we all had established our careers separately, so when we came together it was as a group of equals respecting each other. We were all professionals at the start. If Maria had come to work for us right out of college (as I offered) rather than ten years later, it would have been a very different dynamic. A second advantage is, honestly, we have a very good, functional family, the kind that I used to see on TV when I was a kid and did not believe really existed. I seriously think that The Invisible Developer was raised by Ward and June Cleaver, but that’s a topic for another day.

2. Don’t build a business you can’t afford

I love this piece of advice from Chima because it is the opposite of what I have been told by many potential investors, and I think he is right and they are all wrong. We have been looked down on for “boot-strapping” our business. We’ve worked for free for many, many hours. Because our consulting side of The Julia Group does well enough that we could work every waking hour, if we work twenty hours a week on the game, that is 20 hours of consulting income – each – that we are foregoing. Quite a bit. On the other hand, the equivalent of a full-time programmer including salary and benefits (health care, social security, workers comp etc etc) is going to run at least $100K a year and we did not have to pay that. On top of that, we received $120,000 from a combination of Kickstarter and SBIR funds.

There are two advantages to using our own funds. First, we don’t have to answer to anyone. I’ve sat in meetings where someone wanted us to go in a direction that I thought was completely wrong, for example, spending six months on usability testing rather than putting our game in the schools, and I had the freedom to say, “No.”

As Erich once said to someone explaining a decision he and I made regarding my last company, Spirit Lake Consulting, Inc.

“We own 100% of the company so we get 100% of the say.”

Second, as Paul Hawkens said in Growing a Business, which I still consider the best business book that I ever read, the reason many businesses fail is too much money. Because this was our hard-earned cash from other projects that we were investing, whether it was artwork, animation or project management, at every turn, we asked whether or not we really needed this.

3. Your business should reflect your personality

We all love different aspects of the business.  Every one of us loves children and we have six kids among us to prove it. Two of us LOVE math. Two of us care deeply about educational inequality and supporting schools in disadvantaged communities. We have a world judo champion, the first female pole vaulter at not one, but two different high schools, two people who graduated from college well before they were 21 and one who taught himself Calculus in the eighth grade and then spent high school teaching himself physics. We’re unapologetically smart and not the least bit reluctant to test boundaries and wander off the beaten path. Our game and our company is exactly like that.

As for me, yet another point in this post resonated

4. Set goals for yourself

I’m trying to finish the game design for Game 2 so that’s all for this post. (Yes, we are designing and developing simultaneously, but that is a post for another day)

Go here to see the games we make – they’re awesome. Less than ten bucks a game!  mayanjungle

Two new games coming out in Fall, 2015 (yes, soon!) and Spring, 2016.

For you –

Go read the article. It’s great. Read Growing a Business, too, while you are at it. You’ll be glad you did both.



Spirit Lake: The Game is mostly an adventure game that teaches math. However, it has lots of Easter eggs, side quests and spin-offs added because hey, these are kids and sometimes they like to do something different and some of them have the attention span of an ant.

Splash Screen

Our idea is to make the game fun, even when you get the answers wrong, you get sent to do something else that’s fun. I saw a Flash game that used refrigerator magnets for division problems which seemed pretty fun, but we are avoiding Flash since we want our game to be easily portable to iPads from the current version that runs on Mac OS and Windows. So … I spent today writing a refrigerator magnet division application. You can see it here. It still could use a bit of tweaking – I  need to add the refrigerator background and I think I’ll change the pictures of magnets I have to some that are more cute and fun.

Being our child, The Spoiled One did not even ask why The Invisible Developer was in the kitchen taking pictures of the refrigerator.

Here is the problem I ran into …. it was working fine EXCEPT if I had a problem like 36 ÷ 6 in which case the second value was blank and all I got was

36 ÷

It was as if the image (remember, each number is a picture of a refrigerator magnet), could only be used once. Well, of course, that WAS the problem.

From the enormously helpful Mozilla Developer Network

If child is a reference to an existing node in the document, appendChild moves it from its current position to the new position (i.e. there is no requirement to remove the node from its parent node before appending it to some other node).

This also means that a node can’t be in two points of the document simultaneously. So if the node already has a parent, it is first removed, then appended at the new position.

I was doing exactly  that, the offending statement is shown with *** below

function getProb()

var choose2=randnum(1,9);
var temp=randnum(1,9);
var choose1 = choose2 *temp ;
rightanswer=choose1 / choose2;
w = choose1 + "" ; x = w.substring(0,1) ;
** document.getElementById("pic").appendChild(imgArray[(choose2)]);
if (w.substring(1,2) )

y = w.substring(1,2) ;

What this snippet does is generate a random number between 1 and 9, then generate a second random number.  The two random numbers are multiplied to give me a product of two numbers between 1 and 9 because the game progresses gradually in difficulty from early levels that assume children have not yet mastered division with remainders, and this little applet goes into an early level. So, the number which we use as our divisor should be divisible without a remainder.

The divisor (which, of course goes first in a division problem) divided by the second number shown on the page (choose2, our dividend) gives us the right answer.

Earlier in the program (not shown) I had created an array which was like this

var imgArray = new Array() ;
imgArray[0] = new Image() ;
imgArray[0].src = "zero.png" ;
imgArray[1] = new Image() ;
imgArray[1].src = "one.png" ;

The answer is going to be between 1 and 9, so I can take whatever it is, find the same number in the array and put that image into the cell for the dividend.

I need to break the number to be divided down into digits because, remember, these are refrigerator magnets and numbers between 1 and 9, so each digit is a separate image. I did it by making a string variable by adding “” to choose1. I then took the first digit and put that image into a table cell. If there was a second digit, I took the  image in the array corresponding to that and put that into another table cell.

BUT …. what happened was when a number was used twice, like in the example of 36 divided by 6, when I appended the 6 to the divisor, it was removed from the dividend cell.

How to solve this? Well, one way is to create another array of images, which I did, both because it was a super simple solution and I immediately thought of several other reasons off the top of my head why that might be useful. I can certainly envision using this code again in the game, for example, to emphasize which is the divisor and which is the dividend. There are lots of points where students confuse the two, or fail to understand that you cannot switch them around and still get the same answer, like you do with multiplication. In fact, I’m already thinking about having the numbers for the dividend being red or flashing (probably not) or from a different set of magnets.

So, there you have a nifty little reminder about how appendChild works and a super-simple way to fix a possible problem.

There is also another point in here I’d like to make. Last night, I attended a meet-up on gaming where some people were positive that they did not need to know anything about math education to write a math game because, “Hey, everybody knows K-12 math and the teachers know how to teach it.”

Yes, most teachers do know exactly what their students should be learning, but do YOU? Because if you have a game that is assuming students can divide numbers that have remainders and the students are not at that point yet, they will be frustrated. It really isn’t the teacher’s responsibility to insure that your game that you say is at fourth grade level really is. Even if it is, at what point in fourth grade? What exactly does it teach? When should he or she be introducing it to the students? At the end of the school year? At the beginning? Do you know what a divisor or dividend is and that students often mix them up? What area of mathematics do most students have problems with in fourth and fifth grade? What should your game emphasize?

I think the fact that many math educational game designers don’t give much attention at all to math is why most math educational games suck at being educational, no matter how cool they may be as games.

Intimidated by your latest programming task? Code taking longer than you think it should? Here’s a tip –

template for flow chartsWhen I was in college, flow charts were what the “cool kids in computer science” did – a phrase Darling Daughter Number One has informed me is oxymoronic. Seriously, when I took Fortran and Basic in school part of what we bought for class were these plastic green templates that had different shapes for decision ( ◊) , disk output, tape (!) output, printed output and so on.

I very seldom use flow charts any more unless it is for a VERY complicated project and I’m not suggesting you necessarily should.

Because I have been doing it for a long time, much of the programming I do is like writing this blog – dashed off at random.

Lately, it has occurred to me that for all but the simplest tasks, the best way to do it is probably mid-way between the two.  Write down what you intend to do. If you are like me you will probably write it in code-lish (that is like Spanglish but with a programming language instead of Spanish).

For example, I’m writing a computer game for kids and in part of it I want the answers to be numbers like refrigerator magnets and they can drag them around on the “refrigerator”. The right answer will have to be broken down into digits.

i = rightanswer.length ;

do while i < 0 ;

Make the array

Do 1 to right answer length

Array[x] = substring(rightanswer, first digit – hundreds place)


end ;

Then I thought, you know, in this case, the right answer isn’t going to be more than three digits because these are problems for young kids. Instead of all of this, I could just do:

i = rightanswer.length ;

x = substring 1st digit

if  i > 1 {y = substring 2nd digit }

if i > 2 {z = substring 3rd digit }

While normally  IF statements are not considered as elegant as arrays and violate the DRY principle (Don’t Repeat Yourself), this is only 3 lines.

My point is, that none of this yet involved any typing or testing. I did it with a pencil and paper (yes, they still make those).

Pencil in its natural state

Pencil in its natural state

The first step in programming is to think about what you want to accomplish and how you are going to do it. After you have done that, you should sit back, evaluate it and ask yourself if perhaps there is a simpler or better way. In short, step one is to THINK. Maybe IBM was on to something 80-plus years ago.

Think sign from IBM


Next Page →