Computer Scientists and computer professionals who may not think of themselves as “scientists” and hackers who just think of themselves as awesome are all opinionated people. Over the years I have learned of several what I would call religious arguments. These are topics that are always great for starting a discussion (ok maybe even the online equivalent of a bar brawl) among computer people. Those who teach are, it seems, even more susceptible to these sorts of things. I thought I might just list a few of these for the fun of it.
The really unfortunate thing is that there is value in discussing all of these things. Not in fighting over them but a fair and honest discussion of the merits of different sides in different contexts. There is really no right or wrong answer. There are few absolutes here (if any at all.) It’s just unfortunate that we too often let ourselves become polarized and closed-minded. Something that needs to happen in education is to teach students how to discuss without fighting. To evaluate based on contexts, concepts, and principles rather than emotions, politics and absolutes. Can we do that? I think we need to if the discipline is going to grow as a profession.
The National STEM Video Game challenge kicked off a
couple of months ago but it starting to come down to the wire. IF
you missed the spring deadline for the Imagine Cup you can still
enter this event though.
Inspired by the Educate to Innovate Campaign, President Obama’s initiative to promote a renewed focus on Science, Technology, Engineering, and Math (STEM) education, the National STEM Video Game Challenge is a multi-year competition whose goal is to motivate interest in STEM learning among America’s youth by tapping into students’ natural passion for playing and making video games.
To help people get more information and to discuss youth game design and game-based learning!
You are Invited
to the
U.S. News & World Report and AMD STEM Challenge
TweetChat
Date: February
22, 2012
Time: 4:15 p.m. – 5:15 p.m. ET
Stay up-to-date on
the #STEMchat conversation by following @changingthegame
& @jason_koebler! Use the #STEMchat hashtag during the
chat so you don't miss anything.
#STEMchat conversation panelists include @STEMChallenge, @CooneyCenter, @GetGameSmart, @pbskids, @ELineMedia and @ErikatESA.
Visit the National STEM
Video Game Challenge website for more information about the
Challenge.
Every 10 minutes, one randomly selected registered participant will receive exciting gifts from the participating organizations.
|
------------------------ |
To register, please email Danielle.Meister@Edelman.com your name and Twitter handle, and follow @changingthegame and @jason_koebler.
I had my friend Clint Rutkas review some code of mine. Now I have been writing code longer than Clint has been alive but he’s a very smart guy and he writes more production code than I do these days. He;s written a lot of the Channel 9 projects. He’s famous for his Kinect driven lounge chair for example. Since his code is a lot more public than what I write most of the time he’s pretty careful about best practices so I knew he would be a good reviewer. As it turns out he was able to point out some rookie errors I made. Particularly that I was using “magic numbers.” And I was using them a lot. What is a magic number? It can mean several things and Wikipedia has a whole post on magic numbers. But in this case the following definition explains what I was doing:
Unique values with unexplained meaning or multiple occurrences which could (preferably) be replaced with named constants
Why is this bad? The two reasons in this code are one that it introduces multiple points of error and it makes the code hard to understand/support. Since I was using this number in a bunch of places I would have to be very careful not to miss one if I changed things. By using a named constant I could easily make the change in one place and “fix” all occurrences. The second problem is that it is not at all clear what the numbers mean, how they are selected and what happens if you change them. This makes support a real problem. So I need to go back and fix that.
In fact I need to look at which of those numbers are really constants and which should be calculated based on something. In at least one case the number that is hardwired in is the width of an object. What happens if I change that object? Actually I did and that caused me to change the magic number. This should have been a slap on the head to fix the underlying issue but it wasn’t. Clearly I need to make haste more slowly. Well we live and we learn. The good news is that this will all show up in a future post so hopefully others can learn from my errors.
Home again after a week in Texas! Had a great time in Texas both at the TCEA conference and the steering committee meeting for the CS 2013 project. All in all I talked to a lot of people, learned a lot and still managed to get a lot done. Among the things I got done was collecting a lot of links to share with you all. Especially important are a couple of reminders.
Game Design storyboards for the Imagine Cup are due tomorrow. Wow! How did that happen? Be sure to check out Randy Guthrie’s a long information packed post about Key Imagine Cup 2012 Dates Approaching While some deadlines are 14 February some are in early March. Be sure you don’t miss anything.
Speaking of not missing things - Rob Miles (@RobMiles) blogged about the Kinect Fun Labs at Imagine Cup which also has a deadline coming up. If you know students working with Kinect be sure to let them know about this. Especially let them know that 100 teams get a Kinect. Deadline for Team Formation/Registration and submission of your Kinect Fun Labs Challenge project plan is March 6, 2012 23:59 GMT
In a connection between the Imagine Cup and the US Forum that Microsoft Partners in Learning runs for innovative educators check out this post about| South LA educator Kinects with Crenshaw High students One of last year’s recognized teachers is working on this year’s forum with students working on the Kinect.
If you are an innovative teacher Are You Applying for the 2012 US Forum? Check out this video on Microsoft Partners in Learning 2012 Forum. Why Apply? And as you look into this year’s US Forum it is nice to look back on last year's finalists.
The big news from the Kodu team
(@koduteam)
last week was young Hannah‘s visit to the White House as part of
the White House Science Fair. You can watch this video and hear
the President ask her "So you want to be a game
developer?" Hannah had the
chance to show the President her Kodu game that won her the Kodu
Cup last year. Very cool.
Now a couple of blog posts by other people that I want to recommend.
.By the way, if you are a Twitter user you may want to look at my list of computer science teachers on Twitter Please let me know if I am missing someone I should have on that list. And follow me on Twitter @AlfredTwo
Randy Guthrie wrote a long information packed post about Key Imagine Cup 2012 Dates Approaching in the very near future. If you or your students are entering the Imagine Cup I highly recommend you read Randy’s post or at least visit the Imagine Cup site to verify that you have the correct dates in mind.
And a special reminder to teams in the US who are entering the game design events – be sure to enter both the US competition (http://imagineCup.us) and the world wide competition (http://imagineCup.com ) This gives you two chances to win. If you only enter the US competition you are not automatically entered in the world-wide competition and if you only enter the world-wide competition you are not automatically entered in the US competition. So don’t miss out!
Randy has all the scoop at Key Imagine Cup 2012 Dates Approaching so check it out. Some deadlines are as early as next week!
You may have noticed I haven’t been blogging as much this week. I’ve been in Austin TX at the TCEA conference. I’ve been pretty busy from morning until night. Doing what? Well you may ask. I have been spending some time at the Microsoft booth talking to teachers who come by. But I have also been involved with a couple of presentations. Yesterday Pat Younpradit talked about how he is using XNA and game development in his computer science program which was cool because Pat is doing great things. Pat’s responsible for much of out XNA curriculum materials including the XNA Jump-start: A 5-week Intro to Game Development curriculum that a lot of people are using as either an intro to game development or a post APCS exam unit.
We’ve also been talking a lot about Kinect at the conference. Microsoft sponsored the game zone which includes two Xbox and Kinect systems. We’ve had a lot of teachers playing educational games. Microsoft has a web site about educational uses for Kinect where you can learn about a lot of the options schools are using. You can also read about the various games including my favorite Body and Brain Connection. I love the math game that shows a number and an equation (for example 8 on one side and 5 + 2 on the other side) and ask students to move their arms to show which side is greater than the other. IT gets students up and moving while they are learning. Not just drill and kill but thinking on you feet. I talked to a teacher who told me her kids loved it with each child not only getting a quick run at the game but actively engaged watching and shouting out suggestions to the student who was in the game.
There are a growing number of educators creating their own educational games using the Kinect for Windows development kit. From these teachers we are seeing fun new games across the curriculum. Johnny Kissko has his KinectEdcuation website for example. Lots of sharing of ideas and code at that website. Ray Chambers is a teacher in the UK who is developing educational games as well. For you computer science teachers he has a lot of posts about how to do software development for the Kinect as well. My good friend Bryan Baker gave a talk about his work with Kinect with his students as well. He’s in the process of involving teachers from a variety of disciplines to create a multi-media games that support curriculum across the board. Oh almost forgot – speaking about learning there are the Channel 9 Kinect quick start series.
One of the Microsoft Imagine Cup events this year is a Kinect Fun Labs Challenge. And… the top 100 Teams that advance to Round 2 will receive a free Kinect for Windows sensor! If you are seriously interested in incorporating the Kinect and its natural user interface for development you will want to have students enter this event. I’m hopeful that we’ll get even more good educational games out of this challenge as well.
OF course at the booth we’re talking to teachers and administrators about things like Microsoft office and Office 365 for cloud based solutions. And all the rest of the Microsoft offerings for educators. For example this list of Free products and services for teachers
So there has been plenty to talk about and plenty of people to talk to. I’ve been working on some improved demo code for Pong (talked about this at When Just Working Isn’t Good Enough) but haven’t had a chance to write it up yet. Hopefully after things calm down next week.
We seem to be developing tools to teach younger and younger people to program. Kodu in theory is for students 8 and older but I know that some 6 and 7 years olds do very well with it. Last week I read about Scratch Jr which will be aimed at teaching programming to children from preK to grade 3 (basically ages 4 to 8). I admit that the first question I asked myself is “is that too young?” Are children that age ready for programming? Maybe maybe not. But the second question that came to me was “what would programming tools designed for adults (say 25 plus) look like? Honestly I have no clue.
Now I have taught older students. In fact I recently wrote about teaching middle and high school students in the same class as adult learners. (http://fuse.microsoft.com/page/kodu) Young people and adults learn this stuff differently. The younger learners have less fear and are more likely to boldly try new things and accept things being “broken.” I’m not sure if the issue is the tool or the teaching style though. Or are there just basic differences in teaching adults that are not as much a factor of the tool as they are the nature of the students?
Could we come up with a better teaching tool for adults than what we have now? Or do we just want to adapt something of the way we teach with existing tools of the sort we use with young adults (16 to 25)? I’m open to suggestions here. Is anyone looking at this (or doing it regularly)? What works well with adult learners who have no prior programming experience? What do people recommend? Is what works in college just as good for people in their 30s, 40’s 50s, and up?
I’m headed to Austin TX today for the Texas Computer Educators Association (TCEA) conference. Hoping to see some old friends and meet some new friends. If you are at TCEA I hope you will stop by the Microsoft booth and find me. Also I am looking forward to a couple of talks including Pat Yongpradit (twitter @MrYongpradit) presenting - Games for Social Causes using Microsoft XNA Game Studio. Wed 2/8 9:15 a.m. and Bryan Baker talking about his work with Kinect on Thursday. Should be a good week.
Ed Donahue blogged about the Big App On Campus College students – submit your app for chance to win $15,000 or a trip to SXSW!!
As a reminder, up to 100 of the top teams competing in the Kinect Fun Labs Challenge will receive a free Kinect for Windows sensor and a Kinect Gadget Accelerator Kit (“GAK”) with which they can build their Round 2 gadgets (see additional details). Please encourage your local students to participate in this Challenge. Remember, Software Design teams can also compete in Challenges, and vice versa.
Scratch Jr programming for preK to grade 3? Now that is an interesting idea.
Kinect Sweepstakes For Schools Win an Xbox/Kinect package for your school
Are You Applying for the 2012 US Forum? Read about it and some of the teachers who did last year
Some Serious Fun With Kodu Programming – That project and its challenge blew me away. Take a look for yourself.
RT @TheOfficialACM: ACM Queue has
launched an online programming challenge! Get involved today!
bit.ly/xMylnV
I found a new CS educator on Twitter @DrStephenFalcon and his blog at
icodecompsci.blogspot.com. He’s been added to my
CS education blog roll at http://blogs.msdn.com/b/alfredth/archive/2011/12/08/computer-science-education-blog-roll.aspx
Using the Windows 7 USB Download Tool with ANY .iso file - Randy Guthrie explains how to do it. I think you will find it very useful especially if you have netbooks or other computers without optical disks.
Chevon Christie, our January Tech Student of the Month! See what makes Chevon so special you could be featured next!
I wrote a
tic tac toe game for my Windows Phone today. It works just
fine. I’m just not happy with it. I loaded a screen shot of it to
the left. Oh it is obvious that the graphics are not so hot.
Graphic design and UI design are just not my thing. I’m actually
pretty happy that (in theory at least) I could give the XAML code
off and have someone who is good at design fix it all up for me
so I could just worry about the code. No, it’s the code I am
unhappy with. Why? Well it’s a mess. It wasn’t designed. Now I’ve
written multiple tic tac toe programs in my time. I know how it
should work. But each time I just wing it. With close to 40 years
of programming behind me I do a fairly good job of winging it.
Unfortunately that same experience lets me recognize poor design
when I see it. So what went wrong? Generally that old ready, fire
aim mentality crept in to the process. You see I didn’t set out
to write a great tic tac toe program. I set out to learn some
Silverlight for Windows Phone development. So my focus was on
other things than writing the best tic tac toe program I could
write. In retrospect every tic tac toe program I have ever
written was not written to write a great tic tac toe program but
to either teach or learn some concept, tool, or idea. This is,
unfortunately, all too often an occurrence for what I might call
educational programming. I had a student complain once that the
Advanced Placement Computer Science exam was one big set of
examples about how not to program. It was hard to argue with
him.
Sometimes this is ok. Sometimes doing it right means too much complication or at least too many lines of code for use in a test or as a simple concept example. Pro developer examples generally don’t go that route though. They are, usually, examples of exactly how to do it right. They’re great for professionals to learn from but too often are completely overwhelming for raw beginners. is there a middle ground? I’d like to think so. Finding it is the trick though.
I have a couple of example programs I have been using lately (Tic tac toe, Whack a Mole, and Pong) that are optimized for fast and easy creation in a demo or hands on lab setting. There is just a ton wrong with them. The tic tac toe and whack a mole could greatly benefit from some well designed custom object classes for example. The Pong (which in my defense someone else wrote but I have translated into VB fro the original C#) just takes too many shortcuts. All three programs look like they could have been written by a beginning programmer. What I have decided to do is to take some time and do all three of these game a lot closer to right. It’s a point of personal pride which I why I an posting this. I want people to ask me from time to time when they are going to see the results. You know – just to keep me on my toes.
Designed programs work better than hacked together programs. They are easier to debug, to maintain, to enhance and they look better. To me at least there is a feeling of satisfaction from a well designed and developed program that I just don’t get from something I have hacked together. I know that not everyone feels this way. I sure know that for some students just having a piece of code that compiles and meets the minimum standards is success. And that is fine as far as it goes. Other people pride themselves on hacking things together with at least the illusion of development speed unhindered by “wasted time” planning. That is just not me. Slapping things together today made me realize that I need more. I need that planning first. I need my code to be designed. I need to take the time to avoid coding bugs. No matter how much I tested today I just don’t feel as comfortable as I’d like that it is going to work in all cases. And that is not good enough.
We’ve had some changes in the DreamSpark program lately and the web site feels all different to me. So what I decided to do was to step though the process of first signing up for DreamSpark for students with Activations codes such as you get in a high school Dream Spark program of if you get a code from someone at Microsoft. The first step is easy – head over to http://www.dreamspark.com and find the link (highlighted in yellow below) for how Dream Spark works for students.
Clicking on that link gets you to this page where you find the sign up link (circled in red).
You will be asked to enter account information for your new DreamSpark account. Use the email address for a Windows Live ID (You can create one for free if you don’t already have one) Note that there are several options for verification. The Institution/School and ISIC Card options are for university students. If you are at a university and have a EDU email address you can use one of them. For most high school students we’ll be using the Activation code.
Pick a good password. The system wants letters, numbers and special characters so give it some thought. After this you will get an email to validate your address. Be sure and check the email account you used and validate the address before going further.
Now jump over to the AppHub at http://create.msdn.com/en-US/ and sign up. Be sure to use the exact same Windows Live ID that you signed up to Dream Spark with. Why? Because AppHub is going to verify that you are a student who is allowed to register phones and submit apps to the marketplace for free. Free is good. You will get to a page like this one below. Be sure to select the right country and that you are a student. Also accept the terms and conditions.
Once you accept the system will attempt to verify you with Dream Spark. Assuming you validated your email and used the same Windows Live ID for both DreamSpark and the AppHub you should get the next screen to enter you personal details.
Be use to answer this all accurately. You may want
to get paid for your software on the market place some day.
Next you pick an avatar and a gamer tag. The gamer tag is used for the Xbox market place and if you have an existing gamer tag you should use that. If not now you can create a new one.
The activation registration will be sending your email another activation link. Yeah again. Just trying to make sure people are using real working email accounts.
Once you verify your email address you will get this screen and know that your account is all set up.
Now if you have a Windows Phone (and if you don’t go get one!) you can register it as a developer phone for free. This will let you test your apps on the real phone and not just on the emulator. The instructions for this are pretty clear at http://msdn.microsoft.com/en-us/library/gg588378(v=VS.92).aspx Just scroll down to Registering Your Phone to Unlock It for Development
I know you have been reading me write
about Kinect for Windows for a while now so why is this news? The
reason for that is simple – new hardware and new software. Oh and
a new license. What I have been writing about is using the Kinect
for Xbox with a Windows PC. The new Kinect for Windows has some new features. We’re
pretty excited about it at Microsoft. We think it opens the door
for even more possibilities than the original beta releases. I’m
pretty excited myself to see the applications that people find
for it.
More information from the Kinect for Windows website:
Commercial ready
The Kinect for Windows SDK offers an installer, which makes it easy to install the Kinect for Windows runtime and driver components for end-user deployment.
Enhanced Sensor Capabilities
The Kinect for Windows sensor expands the possibilities for innovation with features like Near Mode, which enables the depth camera to see objects as close as 40 centimeters in front of the sensor. In addition, up to 4 Kinect sensors can now be plugged into the same computer.
Software Improvements
One of the many improvements to the Kinect for Windows SDK is improved skeletal tracking, which lets developers control which user is being tracked by the sensor. In addition, the latest Microsoft Speech components, along with an improved acoustic model significantly improve speech recognition accuracy.
Of course there is a lot more at the Kinect for Windows website and especially on the Kinect for Windows FAQ.
As regular readers know I am a huge fan of Kodu, the highly graphical, easy to program game development product from Microsoft Research. It is easy enough that an 8 year old can create some great fun games with it (and some smart younger kids have done cool stuff as well) so it is easy to take this software lightly. But as I play with it more and more I find that the opportunity for complexity and serious computer science is really baked into it. One of the members of the Kodu team recently discovered a Kodu soccer (or football if you will) game written by a middle school student. The game had an artificial intelligence but one that wasn’t all that smart. It basically played like elementary school kids are likely to play. In other words everyone after the ball and no one playing position. Still pretty impressive for a middle school student. Joe, our Kodu team member, worked on a serious soccer video game in a previous life so decided to up the ante a bit. His AI is smarter but he is challenging others to beat his by writing their own AI code. You can get the Kodu Soccer Game Jam v01 here:
Kodu Soccer Game Jam v01
Can you beat this AI....? The original AI was built by middle schooler, Juan G, from Kent Technology Academy. I thought what he had done was great and I was inspired by my time working on FIFA... FIFA uses a technique that allows the AI to see the pitch in terms of threats and opportunities; I wanted to see if I could reproduce this in KODU! Once you have an AI that beats mine; share it and post a message with a link on the kodugamelab.com forums. Let's keep JAMing on making better AI!!!
Read more about this challenge and how it came about at February Game Jam: Soccer AI Challenge And think about if you can do better! If nothing else I think you can learn a lot and get some ideas from reviewing Joe’s code. Let me know if you take this challenge on and how it goes.
I spent yesterday at Stevens Institute of Technology, an outstanding university across the river from New York City. The occasion was a high school computer science workshop for faculty and students. While the students were getting demonstrations on some of the cool technology that Stevens faculty and students are working on the high school teachers were involved with a panel discussion. I was on the panel along with Jan Cuny (NSF), Bob Slater (Alice/CMU) and Tara Canobbio (Google). We started of with some great discussion of pedagogy. Don gave us a preview of Alice 3.1 Alice 3.1 looks amazing though I suggested they need an interface with Kinect so that avatars could follow people’s movements in the real world and act on them in the virtual world. Now wouldn’t THAT be cool? I of course brought up the usual – Kodu, XNA game development and Windows Phone development. There continues to be a lot of interest in game development and mobile/smart phone development to attract students and we do have a lot of free curriculum resources for that. But after a while a bigger worry became the topic of discussion – there is too little room for computer science in the curriculum.
This is a complicated issue (I wrote some about it just last week at We Need A Wider Conversation on CS Education) but basically these are some of the issues:
Teachers, for the most part, feel helpless to fix these issues. There are large and powerful organizations for teachers of subjects like math and even art and music. These groups have lobbied hard to get their subjects either increased inclusion as graduation requirements. The CS community has not been as successful. Now there are efforts to change this. The CSTA (PLEASE if you are a CS teacher join and get active) has worked diligently at the national level and through local chapters at the state level to lobby for more CS education. Getting CS Education Week though Congress was a big win; a good step in the right direction. But without computer science being in the common core we’re still playing come from behind. Computing in the Core, a partnership between professional agencies and some in industry (Microsoft is active) is working towards this goal. But ultimately education much like politics is local in the US. That means that decisions are seldom make at the national level (no matter how much some people which it were different). Decisions are made at the state and local level.
Some schools have decided on their own to make computer science a requirement. Some, Los Angeles for one, have at least worked hard to make it more available starting with grade 9 in order to give more students the opportunity to learn what CS is all about.
In the US we are not turning out enough of the high quality computer science professionals that we need. These are great, world changing jobs but we are cutting back – in many cases actively and deliberately for cost cutting reasons – on the education of the very people we need most to turn the economy around. Some special purpose schools (Software Engineering High School) are great as far as they go. In the long run though we owe it to all children to have the opportunity to be exposed to a real, engaging, and valuable computer science course.
Last summer I attended the US Innovative Education Forum in Redmond and came home quite inspired by the teachers and projects I saw. Dozens of teachers using technology to improve the quality and quantity of learning with their students. Microsoft Partners in Learning is now looking for this year’s crop of interesting, inspiring and innovative teachers and projects to attend the 2012 US Forum in Redmond, this summer. I’ve copied some of the information about this event below but I hope you will check out the 2012 US Forum page for yourself to learn about this wonderful opportunity for teachers. At the bottom of this post as links to some of my blog posts from this past summer’s event as well as some posts by teachers who attended it. Please read what some of these amazing teachers had to say about their experiences. And if you are doing interesting things with technology give some thought to applying. (BTW computer science teachers have been some of the top award winners recently.)
Show us how you engage students in problem-solving, inspire their creativity, and prepare them for life ahead. You could be selected to attend the forum in Redmond, Washington, July 31 – August 1. Winners there will proceed to the Worldwide 2012 Global Forum in Athens, Greece.
Computer science, graphic design, and technology educators: You might win an Xbox 360 and Kinect for your school.
Here’s how:
- Computer science, graphic design, or technology educators who are selected to participate in the forum are eligible to win an Xbox 360 and Kinect for their school.
- When you apply online to the Forum, be sure to select which Microsoft web design or software development tools are used in your project.
- Educators eligible to win the Xbox 360 and Kinect must submit a gifting letter.
By teachers
By me: