Home

April 16, 2008

Self-reproducing programs

Filed under: Programming — mik @ 8:55 pm

220Px-Dna Overview
I recently gave a talk in our department’s series of Book Talks. In this series, a staff member introduces a book they like or they were influenced by. The book I presented was the wonderful Gödel, Escher, Bach by Douglas Hofstadter.

One of the many things Hofstadter talks about in this book are self-reproducing programs – programs which create copies of themselves. (In other words: programs whose output is the same as their source.)

While thinking about this, I decided to write one myself.

(more…)

March 5, 2008

Greenfoot gets mouse support

Filed under: Software Tools, Greenfoot — mik @ 4:08 pm

Greenfoot-64

Greenfoot is finally getting proper support for mouse input. This has been the single most requested feature for some time. This means that you can now write games that use the mouse as a control. Such as Minesweeper.

(more…)

February 17, 2008

Programming is not hard - Knowing what to program is hard

Filed under: Programming, Software — mik @ 3:33 pm

Programming is not hard.

Sure, there are plenty of examples you can pull out of the bag that have really brain-numbingly complex algorithms in them, and they are indeed hard to program, but they are really the exception. For most programmers and most programs, this is not the case.

Most programs that fail do so not because the implementation is done badly or fails altogether, but because they implement the wrong things. Its not that the programming was hard, but that they programmed something nobody wants.

Deciding what you should program is where all the beef is.
(more…)

February 13, 2008

Stupidity or just refreshing honesty?

Filed under: Miscellaneous — mik @ 11:47 pm

Just as everyone else, I regularly get spam. One of the common scams are “phishing” mails - pretending to be from a bank or other institution where you might type in your password.

Today, I got one that appeared to be from the NatWest bank. With this one, the scammers actually had a better starting point with me than most, since I actually do have an account at that bank (so it’s not quite as obvious as being asked to update my details at some bank in Timbuktu that I’ve never heard of).

But I don’t think the scammers quite thought this through to the end, as you might notice looking at the URL that the “Log in” button links to - stupidity or just refreshing honesty?

Scam

February 8, 2008

Teaching My Daughter To Code, Part IV: Return of the Daleks

Filed under: Greenfoot, Programming, Java, Teaching — mik @ 1:35 am

Thedoctor-1
Welcome back, dear readers, to the fourth part of Sophie’s journey of writing a DrWho computer game with Greenfoot and Java.

If you have read the previous parts, then thank you for sticking with us for so long! (If not, you may like to start reading here: Part I, Part II, Part III).

I’ll try to make it short today – it’s been a long day, and it’s getting late. But this programming session I’d like to record took place five days ago, I have only sparse notes, and I’d like to get it down before I forget too much. I have been busy this week, so I haven’t had time to write this up earlier, but there was so much lovely and encouraging feedback on the previous posts that encouraged me to continue writing this up.

Thus, without further delay, on to the next task: Reaching the TARDIS with the energy pellets!
(more…)

February 1, 2008

Teaching My Daughter To Code, Part III: Prepare The TARDIS!

Filed under: Greenfoot, Programming, Java, Teaching — mik @ 6:14 pm

The third part of my endeavours to write a Dr Who computer game with my daughter

Banner-1

If you’re reading this, then you probably already have an idea what this is about: An ongoing project to write a Dr Who-themed computer game with my daughter Sophie, who is 10 years old. (Yes, she’s 10 now - it was her birthday earlier this week!)

This is the third part of this story. In part I we got the Doctor to move, and in part II we added some Daleks. This time, we giving the Doctor something to do, something worthy of the last of the Time Lords: Collecting energy pellets for the TARDIS.

(more…)

January 26, 2008

Five Common Privacy Violations On The Web

Filed under: Software — mik @ 2:37 pm

Eye
Collecting user data without any concern for privacy or users’ wishes has become commonplace on the web.
It’s wrong, and we should start to act against it by avoiding the sites that don’t respect users’ privacy.

And if you are a designer of such a system: Do the Right Thing. Let your users control their data.

(more…)

January 23, 2008

Teaching My Daughter To Code, Part II: Invasion of the Daleks

Filed under: Greenfoot, Programming, Java, Teaching — mik @ 10:32 pm

Dalek-1

Second part of my endeavours to write a computer game with my daughter

A few days ago, I have written about starting to teach my daughter some programming by inventing and implementing a game with Greenfoot and Java. Here’s the second part of that journey.

This time, I had thought a little more in advance about what might be a good thing to tackle next. Putting floors in, so that the Doctor would just walk on those levels (and ladders to go up and down)? Or other moves: jumping, ducking, etc?

I decided the most interesting thing would be to put some opponents in - other actors that you could run away from, and who could catch you. With the Doctor, it’s pretty obvious who that should be: the Daleks! (They are the Doctor’s prime enemy, after all.)

When I came home from work, I suggested this to Sophie. Happily, she agreed.

(more…)

January 20, 2008

Teaching My Daughter To Code

Filed under: Software Tools, Greenfoot, Programming, Java, Teaching — mik @ 6:19 pm

First party of a journey of writing a Doctor Who video game in Java with my 9-year-old daughter.

250Px-Doctorwhotitles2007

Yesterday, my daughter Sophie asked me to show her how to write a computer game. She is nine. (Well, only a few weeks away from being ten - at this age, a year still matters.) She has never written any code before. Now, there’s a challenge, if I ever saw one.

I am a computer scientist, and one of our projects is Greenfoot - a programming environment designed to teach kids (and older students) to code with Java. So far, that has all been part of my research work. Research into programming education, tool design, etc. I have used Greenfoot with kids (mostly about 15 years old), but more often I do presentations and workshops for teachers.

I have often wondered how low in age you could take Greenfoot. It’s Java, after all, not Logo. 15-year-olds clearly works. But 10 year olds? We don’t know.

So I told Sophie that we’d start making a game tomorrow. That was yesterday. So today was the day. Afterwards, I thought it might be interesting to try to record the process we’re going through — see what happens.

So here is my (hopefully continuing) diary of coding with my daughter… (Our results, live demo and source code, are at the bottom.)

(more…)

January 14, 2008

The Pitfalls of Java as a First Programming Language - A Response

Filed under: Programming, Java, Teaching — mik @ 12:57 pm

Two computing practitioners from an Ada shop in New York, Dr. R.B.K Dewar and Dr. E. Schonberg, who are also professors emeritus at New York University, have recently slammed Java as a first programming language. Their article has received quite a bit of attention and created wide discussion.

I think they are completely barking up the wrong tree.

Dewar and Schonberg report some observations, and than jump to conclusions that are not in any way supported by the observations or their argument.

Specifically, they state that today’s students are lacking certain skills (low level programming and formal methods), and then go on to blame the use of Java as an introductory language for this problem.

To state my conclusion upfront: They describe a badly designed curriculum, and then blame one programming language for the education’s problems.

(more…)

Next Page »