Friday, November 30, 2012

Microsoft’s Imagine Cup

ICLogoOne of the really interesting events that Microsoft runs is a set of competitions called the Imagine Cup.  These competitions are international events that challenge students to create serious and meaningful projects for a chance at prizes and recognition. For many previously competitors the recognition has been more beneficial than the cash prizes. Even for many competitors who did not win prizes the participation in these events has proved beneficial. Because these projects can be significant they often serve as great inclusions in portfolios of work for job applications and applications for advanced educational studies.

Participation can also inspire students who don’t get to the level of a country finals though. They can be great learning experiences. I like this post by a current university CS student who took part in the Imagine Cup while she was a high school student. Turning a Disaster into a Career

Most of the competitors are university students up to and including graduate students. Several teams of high school students have done very well over the last couple of years. In the US high school students have finished as high as second in the US finals in game development events. I fully expect a high school team to win one of these days. Maybe in a game division but maybe in one of the other areas.

This year there is also a quiz event called the Brain Games Challenge:

With our new Brain Games Challenge you don't need code. Just bring your brain:

Every month brings a new brain-melting trivia quiz on Imagine Cup themes! Use search engines to answer tough questions and you could win the monthly cash prize.

Monthly Quiz Prize: $1,000
Sweepstakes Grand Prize: Free trip to St. Petersburg, Russia, to see the Imagine Cup Worldwide Finals!

Want to participate?

We know you can. Sign up to get the Imagine Cup newsletter, talk to the Imagine Cup team on Facebook and Twitter, and get the latest scoop on various contests and even more ways to win.

Competitions

Challenges

A Day With a Windows 8 Slate

One the the farewell presents from Microsoft (actually something I won in a company promotion) was a Samsung Series 7 slate running Windows 8. It’s a very nice slate PC with touch capability and a stylus. Windows 8 is of course largely designed for such a thing. What it doesn’t have is a hardware keyboard which is what kept me from using it full-time before yesterday. But yesterday I was spending the day at a conference and my wife was taking the laptop I’d been using so this was a good day to try things out.

My prior experience with tablets was an early model tablet running Windows Tablet edition way back before iPads or even iPhones were invented. I’m not a pen person and that version of windows was not really optimized for pen use beyond handwriting recognition. Pens (and fingers) make poor mice and early tablet editions of windows used pens/styluses basically as mice.  So since that tablet was a “convertible” with a full keyboard I used it pretty much the same as a regular laptop. The Series 7 doesn’t have a hardware keyboard or touch pad but the user interface is far different today from back in the day. That was a plus.

During the day I mostly used the slate for Twitter and web browsing. On the web I used Facebook and email as well as visiting various web pages. I confess that I spend most of the time in old-school desktop mode rather than the new Metro mode. The Twitter app I got from the Windows store doesn’t support all the features that TweetDeck does so I used TweetDeck. I used both IE and Chrome. I used Chrome because sometimes it is nice to have two sets of cookies. Smile 

Both web browsers operate fine with touch control. TweetDeck could be better. I have fat fingers and some of the sliders are hard to use with them. The stylus helps me out in those cases. It’s probably less of an issue for thinner fingers but having a real touch optimized app would be better still.

Typing took me a while. At first I was using hunt and peck which was frustrating as I am normally a pretty fair typist with a real keyboard. As the day went on I tried using the software keyboard like a “real” keyboard. That got easier as the day goes on and another day or so and I think I could get pretty good at it. I think I’d still prefer a real keyboard but I’m more impressed with the software keyboard after using it for a while.

All in all things worked very well. I’m hoping for a better Twitter app sometime though. Windows 8 apps are showing up in ever increasing numbers so I am optimistic about that. The long battery life and the light weight of the slate make it great for a day away from the office though. With a keyboard (I have a soft one that rolls up) for trips I can see this being a great travelling system. A Surface Pro with the cool cover keyboard might be even better though. The one thing keeping a regular Surface from being better (running Windows RT) is that I want to run Visual Studio, Windows Live Writer and a few other old school applications on my system. Software development is probably better with a conventional keyboard anyway.

I don’t have a copy of  Office on my Series 7 which I miss. But at least I can still use the Office Web Apps with my Skydrive for a lot of stuff so that is not a show stopper.

Conclusion: A Windows 8 slates is a very reasonable system for use away from the office or home. It will be even better with a few more “native” apps.

Thursday, November 29, 2012

What Do You Want To Make?

As I mentioned yesterday (Cool Toys For Teaching Software and Engineering) I am attending the Christa McAuliffe Technology Conference this week. Not a lot of computer science here which is true of most education technology conferences these days. That is sad but it is a fact of life. None the less I come looking for inspiration, ideas and to keep up with what is going on in edtech. One session I attended was by Gary Stager who is a huge proponent of constructivist learning. In the course of his talked he asked the question “What do you want to make?” as an alternative to “What do you want to learn?” That got me thinking.

Students are constantly looking for relevance in what they are being asked to learn. Often we fall back on the “learn it! It’s good for you.” which seldom really works. Oh we get them to hold the information long enough to regurgitate most of it back on a test or quiz. But it is gone soon afterwards never to surface again. It’s meaningless. But look at someone of any age who wants to make something and see what happens!

Most self taught software developers didn’t wake up one day and think “I wand to learn Java.” Or C# or Visual Basic or MatLab or Python. What they woke up one day thinking was that they wanted to make something. They wanted to write a program to do something. Maybe what they wanted to make was trivial. I still remember spending hours writing a program to get a line printer to print out huge banners. Maybe what they want to make is a world changing application or fortune making web site. But they wanted to make something and to make that something they had to learn something.

This applies to most anything. I have a cousin who decided he wanted to make a muzzle-loading rifle. He didn’t know anything about metal working, wood working or any one of several skills he needed to master to make the rifle he had in mind. So he set out to learn the things he needed. The result was not only a really nice rifle but a set of skills that will last him a lifetime and serve him well for any number of other projects to come. Could he have learned those skills without a project? Perhaps. Would he have been as driven to do so? Unlikely.

Sometimes you need to start with the end goal in sight and then figure out how to get there. It is usually more effective than starting with “learn this and we’ll figure out what use it is later.”

This is why having students write computer games or program robots or develop smart phone apps can be a powerful learning tool. Students want to create these things. Giving them permission to do so means that they can be the ones driving the need to learn new things. It means they ask to be taught and they search for what tools they need to create what they want as an end result.

Maybe the way to avoid boring projects and to create open-ended projects is to start by asking students what they want to make.

Wednesday, November 28, 2012

Cool Toys For Teaching Software and Engineering

I’m attending the Christa McAuliffe Technology Conference this week and spentlogo_CMTC the morning in the exhibit hall. Most of the hall is stuff I’m not that interested in. I’m not looking for student management systems or projectors or smart boards. Just not my interest. But I did find some cool stuff that was a bit different and may be interesting to computer science, ITC and technology teachers. I thought I would share some of what I have found.
WP_000598One really cool thing was a relatively affordable 3-D printer. This printer runs about $1300 and comes complete and runs right out of the box. Probably not that sophisticated but will create objects up to 5.5 x 5.5 x 5.5 inches in size. It’s called the Cube and I will be looking into it some more. BTW I wrote about the disruption of 3-D printing in this blog recently.
On the other side of the price range is the NAO robot. It’s about ten times the cost of the 3-D printer. It’s a very capable robot though. WP_000593 It’s programmable in a variety of languages including C++, Java, Python, MatLab and the .NET languages. Also cross platform for Windows, Mac and Linux. I don’t see that many schools getting one without getting some grant money of course. There is a simulation environment that lets you write and test your programs before you send them to the robot itself. So one is probably enough – fortunately!
WP_000596For lower cost robotics stuff Lego is here as well.
Who doesn’t love Legos! I know I love them. Lego’s educational offerings seem to be growing all the time.
Acer and some others are here showing off their latest hardware as well. I like this little touch capable convertible laptop from Acer. It's called the Iconia W5.
WP_000594 The keyboard is easily removable so that you can use the screen as a slate device. It’s small and light and seems ideal for a computer on the go. They have a larger screen version that comes with a larger BluTooth keyboard as well.
Last cool thing to share isn’t new technology but a nice conference feature. There was a charging station that had a power strip (as you would expect) but also had a USB charger connected so that multiple USB powered devices could be connected for recharging. This is something every conference organizer should think about doing these days.
WP_000601

Tuesday, November 27, 2012

Words Matter

Not long ago someone tweeted “Stop using "guru," "ninja," and other terms for job descriptions. You are a Sparkly Code Princess. Own it!” It’s been running though my head ever since. Then last week Laura Blankenship wrote a post called Pronouns and abstract nouns matter which added to my thinking. Way back in 1997 I participated in a program at Carnegie Mellon that had the dual goals of teaching AP CS teachers how to teach Java and how the better recruit and retain girls in computer science courses. One of the things that was talked about was how we talk to and about girls/women in the field. Related to this was how we create an environment that is friendly and welcoming to female students (and everyone really). Of course words matter.

Now there are for sure some girls who want to be a “ninja” that may not be as common for girls as it is for boys. And so many of the words we use for top software developers are that way. Think about “Code Warrior” for example. Do we have similar meaning terms that are more female friendly? I’m not sure we do. It may not be necessary to have them either but I don’t think it creates a great atmosphere if we use the “boy friendly” words to often. We should strive to use inclusive language at least!

“Sparkly Code Princess” may or may not be a good substitute. “Queen of the Lab” or “Code Diva” likewise. But I think we need to be aware of what words we do use and how we describe the “Rock stars” in our classrooms. One thing I think we can do is support girls who self identify with creative names. If a girl one is teaching wants to call herself a “Code Princess” (sparkly or other wise) that is just as valid as a boy who wants to be a “Code Warrior” and should be respected as much.

We want students to feel good about their accomplishments and their own identities. How they choose to call themselves is important to them and we should not try to force our own labels on them.

Monday, November 26, 2012

Interesting Links 26 November 2012

Last week was Thanksgiving in the US and for me it meant a lot of good food and family time. Among other things my son and I built a new dock. It’s the kind of project that is easier when  the level of the lake is low for the winter. Very little computer time though which is not always bad. Earlier in the week I did manage to pick up some good links to share so here they are.

Recently I talked a little about MadLibs type games in a post (The Open-ended Project) and soon after ran into more related posts. Both of these are using Python but I’m sure you could adapt them to just about any other programming languages. The most complete on was  Python Madlibs While the other shows possibly the Simplest MadLibs type game program in the world.

Code Literacy: A 21st-Century Requirement by Douglas Rushkoff reprinted at the CSTA blog.

Why coding is hot in high school is an interesting article from @CNNMoney It’s always interesting when the media “discovers” computer science in a local high school and extrapolates it to the idea that this is a universal trend. In any case the video highlights a good start to a CS program in one high school. Is it reproducible? I think that depends on the availability of willing teachers. What do you think?

CSEdWeek call to action by @fredwilson Are you ready for Computer Science Education week? Please pledge your efforts at http://www.csedweek.org/forms/sign/pledge-step1-2012

Speaking of CS Education week.  Save the date: On Tues Dec 11 at 6pm ET CSEdWeek will host a national Twitter conversation about the critical issue of k12 CS education. Follow the #CSedWeek hash tag and/or the @CSEdWeek twitter account.

OH: Computer Science Christmas Carol #1: The 1100 Days of Christmas.

Wednesday, November 21, 2012

ACM/IEEE-CS Computer Science Curricula 2013 - Ironman v0.8 Draft Available for Comments

Dear Colleagues,

We are happy to announce the availability of the ACM/IEEE-CS Computer Science Curricula 2013 - Ironman v0.8 draft.  The draft is available at the CS2013 website (http://cs2013.org) or directly at:

http://cs2013.org/ironman-draft/cs2013-ironman-v0.8.pdf

The Ironman v0.8 draft contains the complete CS2013 Body of Knowledge, fully revised based on comments from the previously released CS2013 Strawman draft.  We are now calling on the computing community to submit exemplars of courses and curricula to better connect the CS2013 Body of Knowledge to real, existing approaches representing diverse and innovative ways to teach computer science.

CALL FOR EXEMPLARS

The CS2013 Curriculum Steering Committee is seeking exemplars of courses and curricula from the broader community. This open process will better connect the CS2013 Body of Knowledge to real, existing approaches representing diverse and innovative ways to teach computer science. In computer-science terms, the topics and learning outcomes in the Body of Knowledge represent a “specification”, whereas a curriculum is an “implementation” and a course is part of a curriculum.  The CS2013 Ironman v1.0 draft (the penultimate CS2013 draft) will be released in early 2013, containing an initial set of such course/curriculum exemplars.

Including exemplars as part of the CS2013 effort is a new idea not present in previous versions of the ACM/IEEE-CS Computer Science Curriculum guidelines. The steering committee believes they will provide greater value than stylized model courses that do not directly describe actual experience. Submitting an exemplar is your opportunity to present a successful approach to teaching computer science in a way that will prove useful to educators working to adopt the CS2013 guidelines.

Information on how to contribute course/curriculum exemplars is available at the CS2013 website (http://cs2013.org) or directly at:

http://cs2013.org/exemplars.html

SIGCSE-13 SPECIAL SESSION: CS2013 EXEMPLAR-FEST

A special session, entitled “CS 2013: Exemplar-Fest,” will be held at SIGCSE-13.  This session will showcase submitted samples of CS2013 course/curriculum exemplars and provide the opportunity to engage the community in the development of additional course/curricular exemplars for CS2013.  Exemplars submitted prior to December 5th can be considered for potential inclusion in this special session.  The special session will be held on Friday, March 8, 2013 from 10:45am to 12:00pm.

COMMENTING ON CS2013 IRONMAN v0.8 DRAFT

We welcome additional comments on the CS2013 Ironman draft from the computing community.  Information on how to comment on the draft is available at the  CS2013 website. Comments on the Ironman draft will be addressed in the final released version of CS2013.

Warm regards,

Mehran Sahami and Steve Roach

Co-Chairs, CS2013 Steering Committee

CS2013 Steering Committee

ACM Delegation

  • Mehran Sahami, Chair (Stanford University)
  • Andrea Danyluk (Williams College)
  • Sally Fincher (University of Kent)
  • Kathleen Fisher (Tufts University)
  • Dan Grossman (University of Washington)
  • Beth Hawthorne (Union County College)
  • Randy Katz (UC Berkeley)
  • Rich LeBlanc (Seattle University)
  • Dave Reed (Creighton University)

IEEE-CS Delegation

  • Steve Roach, Chair (Univ. of Texas, El Paso)
  • Ernesto Cuadros-Vargas (Univ. Catolica San Pablo, Peru)
  • Ronald Dodge (US Military Academy)
  • Robert France (Colorado State University)
  • Amruth Kumar (Ramapo Coll. of New Jersey)
  • Brian Robinson (ABB Corporation)
  • Remzi Seker (Univ. of Arkansas, Little Rock)
  • Alfred Thompson (Microsoft)

Tuesday, November 20, 2012

What Programmers Say When Their Programs Don’t Work

Someone posted this to Facebook the other day. I have to admit that I have said several of these and heard most of them. I suspect a lot of these are also said by students when asked about why their projects don’t work.

Top 20 replied

I’ve said '”That’s weird” a lot. It’s a sort of placeholder while I try to think of what could have done wrong. Number 2 actually makes sense if you think it is in the context of “where in the program where you” as in what else was going on. It’s a valid question.

Monday, November 19, 2012

Interesting Links 19 November 2012

I made some more changes to the blog this last week. I hope they are not too disruptive but I want to make the site more useable and interesting. The big changes are the addition of an easy option to subscribe via email and the list of popular posts. If you prefer to get new posts via email then please take advantage of the option on the right of the page. I don’t think I even get a list of subscribers so privacy should be maintained. The list of popular post is based on page views for the last 30 days. We’ll see how it works out over time. Now for some links:

Are you on the map? Take the pledge and post your CSEdWeek events. Computer science education week is coming soon. Plan something good and share it with the world. Let people know that CS education is important to your and your school.

Friends in higher education computer science will want to take a look at the CS2013 Ironman v0.8 draft which has been posted on the http://cs2013.org  website, and is available directly here http://ai.stanford.edu/users/sahami/CS2013//ironman-draft/cs2013-ironman-v0.8.pdf The committee is looking for exemplar courses and programs to include in the 1.0 release. Let me know if interested in contributing to that effort.

Goldie Blox is a new engineering toy for girls. I suspect som boys will like it to though I first read about it at Upworthy - Move Over, Barbie — You’re Obsolete.  Love the line that girls are "more than just a princess"

Computer Science Ed. Gets Boost From $6 Million NSF Grant via @educationweek highlights a major new program by Georgia Tech and UMass Amherst funded by the National Science Foundation. Looks to be pretty exciting since it builds on some work out of Georgia Tech that has been very effective in that state.

CSTAbadgeI added a CSTA member badge to my blog and web site to help promote an organization all CS teachers should join. If you are a CSTA member (and if you teach computer science you should be) why not add a badge to your web presence?

 

A couple of great posts from computer science teachers I respect a lot. Well worth reading and sharing.

Are you interested in learning some Windows 8 Development? If there is a Microsoft Store near you check out this site for a list of stores hosting Windows 8 Development workshops. They’re free.

Speaking of Windows 8 development, friends of mine have posted recently about using the Bing Maps APIs with Windows 8 and using the Google Maps APIs with Windows 8. Adding mapping to an application can make it a lot more interesting and useful.

Recently I read about Little Miss Geek on the blog@CACM | Communications of the ACM.Little Miss Geek is a book — and a wider campaign — by Belinda Parmar to shift women's role in technology from consumer to creator.”

Message-Oriented Programming is an interesting article about how using messages can make mixed language development a lot more useful and effective. A great conversation starter for CS students that will give them things to think about.

Friday, November 16, 2012

Predicting the Future of Computing

This is something a little different. Hopefully a conversation starter. In 1994, after about 18 years in the computer industry working with mini-computers, I found myself looking for work. As I surveyed the environment in computing it was pretty clear that the age of the mini-computer was if not already dead pretty close to it. The future was clearly in personal computers. I bought as much PC as could afford, picked up a used copy of Visual Basic and started to retrain myself as a PC person. This fall I again find myself looking for work but the environment is not as clear now as it was then.

There is a lot of talk about a post-PC era where PC refers not just to the WinTel set of personal computers but the whole idea of the desktop computer that doesn’t travel. The cloud is a big deal. Computing devices are in some sense being relegated to thin-client status. Not quite the dumb terminal of timesharing or the minor local “smarts” of programmable block mode terminals of course. But not the place where most of the processing gets done either.

And the devices! Smartphones, tables of various sizes, laptops of power, and there are still desktop systems for a lot of tasks. Plus of course special purpose appliances like ereaders (I love my Kindle) and music/media players. These are personal devices and they have some of the attributes of computers but they are more focused in purpose.

Software? Windows, MacOS, lots of flavors of Linux, iOS, Android, Windows Phone, special purpose versions of various things for ebooks, music players and hybrid devices like the Kindle Fire. In some respects I love the diversity of operating systems as I believe it suggests a lot of innovation is and will be taking place for a while. It doesn’t make it easy for someone who wants to develop for the most number of people though.

With all  this diversity where does one put their focus? What is the future that gives one the most options and hope for a long career? Now a lot depends on where you are in your career.

For a high school students I would argue that it doesn’t matter. Things will be much more clear in 4 to 8 years when you get out of college. For now focus on the basics and the concepts that will build a good foundation for the future. Any of these platforms will give you a chance to learn to code, learn to use APIs and even develop some code that will make you some money. Phone apps? You can learn the same basic concepts on all three major platforms. Tablet apps? Windows, iOS or Android are all open to you. You don’t have to bet your career on one or another because things will definitely look different for you later. Take advantage of the freedom to learn to get some breath of experience.

For university students it starts to get more serious. Moving out into industry is getting closer. I do believe that a solid background in theory and concepts will be worth getting not matter which way the wind blows. While you may want to pick one area to concentrate on don’t get too attached to it. Be ready to switch platforms if you need to do so.

For someone currently looking for work it gets scary quickly. Do you bet on Windows 8 being a success and start writing Windows Store apps? Or do you assume the tablet version of Windows will go as far as earlier tablet offerings from Microsoft went and look to do your tablet development for iOS or Android? Will the fragmentation of the Android platform doom it to an early bust? Will the fact that there are so many iOS apps mean yours gets lost in the noise? Who knows!

The same is true of phones. iPhone is still the cool device that gets a lot of attention but there are more android phones in actual use. Will Microsoft marketing might eventually move Windows Phone into contention? Can you develop for multiple platforms in a way that is cost effective enough to make it worth while?

What about purpose built appliances? Should you be looking at the potential for creating new appliances that mix hardware and software to solve new problems? Is the Internet of Things that integrates many tiny data gathering devices to create massive data sets that allow artificial intelligences to do things we haven’t yet considered? if so how do you get into that early enough to make a mark?

The more I think the more questions I come up with. What issues are you thinking about? Where do you see the industry going? Will Microsoft be gone in ten years? Will someone take out Google in search engine ability? Will Apple be able to keep up its record of innovation without Steve Jobs? Will we see a return to an OS monopoly in the future or is fragmentation the way things will stay?

Thursday, November 15, 2012

Where Do You Go To Learn To Teach Computer Science?

Most people I know who teach computer science more or less figured out how to do it on their own. Some were lucky enough to have peers in the same school or close by to help them figure it out but that is still on the job training. The result is that most of us teach computer science the way we were taught. How people who taught themselves computer science figure out how to teach it is something I am not at all sure about.

Along the way, if we’re lucky, we manage to get some professional development. Some APCS workshops perhaps. Some outstanding teachers teach those workshops and a lot can be learned from them. Or the CSTA Annual Conference if we have some travel budget. Some local conferences if we don’t. SIGCSE is always interesting. Even though most of it is targeted at university faculty the SIG does make a real effort to help high school teachers out there.

This seems atypical compared to most disciplines. Usually there are graduate programs (even undergraduate) in “how to teach x.” or methods courses. There are not many programs out there for computer science education. Recently Matthew X. Curinga started looking at/for these programs and posted some primary results at Where are the CSE programs? Mark Guzdial reports that these programs are “woefully undersubscribed.” Not a good thing.

For some reason the same systems that think that math teachers and English teachers, among others, should have methods courses on how to teach based in research and years of study think that anyone who has a clue about computers can teach computer science. We ask teachers to get advanced degrees in teaching reading (natural languages) but expect someone who had a FORTRAN course 20 years ago to be able to teach Java without any additional training. Weird!

The state of certification for computer science teachers is a mess in the US. Without clear certification requirements there is little incentive for teachers to take CS methods courses let alone get an advanced degree in the field. Well other than intrinsic motivation to become a better teacher. The rareness of the existing programs means that few of them are convenient to many teachers though so even with self interest it can be difficult to take the courses that do exist.  Finding them is difficult as well.

The situation has been described as a “chicken and egg” question. With too little demand for CS education methods courses there are not many of them. And with there not being many courses it is hard to make attending one a requirement. Somewhere along the line something has to push to break the deadlock. Will the CS10K effort be the catalyst? Will it take more pressure moving Computer Science into the common core? Or is this only going to happen on a long term state by state basis?

In the mean time we could at least make sure that more teachers or pre-service teachers knew about the courses that do exist and were given incentive to take these courses. Almost everyone teaching CS could use some well-researched ideas about how to teach the material better.

Wednesday, November 14, 2012

The Open-ended Project

I’ve been thinking a lot about projects the last month or so. You may have seen it in my posts. Mostly I’ve been talking in generalities but today I’d like to focus on a specific idea. last week someone, I don’t remember if it was Twitter or Facebook or a blog comment, mentioned that MadLibs makes a good project for arrays. So I have been thinking about how I might assign that as a project and avoid the whole recipe trap (see my recent post Project or Recipe) BTW I am pretty sure that MadLibs is copyright Penguin Press so I’m thinking more generally of “a phrasal template word game where one player prompts another for a list of words to substitute for blanks in a story, usually with funny results.” Thanks Wikipedia. Smile
The pretty standard way to assign a project like this is to specify quite a bit of detail. You could say things like “Prompt for words using an Input Box” for example. In fact you could spell out quite a bit of detail to create lines for students to draw inside. A sample output could be provided. IN short you could provide a fairly detailed recipe and say “make this.” But you might get 30 identical results turned in. Limiting.
Or you could make it open-ended and say  things like “the main requirement is that you use an array of word objects where one field is the word and a second field is the part of speech of that word. Now make a game  that uses this array.” OK yes, some students are going to freak out and demand more detail. Are you helping them if you give it? I’m not so sure.
Leaving it open may give you a lot of different projects. Students may use many different ways of acquiring the words for display. Command line, Input Boxes, Text boxes, even data files. The output may come out differently. The words may be used in different orders than entered. perhaps give students credit for implementing CompareTo so that lists can be sorted alphabetically under part of speech? What other options can they add to the word class? Maybe character length? Or plural format? Or ask to associate a gender which might make language independent versions easier? Does it even have to be in English (or the default language of your classroom?) Why not make it a world language project. Or make stories from different school subjects?
The big risk of making things this open-ended is students trying to do to much. Perhaps the way to handle that is to require a written plan with dates in it first. Review the schedule against dates regularly to make sure students are on target. I’ve written about feature creep and all-nighters recently. There are things to watch out for in large projects!
What do you think? Too open-ended? Not open enough? Too much except for a semester or final project? Are students going to toss up their hands and say “not enough information!” or are they going to warm to the task and create great projects? Have you tried something like this? What was it and how did it work out?
Related posts:

Tuesday, November 13, 2012

Supporting Student Innovation

Pat Yongpradit is one of my heroes. He is a high school computer science teacher who just does amazing things and gets his students involved in projects that take them well beyond the bounds of normal pointless projects. For several years now he has had students do well in competitions from the Imagine Cup (US Finalists in the game category last year), the Kodu Cup and the NFTE World Series of Innovation.

The other day he sent an email asking me to vote for his students teams. There are great projects and besides voting for them myself I felt I should share them with others. Sure I’d like to to vote for one or more of these projects BUT I’d also like to share the sorts of things students are capable of doing in high school. A lot of what is involved is giving students basic skills and knowledge, inspiring them to do great things, and getting out of the way. The following is from Pat:

My students are finalists in the 2012 NFTE World Series of Innovation. This is a creative opportunity for students to dream up new products and services and have a chance to be the winner of more than $2,500 in cash and prizes.

Watch the ideas and vote for my 3 student groups.

The challenge is presented by Microsoft and the Network for Teaching Entrepreneurship, an organization that inspires young people from low-income communities to plan for successful futures by pursuing educational opportunities and starting their own businesses. Help make a kid's idea come true.

You can vote once per 24 hours per email address... so vote early and vote often!  I believe voting ends on the 16th.

Take a look and if you feel moved to do so, vote. But do take a look at these projects for inspiration.

Project or Recipe

Chris Lehmann is the principal of the Science Leadership Academy, a partnership school in Philadelphia, and a frequent speaker on educational issues. He’s a great guy, smart, friendly and truly dedicated to his students and their school. One of  the things he has said that really resonates with me is this quote about projects.

If you give a project and you got back thirty of the same thing, then it wasn't a project it was a recipe.”

This really has me thinking. I know some people who love the idea of recipes. There are a bunch of recipes for teaching Small Basic that people I know have been using with some good success for a while for example. I think in the long term it may be how you use the recipes but in the long run I  think one really wants projects to all be different.

My wife and I have been trying a lot of recipes for meals lately. We’ve got some good cookbooks and we’re picking out recipes that help us with our diet goals. We almost never cook things exactly the way the recipe calls for though. Sometimes we leave things out because I am allergic to them or just plain will not eat them. Sometimes we increase quantities – rule of thumb always double what they call for in garlic – to suit our particular tastes. The result is something different from the cookbook but more suited to our individual tastes and desires.

Projects can be like that as well. Oh for sure sometimes we have to have some firm constraints because of the goals of  the project. If we didn’t require loops in some projects we’d get code that worked, in a manner of speaking, but that was a lot of cut and paste of single statements for example. I think what is needed is that recipes can be a base, a place to start, but for a real project there has to be some open ended room for exploration, creativity, and even independent learning.

Perhaps a recipe is a good starter to build a platform for more individualized work. For more advanced students I think you want less recipe and more open-endedness.  Thirty identical projects may be easy to grade but they are boring for students, boring for the grader, and limiting to everyone. Education should be about expanding options not limiting them. It should be able give students the tools and letting them use the tools in creative ways to solve interesting problems.

Recipes are not bad but they are not enough. Are you leaving enough openness in yoru projects so that you get a lot of unique solutions or is everyone just robotically following a limited recipe?

Monday, November 12, 2012

Interesting Links 12 November 2012

I spent a little time tweaking this blog layout last week. Just trying to make it look a little less cookie cutter. I also wanted to add the share buttons at the end of each post to make it easier for you to share posts via Facebook, Twitter, Google + and other social media. I hope you’ll take advantage of these if only to increase the conversations in the comments. Also I associated this blog with my personal domain so now you will see it as being at http://blog.acthompson.net I’m hoping that will make it easier to find and remember. The old address and any old links you may have used should still work just fine though.

The Anita Borg Institute, an organization focused on increasing women's participation in the technology workforce, is now Seeking Nominations for the 2013 Women of Vision Awards.

These awards recognize outstanding women for Leadership, Social Impact, and Innovation. See the full descriptions of these award categories online.

Its time! Let us know your plans for @CSEdWeek and pledge your support! Computer Science Fuels the Future. Learn how at http://www.csedweek.org

Do you have or know of deaf or hard of hearing students who are interested in computer science? The University of Washington is hosting a Summer Academy for Advancing Deaf and Hard of Hearing in Computing. They are looking for some top students so if you know of any good candidates please let them know about this opportunity.  I found out about this though the CSTA blog at Seeking Deaf and Hard of Hearing Students Interested in Computing!

Network World says that there will be 100,000 New Jobs for Tech Industry Through Midyear 2012, according to a report from the TechAmerica Foundation.

Windows Store app samples - download code examples C#, C++, and Visual Basic. Thanks to Channel 9 for the lead.

A Passion for Math is a talk by Elly Schofield at TEDxClaremontColleges. In it she talks about what is wrong with math education. Some valuable lessons for education in a wide range of subjects though. Elly is the daughter of a friend of mind at Microsoft Research but I’d link to this even if that were not the case.

Friday, November 09, 2012

The Myth of The All-nighter

All-nighters, those storied tales of spending all night in the computer lab or the library trying to meet a school deadline, came up in a Facebook conversation the other day. I remember those days myself. Something of a badge of honor – the ability to work all night long. In hindsight it was not always so smart. At least not when trying to meet a school deadline. It showed little more than poor planning in most cases.

Oh for sure there were fun exceptions. I spent more than a few nights one semester staying up all night playing chess with a friend. It did wonders for my game which is no where near as good today as it was then. And then there were the nights we spent in the computer lab trying to create computer art. We could only get access to the computer with the drum plotter (hey it was a long time ago) at night and that thing was slow. So it was all night sometimes or nothing. But for school deadlines? Not such a good idea. I don’t think it is a good idea for professionals either. More on that in a moment.

The women in my college computer courses had a curfew. I said it was a long time ago. All nighters in the computer lab were not something they could do. And yet, they managed to get all their labs done in plenty of time. In fact few of them were even in the lab the night before a project was due. What was up with that? I think the magic is called planning. They, and some of the guys, worked to a plan and didn’t try to cram everything in to one night before the project was due. And those people seemed to get good grades and go on to great careers. Imagine that.

The all-nighter is part of the mythos of the macho programmer able to work long hours to meet impossible deadlines. It turns a lot of people off. Rightly so I think. I remember one person I worked with who was working impossible hours. Day in and day out he was putting in 18 to 20 hour days. I asked him if he had ever heard of the law of diminishing returns. He told me that he didn’t have that problem. Then one day we got to work to find out that he had destroyed the development disk and the most recent backup of the same. We lost a lot of time and our manager finally ordered him to take some time off and rest. It turns out he was human after all.

I concluded some years ago that if developers were working more than a normal work day (roughly defined as 8 hours) on a regular basis that either they or their manager were incompetent. I got some push back on that. People saying that sometimes there are good reasons for crazy deadlines and working long hours. And I agree. What I don’t think is that should be the norm. A competent manager with competent professionals will set reasonable deadlines that can be meet using reasonable working hours. If deadlines can’t be meet in that sort of fashion what has happened? Have the circumstances (specifications perhaps) changed or is the developer not up to the task or did the manager set unreasonable deadlines? Someone messed up.

In the school situation we have either a student who is not up to the task or and instructor who has set a bad deadline. Where a project is being used for the first time an instructor may honestly miscalculate the time required for a reasonable student to complete the task. For a project that has been used before this is less likely. So if the deadline is reasonable hitting a deadline is the student’s responsibility. one of the things we hope a student will learn in school is how to schedule themselves and estimate the effort for various tasks. In most cases a student all-nighter is an example of either a failure to schedule correctly or a failure to estimate the effort a project will take. In either case this is not something we should treat as heroic.

Treating the all-nighter as heroic or as an important rite of passage sends a poor message to others. “Pulling an all-nighter” does not make you a rock star. It means you goofed. Never having to pull an all-nighter does not make you less a student or less a professional. It makes you more a professional and more of a student. The myth of the macho all-nighter is not and should not be a positive image.

Or am I off base here? And if so why?

Are You Ready for Computer Science Education Week?

I’m a big fan of CSEdWeek (Computer Science Education Week) and in the past I have done school visits and hosted field trips at Microsoft offices during the week. I don’t have anything planned this year though which is pretty disappointing. I’m thinking about ways to change that and am open to suggestions. What about you? Do you have plans for CSEd Week?

Do you know how you will be celebrating CSEdWeek?

Computer Science Education Week (CSEdWeek) (December 9-15, 2012) is a weeklong celebration when thousands of people celebrate computer science education. The week focuses on the need to build strong computer science education programs in schools to ensure that the nation has the skilled workforce it will need to develop future solutions. CSEdWeek is held each year during the second week in December in honor of Grace Murray Hopper, an outstanding pioneer in computer science, who was born on December 9, 1906.

2012 NCWIT Aspirations in Computing Oregon Affiliate classroom

Getting involved is easy and fun! You can do something small in your home, coordinate with a youth organization or partner with a local business to create a community-wide event, among many other ideas. Are you wondering where to start and how to plan it? CSEdWeek has a toolkit to help you organize an event that fits your needs.

Other ways to stay connected:

Take the CSEdWeek pledge today! Register to support CSEdWeek or participate in an activity or host an event.

FB logo ‘Like’ CSEdWeek on Facebook

twitter logoFollow CSEdWeek on Twitter

youtube logo Post videos on YouTube

in logo Network with CSEdWeek on LinkedIn

Thursday, November 08, 2012

Should Computer Science Teachers Be Paid More Than Gym Teachers

I first ran into the question of paying faculty based on the subject they taught some years ago during an industry advisory meeting for a university computer science department. We were discussing the issue of recruiting and retaining computer science faculty when there were (and still are) many opportunities for them to make more money in industry. It was explained that they administration’s position was that faculty all had the same job – teaching – and that all people doing the same job at the same level should be paid the same. It was seen as an issue of fairness.

Well that is the sort of thinking that causes people in industry to use terms like “ivory tower.” And “great in theory but not in practice.” But there is clearly some validity in that way of thinking as a matter of principle if not practicality.

The basic argument in favor of paying some teachers more is that they could make more money outside of teaching than as teachers. There is clearly some validity to that. After teaching for a number of years I returned to industry and made a lot more money (while it lasted) in industry. Of course I lacked something in job security as well. There are trade offs either way. I would argue that there are some strong reasons other than money to teach. (Anyone want to hire me to teach? I miss it.)

That being said I think there are other ways we could help attract and retain computer science teachers besides salary. Yes, they may cost money but not as much money and they have added value in making people better teachers. A couple of recommendations.

Pay for more professional development – It is very frustrating for people in computer science not to be able to keep up with the latest developments. Send teachers to the annual CSTA Conference, or SIGCSE, or other regional professional development opportunities. Take a look at the CS4HS programs. Or the Grace Hopper Celebration of Women in Computing!  It will pay off in increased teacher satisfaction, increased knowledge and increased opportunities for collaboration between teachers.

Keep the computer labs up-to-date – I’ve seen schools where the top of the line state of the art computers go to administrators who use them only for email, Office apps, and playing background music while computer science labs get the hand me downs. That’s not right people! You want to prepare students well and support teachers with the latest hardware and software. It doesn’t cost what it used to BTW. Take advantage of programs like Microsoft’s DreamSpark for example!

Treat Your CS Educators as professionals – For Pete sake if your computer science teachers don’t have administrative privileges on their own systems fire you tech support people! Harsh? Perhaps. But either your CS teacher comes in knowing enough to be trusted with privileges or your tech support department has an obligation to teach them what they need to know. Nothing kills motivation like being treated like a child who can’t be trusted with grown up responsibilities. Can you imagine your gym teacher being told “you can use the gym as long as you stay away from the basketball hoops because you can’t be trusted with them.” Or your English teacher being told they can use the library as long as they don’t touch the books?

Understand that tech support and teaching are different jobs – In a lot of schools, especially small ones, some teacher is the tech support person as well. Sometimes they are technically half time one and half time the other. This seldom works well. Generally it means that teaching suffers while they spend much more than 50% of their time doing tech support. Teachers in other field tend to think nothing of interrupting a computer teacher to ask them to fix their computer “right now” so they can teach what they want. Inexcusable! But it happens all the time. If you need to do something like this make sure the guidelines are firm that teaching time is sacrosanct. And think about paying them more than 100% because they will be working more than 100%.

Fix Your Guidance Department – Bring up guidance in any group of computer science teachers and you are bound to hear some horror stories. Two things are typical. One is good students being chased away from computer science. Either it is “take 3 or more years of a language or you will never get into a good college” or its '”don’t take computer science as there are no jobs there.”  Neither claim is true but both are repeated time and again. At the same time guidance often seems to use computer science as a dumping ground for students who don’t fit anywhere else in the schedule. There is little worse than a student who doesn’t want to be in a course that guidance has already explained “doesn’t count” for much. Guidance departments should be looking for good students who could benefit from a solid computer science course.

As I see it, the issue is one of respect and support. At one school I taught at we talked about people being “known, valued and treasured.” Understand, value and treasure your computer science teachers. Support them with more than just a pay check and the attraction and retention problem will largely take care of itself.

Related:

  1. When gym teachers make more than math teachers
  2. Stop Picking on Gym Teachers!

Wednesday, November 07, 2012

Vampire Numbers and other Interesting Things

In a Facebook post recently, Gerald Thurman, a computing/math instructor at Scottsdale Community College located in Scottsdale, Arizona introduced me to Vampire Numbers. I’d never heard of them before and if you haven’t either there is a YouTube video you can watch that is a nice introduction.
It’s a tricky problem and Gerald’s students didn’t quite get it finished before the lab period ended. The problem apparently was false positives and a few more minutes would have given them time to finish. That’s the problem with hard deadlines of course.
There are probably a lot of ways to generate an answer to this sort of problem. Brute force is obvious. I’m sure that a real mathematician (I don’t even play one in school) could come up with a good efficient formula as well. Right?
A simpler but similar problem is Alexander’s Numbers. Alexander’s Numbers are numbers whose value is the same as the total of their digits cubed. For example, 13 + 53 + 33 equals 1 + 125 + 27 which equals 153. This is easier because you don’t have to try so many possibilities. I’ve used this with high school students with some success.
Mathematical puzzles like this don’t appeal to everyone of course but even some students who are not “in to” math find the puzzle nature of the exercise to be interesting.
Related post: Finish the Features or Hit the Date

Tuesday, November 06, 2012

On Industry Certifications For Students

This post all started as a comment on a guest post by Barbara Ericson on Mark Guzdial’s blog - The Need for an Industry-based Java Exam. In that post Barbara makes a case for an industry generated/supported Java exam that would provide a certification for high school CS students. Read the whole post for why this has become an issue if Georgia. I can see it becoming an issue in other states over time.
I’ve always had this mixed feeling about industry certifications for high school students. For any students really. I tend to like the idea of an industry certification confirming real world hands on experience over “book learning.” Not that I have any problem with book learning and in fact I hold it is high regard. This may just be a quirk in my thinking as I think of practical experience being the way to take theory into practice. I like to think of industry certifications as a step beyond academic results.
I realize though that this is probably a minority opinion. Schools at all levels want to see a way to certify that their students are in fact really ready for industry jobs. An industry certification is one way that can happen. So these exams continue to grow in popularity. For the most part I see them used in career/technical high schools (of which I am a HUGE fan) and in community colleges that run programs to help students get better jobs and make careers rather than prepare them for graduate school. Industry certifications do serve a real and valuable role for these schools.
Why do companies develop certification programs? That is a question educators should understand before they jump too deeply into them. Most industry certifications are based around company specific technologies not broader concepts. The goal of most company developed exams is to push encourage test takers to learn those technologies. Industry certifications are as much a marketing tool as anything else. That is the incentive companies have to develop them.
The Microsoft Technology Associate (MTA) exams are the ones I am most familiar with and they are tightly connected to specific Microsoft technologies and tools. Is that bad? Not really but one needs to know that going into them. They are good exams and there are some good curricular materials to go with them. But they are not general purpose “yes you know this programming language” types of exams.
What schools need (or perhaps should want) is a concepts based exam that, even if language focused avoids, specific technologies ancillary to the language that teachers are not prepared to teach. What is the company self-interest in creating such an exam? Arguably Oracle might want a Java exam like that. Microsoft might like a C# or Visual Basic exam like that. But creating and managing such exams can cost a lot of money and the payback is not obvious.
I love the idea of the industry groups (IEEE Computer society and/or ACM) developing an exam or even a set of exams. They have the people who could do it but the question is do they have the other resources (spelled money) to do so? What is there incentive to do so? It’s pretty easy to say “well there is the APCS exam so what more is needed?” That is the easy way out. The CollegeBoard is a non=profit and is in the business of exams. Their goal is to prepare (or certify as prepared) students for university not for industry. Their goals are not the same as an industry standard certification exam would be.
It’s a tricky problem and I don’t see specific companies or the Collegeboard jumping in to fix it. Perhaps the Computing in the Core team with funding and support from it’s sponsors, which include IEEE-CS and ACM as well as Microsoft and Google among others) is the body to work on this? I would think that they could find the people (a mix of educators and industry professionals perhaps) to create such an exam or set of exams. Expensive? Likely. Worth it? What do you think?

Monday, November 05, 2012

Windows 8 Apps for Social Good Contest

I don’t work for Microsoft anymore so I don’t get paid to promote things like this. On the other hand I like the idea of a) applications for social good and b) using contests as a tool for motivating students to create real projects. So when I say this on Facebook I decided to share it more widely.

windows 8 apps for good

Do you have an idea to help people better track their energy usage? Do you want to help students learn math or science? Have an idea about how to track online donations? Show us how Windows 8 apps can help the world and you can win up to US$15,000. To celebrate the launch of Windows 8 and Windows Phone 8, we've announced a new contest to encourage developers to create apps that positively impact the world around them. The contest begins November 5th, 2012 and all entries are due by Feb. 28, 2013. You can find out more here: http://bit.ly/PybNCC

Interesting Links 5 November 2012

Super Storm Sandy (for various reasons I believe it was not technically a hurricane when it reached me) came and went last week. I was lucky and we only lost power for a total of two hours. Days later many are still without power and New York City was hit amazingly hard. Where ever you are I hope you are safe and that the weather was not too hard on you. My first link is actually related to the storm.

Laura Blankenship wrote the post I was thinking about writing after the storm. How computing helps during a crisis.

Laura also wrote Projects for girls about how she creates and manages programming projects at the all-girls school where she teachers. Good stuff!

Teaching Programming To A Highly Motivated Beginner is an interesting post at the blog@CACM under Communications of the ACM

Where's the Plan? is a thought provoking post by Doug Peterson (@DougPete) about an experiment run by the One Laptop Per Child program. I think Doug and I will both have more to say about this one soon.

The new Liberal Arts must include computing according to this article at Inside Higher Ed. I agree!

Nice video from NCIS star Pauley Perrett on why we need more women in STEM fields.

Rebooting Recruiting to Get More Women in Computer Science: mark Guzdial highlights some points from Rebooting Recruiting to Get More Women in Computer Science – Diversity in Academe – The Chronicle of Higher Education.

A sorority for Silicon Valley's 'frat row' about a new women-only club to support women in Silicon Valley via @sfgate What do you think? A good idea or not? I like it myself.

Friday, November 02, 2012

Computer Science Education Blog Roll

I thought I had moved a copy of this to my current blogging location but it appears not. Just an attempt to help others find great computer science education blogs. These are not really in any particular order.  If there are more blogs I should be listing (and following myself) please let me know in the comments and I will edit them in.

  • Mike Zamansky Mike runs the computer science program at Stuyvesant High School in New York City. He’s a very creative person. he’s also built and maintained a community of students who stay connected after graduation.
  • Garth's CS Teacher Blog  Garth Flint is a teacher at a private Catholic school in western Montana. Garth always gives me things to think about.
  • Mark Guzdial – University of Michigan Computing Education Blog  Mark is probably doing more research in how to teach computer science right than anyone else I know. His posts include information about the CS Principles course, he is on the advisory board, which will probably be a new APCS course. He talks about the work they are doing at Georgia Tech both in terms of teaching new and different courses there as well as the Georgia Computes! program that is helping to develop more CS education at the HS level in Georgia. I wish I wrote half as well as Mark. Whether if be his commentary on the various articles he finds or information about his own work or discussion of  things his graduate students are doing what you will find here are well thought out, well written and informative posts. His are the first posts I read most days. 
  • Michele Lombardi started a blog at https://www.pedacodegy.com/  I've already gotten some great ideas and hope to learn more from her.
  • Doug Bergman is the award winning head of Computer Science at Porter-Gaud School in Charleston, SC 
  • Doug Off The Record Doug Peterson’s blog is a lot more than just computer science education but I do get some great CS links from him. It’s a great blog for anyone interesting in teaching with technology as well as teaching about technology. It’s one of my top reads every day. BTW follow him on Twitter @DougPete
  • CSTA Blog The CSTA blog is updated by various members of the CSTA board. I find it essential for keeping up with news from CSTA.  I highly recommend CSTA membership for anyone who teaches computer science in pre-collegiate education.
  • Brandi Finchum has started a blog called Binary Addition She has some resources to share (some though Teachers Pay Teacher) but I haven't looked at them myself yet.
  • Adam Michlin has his Cutting Edge Old School Computer science blog we don't always agree but he always makes me think. It's a good blog to follow.
  • MaryClair Wright has a new blog called Computational Thinking in Classroom 112 
  • This is what a computer scientist looks like is a blog by Dr. Amy Csizmar Dalal Professor of Computer Science and STEM Director .
  • William Lou @MrLauLearning on Twitter is blogging at Look Who's Learning Too Don't miss his Little Book of Algorithms.
  • Barbara Ericson has started blogging at  Computing for Everyone Barb is an assistant professor in the School of Information at the University of Michigan.   She has been working in computing education research since 2004. She was at Georgia Tech as a research scientist from 2006 to 2018. Her reports on participation in APCS are legendary. 
  • Bob Irving - Bob is a middle school teacher at Porter-Gaud School in South Carolina. 
  • Øyvind Jakobsson posts as Lektor Øyvind and teaches computer science in Norway. His blog is in English though.   
  • Set Another Goal By Clark Scholten Computer Science Teacher at Pinnacle High School
  • Steven Isaacs - Games and Learning blog - Steven teaches Video Game Design and Development at William Annin Middle School in Basking Ridge, NJ
  • Primary Computing by @hengehall  Ben Hall is a Computing teacher and coordinator. and a CAS Master Teacher in the UK.
  • Jeff Yearout - Noobie's Adventures In K-12 Computer Science Teaching - Jeff is really just starting out as I update this list but I hope he keeps it going. 
  • CS0 is a blog by Brett Becker, lecturer in Computer Science at University College Dublin and Computing Education researcher.
  • abstractingCS by Jill Westerlund
  • Daniel Moix  21st Century Educator
  • Laura Blankenship  writes mostly about teaching CS at an all girls' school.  And the occasional post about her kids.
  • .@MrAColley a Lead Practitioner of Computing, ICT and T&L in the UK. I've shared some of his BBC Micro:Bit resources.
  • HS Comp Sci Thoughts - Dan Schellenberg teaches high school Computer Science and Mathematics in Saskatoon, SK, Canada.
  • William Lou – Look Who’s Learning Too Teacher of Computing. Believes in preparing students for life in the uncertain and exciting future.
  • Dawn DuPriestcoding in math class -  Middle School Computer Science and Electronics teacher, Feminist, and Maker
  • Harvey S. Taylor’s blog – Harvey is passionate about education and teaching Business, Humanities and Computing.
  • Dan Anderson - A Recursive Process Math teacher seeking patterns.
  • Evan Weinberg - Currently teaching Math 10, IB math(s) & physics, and web programming at an int'l school in China.
  • Marty Stepp Lecturer, Computer Science Department, Stanford University
  • Mathy McMatherson Bloggy McBloggerson – Mostly math – aka Daniel Schneider 
  • mathematicsandcoding Mathematics, mathematics education and computer programming. - Dr Bennison Secondary mathematics teacher. Maths PhD. Computer coder.
  • Leigh Ann Sudol-DeLyser In need of a Base Case Leigh Ann Sudol works for the NYC Foundation for CS Education as a Program Manager and was a high school computer science teacher in New York state for a number of years. Leigh Ann is the person who trained me to grade the AP CS exam the year I was a reader. 
  • Communications of the ACM: blog@CACM The CACM blog has posts from some of the top people in computer science. Some of the posts are very technical but many are potentially interesting for students, teachers and CS hobbyists alike. 
  • Stacey Armstrong is a computer science teacher at Cypress Woods High School in Houston, TX. An accomplished APCS teacher and certified APCS consultant for the College Board. He writes about general CS concepts and issues.
  • Christian Thompson's blog Christian Thompson (no relation) is the Education Technology Integrator at  Sacred Heart Tokyo, Japan. I was attracted to his blog by a series on creating a text adventure game in Python. See Interactive Fiction in Python Introduction for more on that.
  • Ray Chambers is an ICT teacher Lodge Park Technology Collect in Corby Northamptonshire, England. Ray is huge in developing applications that use Kinect in education. I find his projects both inspiring and potentially quite useful.
  • Johnny Kissko KinectEDucation Blog “KinectEDucation is an educator-driven community resource for developers, teachers, students, enthusiasts, and any other education stakeholder to promote the use of Kinect applications in classrooms.”
  • Eugene Wallingford, University of Northern Iowa, IW, US Knowing and Doing Eugene writes a lot about the things he does in class and I find this very informative. Teaching and Learning is the top item in his blog categories list. Computing and Software Development as close behind. This is another blog I like for its well thought out and well written posts. And like a lot of Mark Guzdial’s posts, the posts here often make me think. And I am always learning from this blog as well. From insights into pedagogy to societal issues in computing I find a lot of value in this blog.
  • Rob Miles – Hull University, UK Rob Miles' Journal The first thing you have to know about Rob is that he has a great sense of humor. The second thing is that he knows what he is talking about with regards to game development and programming for mobile devices. Rob has written a lot of good curriculum resources and is one heck of a speaker. On his blog he shares a lot of his resources as well as a lot about his life. This is not all tech all the time by any means. So if you take things too seriously read about the other blogs here. But for me I enjoy his travel talk and outstanding photography as well as the insights into teaching and software development. Rob is one of the first bloggers I ever started reading and I enjoy his work a great deal.
  • Planet CAS an aggregation of "Blogs about Computing at School in the UK." Some very good writers contribute there. I just recently discovered this system and I should have had it in here before I was reminded in the comments.
  •  What You Teach By Tracy Rudzitis who teaches computer classes to 6th and 7th graders.
  • Teaching Computer Science by Crystal Furman, Computer Science Teacher, Brookwood High School, Gwinnett County Public Schools.
  • Computing Education a research blog about computer science education by Cait Sydney Pickens, a graduate student at Michigan State University and a Noogler. A Noogler is a new employee at Google by  the way. She is doing some cs education research.
  • - Cody's CS Education Blog
  • Coding to Learn  Marc Scott is a computer science teacher in the UK. Also on twitter at ">@Coding2Learn

  • John OlsonComputer Science and Applications Teacher
  • International School of Aberdeen
  • Jim Huggins Kettering University 
  • Existential Type Robert Harper, Carnegie Mellon University – Very technical and I don’t always follow everything.
  • Thursday, November 01, 2012

    Intersection of Art and Tech

    Two of the things that have driven a lot of computing innovation are games and graphics. The two are closely related of course and who university programs have grown up around computer graphics for video games. It seems as though ever since computer output has been around people have been trying to create new sorts of images using the new technology. Its probably a natural thing for people to use their creative urges in tandem with tools and technology that interests them.

    A lot of the projects we use with beginners involve graphics of some sort. The “draw a house” project is a reasonable “hello world” program to introduce simple graphics but in general what is created would not be considered “art” by many people. There are also some simple graphics demos that start to be a bit more artsy. Below are a couple of Small Basic programs I have played with for demo purposes.

    image

    image

    This is about the level of Art students could create {mumble} years ago when I was a student and all we had were drum plotters and line printers. Back in the day we used to experiment with plotting different formulas to see what they’d look like. We hoped from something that was “pretty” that we could call art. It was fun and I think we learned some interesting math along the way. We also learned that you could do cool things with straight lines as well as curved ones.

    The university (Taylor University) encouraged us to experiment by both allowing us access to the computer and plotter as well as adding a “computer art” category to the annual student art competition. A bunch of us would never have tried to enter (or even create art) had it not been for this support for our experiments. They now have a Computer Science / New Media major that is “An interdisciplinary major offered by the Computer Science and Engineering, Communication, and Art departments.”

    Of course today the tools, both hardware and software, are a lot more powerful and sophisticated. Georgia Tech has a whole Media Computation program that they use to teach computer science in the context of manipulating media. A lot of people are using this with great success as students really relate to manipulating sounds and images.

    External Image

    Media Computation (nicknamed "MediaComp") is a contextualized approach to introducing computing using a ubiquitous theme of manipulating media. The critical characteristic of MediaComp is that students create expressive media by manipulating computational materials (like arrays and linked lists) at a lower-level of abstraction. Students manipulate images by changing pixels, create sounds by iterating over samples, render linked lists into music, and create artifacts like collages, music, and digital video special effects. In so doing, the students learn computation. Examples of CS1 activities and CS2 activities are available.

    We’ve always know that there is very real connection between math and music and math and art. To the extent that computing is math in action the same connections are there between art and music and computing. From computer generated music (Visual Basic Gangnam Style!), computer generated physical creations or sculptures (The Real Disruption of 3D Printing) or computer graphics let us not forget that Creativity In Computer Science includes art. And most of all, let’s give students the option to be creative!