Sunday, May 01, 2011

Most Read Posts–April 2011

I thought it would be interesting to take a look at the top read blog posts from April 2011. I look at both web statistics and RSS statistics.In some ways I feel like the RSS statistics tell me the most about what is useful for my most regular readers. Although I know that several people who seldom if ever miss my posts (I love you all) read via web browsers many follow using RSS readers of some sort. The web hits come from search engines and in links. The search engine traffic is also very informative. It also lets me know that I am covering topics that people are interested in. Hopefully I am helping. The in links most often come when I get a little opinionated. OK I can live with that. Smile So for what ever it is worth here are the top 10 posts according to RSS statistics as provided by Feedburner.

And then there are the posts the analytics tool says are the top posts as read by web browsers. Mostly a different list with a couple the same. If you only read via RSS (which is how I read most blogs) you may have skipped by one of these and find it worth taking a second look.

  • Interesting Projects-A Collection A post from March that continued to get a lot of web traffic this month. Search engines or links? I’m not sure but I do think it is a useful post if you are looking for interesting and educational programming projects
  • Object Oriented Programming Is Dead – This is another post from March that was heavily linked to. The post it was suggested by seemed to get a lot of attention (much more than mine which is good) and a lot of others linked to this one of mine.
  • Microsoft Math 4.0 This post from January received a big boost because of a new in link and the fact that Math 4.0 is now available in a bunch more international languages. Your math people will love this one.
  • Books for Computer Science Students The first of a few posts that made both lists.
  • How Does Kinect Work This post from last November keeps getting a lot of search engine traffic. Hope they all are looking forward to the Kinect SDK (coming soon) as I am.
  • Be Careful What You Wish For An other post that made both lists.
  • Movies For Computer Science Students Yea! Three posts on both lists.
  • Programming Projects Using Arrays I guess a lot of people are searching for this sort of thing. I would have expected more in the fall during ramp up but if people are finding this post useful I’m happy.
  • Fizz Buzz A programming Question Yet another project post that continues to get traffic. All the great replies make it valuable in my opinion.
  • Credit Card Project Who knew there were that many people looking for information on parsing credit cards!

What was useful (or useless) to you? What topics should I be looking to research and blog more about? How can I be helpful to you this month?

Tuesday, April 26, 2011

DreamSpark, AppHub and Windows Phone Development

So are your graduating high school seniors bored? or perhaps you are still looking for things to do after the AP CS exam. or maybe you know college or high school students looking to make a few bucks writing code? (Student Develops Games For Windows Phone 7) Edwin Guarin has a new post out called Dreamspark and App Hub Registration process REVEALED! that partners well with my post called Student Access to the AppHub for Windows Phone 7 with information for students who want to create Windows Phone applications and add them to the Windows Marketplace for free. All the information students (18+ I think sorry) need to know to get started is there. Or there and below. Smile

Looking for learning materials? Visit the Windows Phone developer resources pages on App Hub. Here you will find  topic pages so you can learn everything you need to know to create great apps and games for Windows Phone:

BTW if you are a high school teacher and want to make sure your students have access to DreamSpark check out Gautam Reddy’s wonderful blog post that explains the step by step of signing a high school up for DreamSpark

Sunday, April 24, 2011

Enter the Student App-a-thon

Bob Familiar (@bobfamiliar) and Lindsay Lindstrom (@LindsayInPhilly) have both been blogging about the Windows Phone Student App-a-thon! For US college students 18 and up.

appathon[4]

Be one of the first 1,000 students to publish an App in the Windows Phone Marketplace between April 11th and June 30th and choose between Halo Reach®, Fable®, or three other games for Xbox 360®. That’s not all. The student who publishes the most Apps will receive $5,000 cash or an equivalent prize package. The three students who publish the 2nd, 3rd, and 4th most Apps will receive $1,000 each.

Thursday, April 07, 2011

Computer Science Curricula In Flux

I don’t know when I have ever seen as much going on with computer science curriculum going on at one time. In the K12 space there is an NSF initiative looking at a new pre-APCS course while the College Board, also with NSF support,  is hard at work developing the AP CS Principles course. CSTA is reviewing and looking at updating the ACM K-12 CS Model Curriculum. With all that going on in K12 one might be tempted to think that was enough. But it’s not. There is actually an important curriculum review going on in higher education computer science curriculum.

Specifically the CS 2013 project is going on to review curriculum recommendations for undergraduate computer science curriculum in American (and potentially other) universities. This is an effort undertaken jointly by the ACM and the IEEE Computer Society, the two main computer science professional societies. This effort is still in the early stages but a steering committee has been appointed and is holding regular meetings virtually and face to face. The steering committee made a brief report at the recent SIGCSE conference and more public information will be available over time. The committee has opened a web site (from which I have copied some introductory information below) at http://cs2013.org 

Computing Curriculum: Computer Science 2013 (CS2013) Overview

Following a roughly 10 year cycle, the ACM and IEEE Computer Society jointly sponsor the development of a Computing Curricula volume on Computer Science. These volumes have helped to set international curricular guidelines for undergraduate programs in computing. In the summer of 2010, planning for the next volume in the series, Computer Science 2013 (CS2013), began. The charter for this effort is given below.
Charter
To review the Joint ACM and IEEE/CS Computer Science volume of Computing Curricula 2001 and the accompanying interim review CS 2008, and develop a revised and enhanced version for the year 2013 that will match the latest developments in the discipline and have lasting impact.

The CS2013 task force will seek input from a diverse audience with the goal of broadening participation in computer science. The report will seek to be international in scope and offer curricular and pedagogical guidance applicable to a wide range of institutions. The process of producing the final report will include multiple opportunities for public consultation and scrutiny.

The membership of the committee includes faculty from many universities as well as a few representatives from industry. You can se the whole list at CS2013 Steering Committee. You will probably recognize some names there. If you  get to the very last name on the second column you’ll find Alfred Thompson. Somewhat humbling to be in such august company but I’m doing my best to keep up.

Sunday, March 27, 2011

Interesting Projects–A Collection

It seems as though teachers are always looking for new projects to use with students. Projects get stale (at least to a teacher who has been grading lots of them for a long time) or seem to not fit with a current crop of students or just never seem right. So the hunt goes on for more. When I come up with programing projects I like to post them here on my blog for use, comments, feedback and in the hopes that people will help make them better. I tag them with the projects tag to make them easier for people to find as well. But recently it struck me that an annotated list of some of the more interesting projects might be in order. So here it is.

Programming Projects Using Arrays This is a collection for the APCS mailing list of projects teachers have suggested for teaching arrays. They should work with any programming language.

 Whack Something Game for Windows Phone 7 – This is a “how to” I wrote for creating a whack a mole style game for the Windows Phone 7. It could easily be used/modified to create a similar game for Windows or the Xbox since it uses XNA Game Studio.

The Credit Card Project – Do you know how credit cards are validated? I think a lot of students would be interested in this project that includes knowing something about the codes that identify types of credit cards and a check digit to validate the number.

FizzBuzz–A Programming Question – this was based on an interview question I read about. The comments are interesting and include both a lot of discussion about this particular project and similar questions. This one uses loops and discussion statements in an interesting combination.

Lines Can Be Fun This is a discussion of some interesting graphical line drawing projects. There is some sample code using Small Basic but you could use these ideas in most languages that support simple graphics.

Would you play this game? A simulation of a card game with the idea of determining if it is a reasonable game to play as defined by being something one can actually win at. It uses random numbers, arrays and loops.

Visualizations and Sorting Some ideas around projects that show or play as in sound how sorting algorithms work. Something to make sorting more interesting than just “magic” behind the scenes.

ASCII Art For Fun and Projects – Old school ASCII art projects may seem passé but a lot of today’s students don’t know about them which makes these ideas “new to them.” And they can be fun.

Monte Carlo Simulation – Slot Machines – How do slot machines work? Add some graphics to this one and really make it rock.

Monte Carlo Simulation – Roulette – how does the house win at Roulette? Random numbers, probability and creating a simulation are all a part of this project.

Who Designed That User Interface – How would you design an ATM interface? Yeah it involves money. Smile This is a chance to not only have students implement a user interface but learn about data checking/validation and how it all fits with usability.

Are You Using a Strong Password – On one hand this is a simple data validation project that looks at characters and does some evaluation. On the other hand it is an opportunity to talk about security, what makes a strong password and why strong passwords are important.

Coding Up A Coded Message – Not surprisingly this is about codes and cyphers. I find that a lot of younger kids are fascinated with hiding messages with codes. This allows for a lot of interesting character manipulation and some good algorithm discussions.

Fun With Formulas Did you know that horsepower was based on James Watt finding that a work horse could lift a 1,000 pound weight 33 feet in 60 seconds? I didn’t either but it makes for a fun project. Sample code in C#, Visual Basic and a screenshot of a cool solution table using Excel. Yep, programming sorts of things in Excel. Who knew? Smile

Fun With Colors Move the sliders for red, blue and green to adjust the color values of a color display. This is the sort of thing designers use for all sorts of color picking routines. It shows something about how color mixing works as well as making a fast and easy project to let students experience success quickly.

Binary Number Game – A lot of traffic comes to this blog from people looking for ways to teach binary numbers. This post describes one good learning game/project and opens the door to more with a little imagination. One might as well make a game out of learning when possible.

The Four Digit Problem – How would you randomly pick a four digit number with no repeating digits? Would you use recursion? You could. Or loops? That would work as well. What’s the best way to do this/

A Simple Check Digit Project This project uses the formula for validating passport numbers. With more and more people needing passports at a younger and younger age this project has some relevance to many. Having a meaningful project to discuss check digits (which are apparently not as inherently interesting to everyone as the yare to me) makes this a pretty good project if I do say so myself.

Wednesday, March 23, 2011

US Imagine Cup People’s Choice Awards

clip_image001clip_image001[4]

The Imagine Cup is the premier student technology competition in he world. Yeah, I get excited about it. The US finalists in the Software Design Invitational and the Game Design competition (two categories there) and been selected and are making their plans to attend the finals in Redmond Washington in April. Now it is also time for the public, people like you, to have your say on if these projects are genius or not? You'll decide!

Microsoft US Imagine Cup Fall finalists now have new team pages--check them out and get to know the teams: http://on.fb.me/2011ImagineCup 

Of course I am completely unbiased. OK maybe not. I have a soft spot in my heart for high school students competing against college students so I may have voted for the high school team, Xoz Gaming. Their project, Strain is a Windows real time strategy game where you defend the world against a global pandemic.

I Voted BadgeXozLogo

There are lots of great teams with lots of great ideas. Visit the Facebook page, check them out, and vote early and often (you can vote every day) for your favorite. Oh and by the way there are prizes for people who vote to win as well.

Wednesday, March 09, 2011

Rebirth of DIY Software Development

In the heady, exciting, almost wild West atmosphere of the early days of PCs it seemed like almost everyone I knew was writing software in hopes of making a little extra money. Shareware was big. That was the idea that you would give away the program and if people really liked it they would pay for it. And since there was so little software out there other people were packaging their software in a nice format and selling copies though local computer stores. Computer stores back then were desperate for software to sell to help sell computers. The cost of entry was low – you needed a PC and the development software that came with it. If you were really ambitious you’d buy Turbo PASCAL or some other more professional development environment. The other thing that was big was more or less ordinary people developing small software projects for work. Not necessarily great software but good solid (ok maybe not solid) but cheap and accessible software. Over time though the “real professionals” took over as standards became higher.

We, many of us in the industry, expected programming to become easier to the point where everyone would be programming. That, alas, has not yet happened. What has happened though is that there is a new market for software. Portable devices like Windows Phone 7 have online marketplaces now. So does the set top box video game market! And there are tools that are free or cheap and even easy to use. Students can get development tools for Windows Phone 7 and Xbox 360 from Dreamspark. There are learning resources, some at DreamSpark, and some from other places (App Hub for one) that are also free.

This is sparking a rebirth of the small, even one person, development organization. Students are creating and selling programs on Xbox marketplace and Windows Phone 7 marketplace and making real money. Some though sales and some though advertising supported software which is something that didn’t exist even a few years ago. Another difference with this new environment is that this time companies and businesses realize that they need, or at least want, to have applications for these new devices. There are not really enough people ready and trained to create them (see More Computer Scientists Needed To Create Mobile Apps). What does this mean to students today? I think Mark Guzdial said it well in his post titled The advantage of computing goes to those who create, not those who use.

Sure it is important to know how to use computers and to use various applications but the real advantage goes to those who create. Are we creating enough creators?

imageDreamspark

Today’s post inspired by these somewhat related articles.

Friday, March 04, 2011

Top Read Posts February 2011

When I look at the blog statistics for my primary blog I am often surprised. Surprised because some posts that I expect a lot from get ignored while others get more attention than I ever dreamed of. Other times I see that posts written some time ago (two and a half years ago in one case in this list) have soddenly returned to activity. And some posts from previous months are still drawing traffic even though they are not currently on the front page. Search engines account for much of this of course. People are still looking up IBM’s Watson and Microsoft’s Kinect for example. And sometimes someone with a large following links to an archived post sending many new people to read that post. So there is logic to the list of top read posts in February 2011 even though it is not always intuitive.

Are Programming languages really languages? – One of several posts written this month that was linked to by the influential Code Project website. There are 21 comments on this post with people taking both sides of the question. I see that as very positive and the comments make for interesting reading. And potentially a good start for an in-class discussion.

Fizzbuzz – a programming question Code Project also linked to this post, one of several project related posts this month – others were Credit Card Project and a link to Kenny Spade’s Triangle Shooter . There were 47 comments on this post as person after person tried to impress readers with their great code. You’d have thought I was looking to hire someone. With a wide range of different solutions and programming languages demonstrated I think the comments are very useful. I only wish there had been more discussion of the code – though there was some.

Do your students understand this cartoon? A Golden oldie. This post was written in 2007 and is a discussion of a cartoon from xkcd showing an SQL Injection exploit in an interesting way. A blog primarily focused on global warming of all things (http://wattsupwiththat.com ) recently used the same cartoon as an example sending readers to this post for the explanation. Apparently a lot of people were interested in that explanation. This proves once again that once something is on the Internet you can never tell where it will show up.

What does Watson mean? IBM’s Watson computer recently beat the two top human champions of the Jeopardy! quiz show. Interestingly enough a Congressman, who had been a five-time winner on the game, recently beat Watson in a short match – see IBM's Watson takes on lawmakers in game effort

How does Kinect work? This post from last November continues to draw in traffic via search engines. I recently updated the list is resource links to include an interview I recorded at Boston’s Museum of Science where I explain a lot of what goes into Kinect. If you are interested in Kinect then check it out.

Kindergarten computer science Some information about computer science in the much younger grades. I am seeing a lot more interest in this lately. I need to address it more often I think.

Teaching learning and the job interview – Posts on how to teach are as interesting to people as those on what to teach. This post takes about a could of teaching methods that are interesting if not exactly convincing to everyone.

How not to teach programming See what I mean about “how to teach” being interesting? This one also has a bunch of comments and as usual my readers leave a lot of wisdom in the comments. They make the post more valuable than what I originally wrote. So if you missed the discussion in the comments it may be time to revisit the post.

Resources for teaching binary numbers Month after month search engines break readers to this post from April 2010. Apparently this is a big issue. So also check out my blog entries tagged with the Binary key word if you are looking for still more.

Characteristics of a good programming project Computer science teachers are always looking for good projects but what exactly is a good project? Some of my thoughts are here as well as links to some posts on the subject from Hélène Martin.

Tuesday, March 01, 2011

Dream. Build. Play. is back for 2011

dreamBuildPlayLogo

Honestly if you are a student you REALLY want to enter the Imagine Cup game development competition. Really you do. But if you missed some of the deadlines (tsk tsk tsk) or you are looking for another game development competition  to enter than Dream. Build. Play may be for you. If you are a hobbyist game developer, or you are that undiscovered game development expert with an idea for a great Xbox 360 game, than Dream. Build. Play is definitely for you! Registration is now open and continues through May 17th 2011.

The Dream.Build.Play Challenge is back, and we’re more excited than ever to see your ideas come to life. Build the next mind-blowing game for Xbox 360® using XNA Game Studio 4.0, and you could win the prize and fame! Set the power of your imagination free – and let the game challenge begin.
Learn more about the Challenge »

Students be sure to check out DreamSpark for all the development software you could possibly need. Oh and need I remind you that it is free!

Monday, February 28, 2011

Interesting Links 28 February 2011

Lots of interesting posts by computer science teachers last week. And some news from various sources to share. But let’s start with the teacher blog posts.

Kathleen Weaver writes about her experiences with Programming for Windows Phone 7 for teachers and students. Kathleen has a couple of applications in the Windows Phone 7 app store already and is now introducing her students to Windows Phone development. Looks like fun. I can’t wait to see what her students come up with.

Interesting "find the max" project by Ben Chun (@benchun) There is some really good discussion in the comments about objects early or late and teaching the concepts in general.

Rob Miles (@robmiles ) posted an interesting Programming Puzzler. The useful part is the discussion in the comments. And I see that Rob did add more detail to the post itself since I originally read it. It’s a good discussion question.

My manager Bob Familiar helped Andrew Parsons with a multi-day game development camp at Pace University over the weekend. Bob wrote about it at Get your app on! Students learn XNA and Silverlight Gaming at Pace Game Camp They even has a 12 year old student there who was very successful. Seems like game development doesn’t have to start in high school let alone college. In more Windows Phone 7 development news, read about  My School App: A First (Real) Windows Phone 7 App Project for Beginners. Mark Frydenberg of Bentley University has created and posted a fun and easy first Windows Phone 7 app project on the Microsoft Codeplex: http://myschoolapp.codeplex.com/.

The Microsoft Tech Student Twitter account (@MSTechStudent) has a reminder for us Visual Basic people about Visual Basic Windows Phone 7 Series: How to create a microphone application for Windows Phone 7 using Visual Basic.

Speaking of gaming news – did you hear that a Kinect for Windows SDK to Arrive Spring 2011? Designed for educational and research use by the good folks at Microsoft Research. What will your students do with it?

Under the heading of both fun and educational xkcd takes on the problem of address space http://xkcd.com/865/geek humor at its finest. A possible conversation starter as well.

And this video from the UK, Introducing Nellie the School Computer (1969) shows just what operating a school computer was like in the late 1960’s. You’ll like the way they teach how a binary adder works as well. Something to think about today.

In more Microsoft news,  Microsoft now has local tech news sites for Silicon Valley, Boston, Chicago, and LA .

Last but not least, I see there is a Math 4.0 teacher guide out along with a bunch of other guides including one for Movie Maker that looks useful

Wednesday, February 23, 2011

FizzBuzz–A Programming Question

Projects or exercises that lend themselves to many different “correct” solutions are just about the best sorts of learning experiences I can imagine. They really open the possibilities for discussion and from discussion – questions, answers, explanations – comes real learning. Recently Dennis Shaw, a student at Old Dominion University and a Microsoft Student Partner, told me about the FizzBizz exercise. (see Using FizzBuzz to Find Developers who Grok Coding for where it comes from) This is exactly that sort of multiple solution but not that difficult sort of exercise I love. Briefly stated the exercise is:

Write a program that prints the numbers from 1 to 100. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”.

So there you have it. It involves using some sort of conditional of course. Nested or unnested? It can be done either way. Which way is best? Do you check for multiples of three first or five? Do you check to see if the number ISN’T one of those cases  first or if it IS one of those cases? Or rather than If statements is there a different way completely? Perhaps a select/case structure? Does creating functions/methods complicate of simplify the result? If students know multiple programming languages is there one that is better for this than another (think especially about functional languages v. procedural languages). Are there special operators (like perhaps the ternary operator in C#, C/C++ and Java) that might make the code “tighter?” Is there a trade off between complication and understanding? Oh and of course, does your solution actually work?

Justify your answers. (Don’t you just just love the teacher-ness of “justify your answer?” Smile)  I can see asking students to write up an explanation of how their solution works and why they did it that way as a means for forcing examination of the solution. And as a side benefit a lot of students can benefit from yet another writing exercise. Code that can’t be explained isn’t properly understood and that causes problems in the long run. A piece of code should not be “magic” to the person who wrote it.

There are many solutions on the Internet to the FizzBuzz question. So yes, some student might go searching for one and even try to use it. The “justify your solution” question means that they still have to understand and explain how it works and why they like it. I can’t see a student saying “I like this solution because I found it on the Internet and it works.” Well, I hope they wouldn’t try that. But if they do, grade them on how well they explain the benefits of using borrowed code and if they credited the original source properly. And of course they should also be able to explain why this solution is better than others they might have found. Surely they were not so lazy and to hand in the first solution they found?

BTW a couple of related posts of mine are Teaching, Learning and the Job Interview and Characteristics of a Good Programming Project

Tuesday, February 15, 2011

Triangle Shooter–An XNA Windows Phone Game By Kenny Spade

Kenny Spade is a Microsoft Academic Developer Evangelist out in California who has been writing a series of blog posts that help one learn how to write a Windows Phone game using XNA. There is code, pictures, explanations of what is going on and lots of good information here. It doesn’t seem to be getting the attention it deserves so I thought I would pass a long some link love. The series so far is:

If you are interested in games for the Windows Phone, other XNA development for the Windows Phone or XNA in general give Kenny’s blog a look.

Monday, February 07, 2011

Making the Case for Becoming a Computer Science Teacher

Mark Guzdial asks the question What’s the argument for becoming a computer science teacher? on his blog. It’s a good question. While as a former computer science teacher I may appear to be a strange one to make the case but I’m going to try. Being a computer science teacher is a great job. Really being a teacher in any subject is a great job and a lot of the reasons for teaching other subjects are part of teaching computer science. The student interaction, seeing students learn new and exciting things, and generally making a difference for good in the world. But there are of course some special things about teaching computer science that complicate the picture somewhat.

One is that if you are really qualified to teach computer science you are probably qualified to get a much better paying job in industry. If this is true, and generally it is, why take the lower paying teaching job?

Well besides the teacher benefits there is a certain amount of freedom to learn new things that one doesn’t always have in industry. In industry your learning can be channeled in certain directions by management. And with work hours in the computer industry often being as time consuming as those in teaching (trust me – I’ve done both) one doesn’t always have the time to learn about ones own interests. Computer science education is somewhat directed by the AP CS exam but that is only for one course. And while some teachers, by desire or necessity, focus all their courses around that one course many find the time and incentives to learn things in other directions. Game development for example using C# and XNA. Or more web development (perhaps using Expression Web with some free curriculum) In all of this, because of the nature of teaching, one can often focus on breath over depth. So rather than being confined to digging deeply into one of two technologies teachers can often dig lightly into a wide variety of technologies.

Of course this brings up the fact that some people are not excited about learning a lot of new technologies and having the curriculum change on a regular basis. I have no doubt at all that this is true. I have met teachers who are totally resistant to change and want to do the same thing year after year. To that I ask, do we really want people like that teaching (period – let alone computer science)?

The biggest problem is the law of supply and demand. There is not enough of a demand. Yes, NSF has a 10,000 computer science teacher effort but I don’t see much of a sign that the states or even school districts are buying this. If there were lots of advertisements for full-time computer science teachers we’d probably see more people looking at doing it. Many people don’t want to teach several sections of Math or history or English that they can teach one or two sections of computer science. This is widely true I think. We don’t make the jobs common enough or interesting enough (and by interesting I am not talking about money) for excited young people to move into the field of CS education.

When done correctly, allowing some teacher freedom to develop new curriculum for new technologies, availability of in-service training,  providing support in both facilities and recruiting help (not hindrance) from guidance, teaching computer science to high school students is a really great job. It is a chance to start the next generation of world changing computer/computing scientists and industry professions with a solid base. It is a chance to work with smart kids who have a real passion for the subject. Why become a computer science teacher? It’s a fun job and a world changing job. If you love computer science it is even more fun than any other teaching job you can have.

Note: Take a look at Computing in the Core which is an effort to help get computer science adopted into the core curriculum in schools.

Sunday, January 16, 2011

Ed Donahue Joins the Microsoft Academic Team

Ed Donahue (her real name is Erin but she goes by Ed – go figure) has joined the Microsoft academic team as an academic developer evangelist  for the Washington DC area. This apparently includes Maryland, Washington, D.C., Virginia, West Virginia, North Carolina, and South Carolina. She’s a great person I first met through her involvement with the Imagine Cup. She and her team were twice US finalists in the software design competition.

Ed has a blog at Creepy Ed on MSDN – drop by and read what she has to say. She is also part of Ed and Ashley's 5 Minute Show which is a wonderful video blog with a lot of good interviews. She is on Twitter at @CreepyEd

Saturday, January 01, 2011

My Most Read Posts of 2010

For the most part I want to focus on the future and not the past. But I did want to take one look back at traffic to my computer science teacher blog over the course of 2010. I have rough metrics for both web traffic and RSS/subscriber traffic. I hope you will subscribe if you read blogs via RSS BTW. To subscribe to my blog please use http://feeds.feedburner.com/ComputerScienceTeacher as the RSS feed source. Subscribe now so you don’t miss any of the wheat among the chaff. Smile

Controversy ruled and point of view posts with opinions topped the list of most read blog posts of 2010 based on Web-based traffic. Although my reviews of visual programming languages and discussion of Kodu (graphical programming for very young students) were also big hits. Confirming that both lists and free items are traffic draws my recent list of free ebook from Microsoft also made the list. Most of the top posts were from the last couple of months but one of them, a discussion of computer engineer Barbie was from last January.

  1. Should Johnny Learn To Program?
  2. Four Key Concepts of Computer Programming
  3. Artificial Intelligence and Game Programming
  4. How Not To Teach Programming
  5. Teaching Real World Programming
  6. Computer Engineer Barbie
  7. Free eBooks From Microsoft
  8. Kodu Programming for Kids
  9. Does Learning Computer Programming Help Anything Else?
  10. Visual Programming Languages

The list of most read via RSS reader was almost completely different though. Here information and more pedagogical discussions  ruled with a weekly interesting links post (Interesting Links 29 March 2010) toping the list. That was a surprise!

  1. Interesting Links 29 March 2010 Some good links but I’m not sure what made it so widely read. I really do try to have good links in all of those weekly links posts though.
  2. NCWIT Award for Aspirations in Computing  This is a great program from NCWIT to recognize and support young women interested in computing careers. Looks like another site did help me get traffic here and for that I thank them.
  3. Web Development or Computer Science  What sorts of courses are schools calling computer science and is it helpful?
  4. What are you using? Where I asked people which of the resources I blogged about they were using. http://www.jayscustomcomputers.com/ also sent RSS traffic here.
  5. Playing Video Games Will Not Get You a Job But creating games might!
  6. Cheating In Computer Science Classes How common is it? Is it worse than in other subjects?
  7. Programming Contests – for good or for bad Everyone has an opinion. Do you use them?
  8. Web 2.0 and Other Educational Resources From Microsoft
  9. Rethinking Hello World One of my favorite posts of the year. I think we really do need to rethink the projects we assign. Closely related to this post was Projects that Mean Something and Characteristics of a Good Programming Project.
  10. Starter Resources for Robotics Learning

I’m not sure what it means that the two lists are so very different. I know that the most web read post are largely because external sites with huge readerships linked to them. So I probably see a lot of one time traffic from people who are not in education. So while that is nice and it is exciting to have a post read by thousands of people from time to time my goal is to be helpful to computer science educators. That is not a goal that can be measured by readership numbers. Comments, either on a post or via email (alfredth@microsoft.com)  or Twitter (@AlfredTwo) are always welcome to help me gauge that sort of success.

Friday, December 17, 2010

Microsoft bliink…a web design competition for high school students

I’ve talked about Bliink in the past. (See bliink) Over the last couple of years Microsoft has run this web development competition in schools across the county. It’s been limited to individual states, state-wide organizations, or large school districts so far. This year we are going wider – national (US) in scope. My friend Gautam is running the program and blogged about it at his web site - Microsoft bliink…a web design competition for high school students

The goal of the Microsoft bliink contest is to build the student interest in technology and increasing the STEM pursuits in education and careers in the US. high school students with a positive experience with being creative with technology are more likely to pursue STEM studies and careers.  We make this possible by providing high school students with the software tools, training and experiences through the Microsoft bliink contest.

Microsoft bliink contest 2011 will launch January 5th, 2011, with the registration window being open until February 28th, 2011. Website submissions (using Expression Studio software) are due March 1st, 2011 for fabulous prizes of XBox360 consoles, the new Kinect and XBox360 games. Any US high school student between 13 and 19 years of age is eligible to register and submit their websites to the  Microsoft bliink 2011 contest, participating in teams of 2 – 4 students.

So visit Gautam’s blog for the full scoop and if you know students who are ready to show off what they know tell them to keep an eye out for the official January 5th 2011 launch.

Sunday, December 05, 2010

Interesting Links Post December 6th 2010

csedweeklogoWell it is Computer Science Education week. Are you doing anything at your school for it this week? I attended three different CSTA chapter meetings in the last couple of weeks (northern New Jersey, Massachusetts, and New Hampshire) and there was a lot of talk about CS Ed week at all three meetings. Check out the CSEdWeek web page to see what is going on around the country. And now a few other interesting links.

The XNA Game Studio team announced Dream.Build.Play for 2011. While students should absolutely be entering the game division of the Imagine Cup Dream Build Play is open to everyone including people who develop software for a living. So you pros out there looking to make a name for yourself in game development this is the one for you.

Are you ready to compete? Dream.Build.Play is a competition where you can create and submit your XNA Game Studio 4.0 game for Xbox 360 to win prizes, including the chance to have your game featured on Xbox LIVE Arcade. Registration will open in late February 2011.

Speaking of the Imagine Cup, Andrew Parsons, recently relocated to New York City from Australian, makes the case Why [students] should make a game for Imagine Cup 2011 

A thought provoking post on the CSTA blog Maybe Course Proliferation Is a Bad Idea? Could we possibly have too many computer science courses? Types of courses that is – not too many courses in too many schools. Check out the post and leave your thoughts over there.

Did you know that Microsoft has been ranked as one of the top corporate citizens. One of the reasons I am proud to work here. A lot of people seem surprised by this which tells me that Microsoft is not the company some people think they are. The article makes for an interesting read.

Are you using Visual Basic and thinking that the C# people are having all the fun with Smart Phone programming? Well, good news, Visual Basic Windows Phone 7 Developer tools is now available!

Tuesday, November 16, 2010

Pledge to Participate in and be a Supporter of Computer Science Education Week!

Computer Science Education week is December 5-11, 2010 this year. ACM and the chair of CSed Week steering committer are asking people to sign up and pledge to support CSed Week. I understand that a new CSed Week web site “will be rolling out on November 29, and will encourage students, teachers, industry, and university folks to pledge to engage in some activity to promote computer science education.”

Join with teachers, students, parents and others who are participating in CSEdWeek activities and events. Sign the pledge now to support CSEdWeek activates and events.

Pledge here: <www.computinginthecore.org> and list what you are doing to participate in Computer Science Education Week.

Monday, November 15, 2010

Wisdom in Lists–Really?

Like a lot of people I have an affection for lists that condense a lot of wisdom into a brief set of statements or items. Some time ago I wrote a series of posts on Programming Proverbs for example. That list (reproduced at the bottom of this post) came from a book that was every influential to me, especially early in my career. Each proverb by it self said a lot but mostly to someone who all ready know something about the topic. The original book had a sort of chapter on each proverb and did a wonderful job of elaboration and explanation. My series of blog posts was a couple of paragraphs on each from my own experience. Why do I bring tis up now? Well I found a couple of other posts of somewhat similar “proverbs” if you will. I thought I would share them with you and perhaps suggest a look at my own series in case you missed it the first time around.

The first is “The Two Things about Computer Programming” a couple of years old but still quite relevant. Plus it is new to me so maybe it is new to you as well. Read the whole post for the explanation of “Two Things” but the Two Things about Computer Science and the Two Things about Software Engineering given are:

Computer Programming:

  1. Every problem can be solved by breaking it up into a series of smaller problems.
  2. The computer will always do exactly what you tell it to.

Software Engineering:

  1. Writing the code is the easy part. Writing it so someone else can understand it later is the important part.
  2. Make it work, then make it elegant, then make it fast.

I’m not sure these are the end all and be all and I have a mind to explore them at some length one of these days. But I thought they were worth sharing in “raw form” to see if I can get some conversation going. Are these right? Are there two more important things? Is it even helpful to have the computer programming and software engineering divide?

The other post is 20/20: Top 20 Programming Lessons I've Learned in 20 Years subtitled “This post could be viewed as hard lessons learned for newly graduated college students, entry-level programmers, or advanced developers who just want a chuckle.” Also not a new post but I just discovered it. There are some 60+ comments which may add value as well. I like this list although, as with many such lists, I’m not sure all of them would be on my top 20. But then each individual has a different experience and a different idea of what key learning's are.

The Programming Proverbs I wrote about with a link to each post is here:

  1. Define the problem completely
  2. Think first, Program later
  3. Use the top-down approach
  4. Beware other approaches
  5. Construct the program in logical units
  6. Use procedures {methods}
  7. Avoid unnecessary GOTO's
  8. Avoid side effects
  9. Get the syntax correct now, not later
  10. Use good mnemonic names
  11. Use intermediate variables properly
  12. Leave loop variables alone
  13. Do not recompute constants within a loop
  14. Avoid implementation-dependent features
  15. Avoid tricks
  16. Build in debugging techniques
  17. Never assume the computer assumes anything
  18. Use comments
  19. Prettyprint - format your code so that it looks nice
  20. Provide good documentation
  21. Hand-check the program before running it
  22. Get the program correct before trying to provide good output
  23. When the program is correct, produce good output
  24. Re-read the manual
  25. Consider another language
  26. Don't be afraid to start over

Monday, October 25, 2010

Welcoming Andrew Parsons to the US Academic Team

The latest person to join the US Academic Developer Evangelist team is Andrew Parsons. Andrew is moving from the other side of the world (Australia) to work with colleges and universities around the New York City area. He’s been doing that sort of thin Down Under for several years and we’re all pretty excited to have him join the US team.

Andrew talks about the move on his blog at - NYC, here I come!

He also talks about his first big New York City event - NYC Imagine Cup Kick off - Inspiring students to change the world for the better - If you are a college/university student in the NYC area I hope you’ll sign up for Andrew’s event, learn about the Imagine Cup, and welcome him to the States. BTW Andrew is and has been one of the “captains” of the Imagine Cup Game competition so knows a ton about XNA and game development. And of course about the Imagine Cup!

Friday, October 15, 2010

Introducing the Microsoft US Academic Bloggers

I'm part of a group of people at Microsoft who work with academics all across the country. A number of them have active blogs and I thought this might be a good time to introduce them to others. For each blogger I have their name which is hot linked to their blog, a picture, and a link or three to recent posts that I think people will be interested in. I hope you will visit some of these blogs, subscribe to any that look interesting and get some real value from them.

Sunday, September 26, 2010

Interesting Links 27 September 2010

Last week I wrote a post about the Imagine Cup. (Imagine Cup–Solving the Worlds Problems Through Software) A couple of things I should have mentioned about it though. One is there is a chance for students who enter to win an Xbox 360 console with the new Kinect each week to one random Imagine Cup registrant .Read the full rules at Imagine Cup Rules. The other thing I should have emphasized is that the Round 1 quizzes for the Information Technology (IT) Challenge have started. You can get the full schedule at IT Challenge web site. It’s not to early to work at qualifying for Round 2.

Brandon Watson @BrandonWatson announced that Visual Basic is now available to support Silverlight development for the  WindowsPhone7. Visual Basic Comes to Windows Phone 7 As a big VB fan boy from way back this is pretty exciting to me.

The World Wide Innovative Forum is coming up this week in South Africa. Leading up to it Tony Franklin has been posting some guest posts from the US teachers who are going.

@weemooseus Twittered a link to a post by a student who wrote up his list if the Top 5 AP Computer Science Tips. It’s an interesting list with some good suggestions.

What does your school need? The team at Bing is running a contest to provide money to schools. Check the program out here. Learn more about Bing programs for educators, visit bing.com/education

In other links, Ken Royal @kenroyal had an interesting article on  Top 25 Ed Tech Trends. Well worth the read.

Thursday, September 09, 2010

Most Popular Posts From August

It turns out the be complicated to figure out what the most popular blog posts are for a particular month. There are two sets of data I look through. One set, from Feedburner, shows (in theory) the top number of posts read by subscribers to this blog. The second set of numbers, from the hosting service, shows (again in theory) the top posts as read by web browsers. There is a lot of similarity in the two lists but it is not exact. For one thing the web traffic comes in large part from search engines. It looks like a lot of people in August were searching for things related to “What do you do on the first day of class” which led them to a post from September 2007! My posts from July of this year on Visual Programming languages and the new Microsoft Technology Associate certifications also received a lot of web traffic in August. The top 5 based on being on both lists is below though.

  1. Non-Myths About Programming
  2. Computer Science is NOT Boring!
  3. Free Microsoft Office Add-ins for Education
  4. Windows Phone 7 Sample applications
  5. Girls, Games and Software Development

I hope you’ll read through these if you missed them. Many of them have some comments which are often well worth the read. I encourage you to add your opinions to those and any other recent posts. And of course any I post in the future. Comments make it all much better for everyone. Are any of your favorite posts from August not on this list? Or any you think were worthless? I could always make a least popular list but somehow I think I would find that less personally satisfying. Smile