Tuesday, March 31, 2015

Every Character Matters

My Explorations in Computer Science class is creating web pages this week. This is a fairly short unit and we don’t get very deep at all. Our hope is to give students an idea of what is behind the web pages students use every day and introduce the concept of a markup language. This is brand new to most students but they seem to be enjoying themselves. Except when something goes wrong. In HTML it doesn’t take much to make things go horribly wrong either. In fact every little character is a potential problem. image

One of my favorite questions in this unit is “How do you spell src?” Why? Because in the <img tag the qualifier src is how one specifies where the image file is located. It’s pretty easy to enter “scr” by mistake. And when you do it can be hard to spot it. This is especially the case because there is just too much that can be off by a character in the file specification that one tends to look there first. For example if “Unit 4” has a space between the “t” and the “4” and a student leaves it out the file will not be found. This is the sort of nit picking that students are not used to making. To them “Unit 4” and “Unit4” mean the same thing and they don’t automatically understand that the computer doesn’t see it that way.

All of this causes some level of frustration for students. I’m tempted to suggest this teaches “grit” which seems to be a common topic of discussion in some education circles these days. And maybe it does but I worry that it teaches frustration and that “computers are hard” which is the opposite of what I want. So I work hard at showing students how to avoid these problems and how to solve them once they are found. Making it clear that these are common errors and not to be embarrassed by them is also important. Overall though they do need to learn to be explicit and careful when writing any sort of code. The computer, I remind them, is pretty stupid and has trouble understanding things that people handle easily. Every character really does matter to the computer.

I think that learning this attention to detail is helpful to students in the long run. They’ll be dealing with computers their whole lives and it is good to set expectations early.

Monday, March 30, 2015

Interesting Links 30 March 2015

March is almost over and the snow in my backyard is measured in inches not feet. So spring appears to be coming albeit a bit late. The school year is progressing and a lot of my friends in the south spent last week on spring break. We’ll have a break the end of April up here in the northeastern US. I can wait.  But for now you are here for interesting links. We’ll start with a couple of posts by Dawn DuPriest.
Dawn has written up some of the things she has been doing with her students. These are great for people looking for lessons and materials (I am totally adapting her worksheet on Booleans to use with my students). These are excatly the sort of blog posts I wish more people would do. There is so much we can learn from each other.
Did you know that World Backup Day is March 31st. Take the pledge! http://worldbackupday.com/pledge If nothing else talk to your students about backup and backup your own files! Who knows what will happen April First! Small Basic 1.1 is here! You’ll have to be running a Windows OS more current than Windows XP to use it. The big advantage is that the API to Flickr works again. Apparently Flickr changed things and Small Basic had to adapt. Also they moved to a newer version of .NET which should allow more good stuff going forward. This week I learned about and added Tickle on Twitter at @tickleapp to my list of block programming languages   For use programming drones and @Sphero robots. Embedded image permalink Speaking of programming languages did you see the Kickstarter build a programming language for generating printable 3-D models: https://www.kickstarter.com/projects/1975355456/madeup-a-programming-language-for-3-d-models I also found out about BeetleBlocks by @ericrosenbizzle , a blocks based generative art environment for 3D printing. Maybe 3D printing is a coming thing? Top 10 Differences Between High School Sports and Robotics – I love this set of observations from a parent at a FIRST Robotics event. Why A New Jersey School District Decided Giving Laptops To Students Is A Terrible Idea – a very sad tale of lack of planning and professional development.

Friday, March 27, 2015

Morse Code Project

Project ideas come from all sorts of places. Textbooks, other teachers I work with, blogs, random conversations, conferences (do you know about Nifty Assignments from SIGCSE?) and more. Some of the best come from students. Not always intentionally though. The other day I caught a student playing around on a website while I was lecturing. Apparently I wasn’t doing enough to hold his interest. The website converted letters to Morse Code and back again. There are probably many of these sites on the Internet. My first reaction was that this makes a good programming project. (Does that make me weird?) So we started talking about it as a class.

Student’s first reaction was “that’s hard” and “I don’t know Morse Code.” But of course it’s not really that hard to implement if you know how to use arrays. The tedious part is building an array to use for conversion.

            Morse[0] = ".-";
Morse[1] = "-...";
Morse[2] = "-.-.";
Morse[3] = "-..";

I've decided to do that for my students. After all I want them to use the array not go crazy trying to build one.

Converting from ASCII letters to Morse Code using a string array like this is a simple and fast operation. Big O(1) for access. We’ve already done some work like this writing a program to count the number of times various letters occur in a string. Going the other way, from code to ASCII is a little harder.

In that case we have to do a search of some kind though the array. A simple sequential search is probably the easiest way to do things. I know there are other ways. We could create a hash which would probably be faster. Or a nice binary tree (see this method – Thanks to Rebecca Dovi for the link).

These methods would be more complicated though and this is a first programming class. So we’ll talk about other ways to do it and maybe in the AP Class they’ll implement something faster and/or more complicated.

We will have a good chance to talk about the various performance issues and the various ways that arrays can be searched. I’m looking forward to the discussion.


Wednesday, March 25, 2015

FizzBuzz Revisited

I first blogged about using FizzBuzz in the classroom four years ago when I didn’t have a classroom and students of my own to use it with. (FizzBuzz–A Programming Question) Well times have changed and today I did assign the project to a room full of students.

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”.

Most of my students finished it easily during the shortened period we had today. A few in a very short period of time which is great. I should say that these are not yet experienced programmers. We are not even half way though a one semester course. Though we have covered loops and decision structures. So they know the concepts but haven’t had a lot of practice by any means. So I’m pleased with the results. What pleases me the most is that the solutions are not identical.

There are at least three different ways students set up the if statements to determine what to show when.

  • Check for evenly divisible by both 3 and 5 first.
  • Check for evenly divisible by 15 first
  • Check for divisible by 3 but not 5 first and 5 but not 3 second.

They all work of course. The last one, while more complicated, demonstrates a good grasp of compound comparisons. That is sort of a plus.

In my project instructions I asked students to display the results in a listbox. We’re not doing command line programs and haven’t covered file usage yet. We have used listsboxes though. A number of students wrote code that always adds the number to the listbox but then removes it if it is not necessary. Again a bit more complicated and probably slower than other solutions but interesting since I did not teach them how to use the Remove method for listboxes. Clearly someone (or several people) is looking things up. That also makes me happy. I like students to go beyond what is covered in lectures. Plus this is an implementation that for some reason never occurred to me. Who know but that may turn out to be helpful to me some day. I learned something knew and I love learning new things from my students.

Tomorrow we’ll talk about the various solutions and I will have the students explain why they choose the methods they did. Hopefully we can have some discussion about the performance aspects as well. Should be fun.

EDIT: I went looking for an image to post with this article and found one that suggested a visualization of FizzBuzz. I may assign this one next time.


Divisible by 3 is blue, divisible by 5 is red, and divisible by both 3 and 5 is green.

Tuesday, March 24, 2015

Madeup: a Programming Language for Making Things Up

One of the things I have been wondering about is how to make a real connection between 3D printing and learning computer science. Sure most 3D printers are attached to computers and CAD software is used to create models for printing. That is not quite computer science to me. And it sure isn’t programming. Recently I learned about a project to create a language to program 3D models for printing. It looks interesting even though it is still under development.

Chris Johnson at the University of Wisconsin, Eau Claire is working on it and it is called Madeup. Madeup is a Logo-like language that can be used to “walk paths through 3D space, and then generate models based on those paths. Previews of the models are rendered on every keystroke in a WebGL canvas.”

Chris has a KickStarter (https://www.kickstarter.com/projects/1975355456/madeup-a-programming-language-for-3-d-models) to raise some funds to allow him more time to finish the project up so that it can be used in classrooms. I’ve contributed a small amount so that I can get an early copy for my own use.

I think the 3D renderings alone will make things more interesting than 2D graphics but being able to create a physical representation is really exciting to me. Take a look at the video on the KickStarter and let me know what you think. Does this look useful to you?

Monday, March 23, 2015

Interesting Links 23 March 2015

Some great links this week. Images to use in class, a video for a TV show (yes about girls computing), and lots more. One of my best collections in recent weeks if I do say so myself.
Program Computers, Not Kids is a great post by Vicki Davis aka @coolcatteacher Key line?
If you see technology controlling students, then you’ve got a classroom using 21st century technology for 20th century teaching. If you see students creating and programming the technology, then you’ve got a more modern classroom approach.
XNA is no more but as the phoenix rises from the ashes MonoGame, may be the replacement. the next generation . Check it out for multi-platform game creation. And a way to continue to use any XNA curriculum you may have.
iD Tech and http://Code.org are giving 100 Girls Scholarships to Attend Summer STEM Program See the web site for more information http://www.iDTech.com/girls
Zoomable map of undersea cables connecting the world of the Internet. Great as a topic of discussion. Ask students why Bermuda has so many connections. I suspect it is because of money. Bermuda is a world-wide center of international reinsurance.
Late last week I posted a large collection of questions to use while interviewing candidates for Computer Science teaching jobs.
Are you using Scratch? You may find these printable graphics of Scratch commands useful.
Embedded image permalink
The TV show Road Trip Nation is looking for a couple of people between 18 and 30.
Roadtrip Nation and Microsoft are teaming up to send 3 young people with backgrounds that are underrepresented in the technology industry and who are interested in computer science on a cross-country adventure to discover the exciting--and growing --possibilities in the industry. Selected individuals will travel in Roadtrip Nation’s Green RV, and will interview professionals all over the country who have turned their passion for computer science into fulfilling careers. The experience will be filmed and will appear on Roadtrip Nation's long-running documentary series, which follows young people all over the world as they seek to figure out their futures. More information at Roadtrip Nation: Code Trip Application 
Early wearable computer: Qing Dynasty abacus ring. You know it’s cool!
Embedded image permalink

Friday, March 20, 2015

Interview Questions for Computer Science Teachers

As I looked into why several posts from a while back were getting so many page views lately I realized that search values similar to “interview questions for computer science teachers” were probably responsible. The two pages in question are two where I interviewed CS educators about themselves and their work. That is probably not what most of these searchers were looking for though. Since it has been a while since I interviewed for a computer science teacher position (as either hiring manager or job hunter) I went to social media looking for examples of good questions for job interviews.

People were very helpful. I quickly received dozens of questions. I’ve got the whole list below but I wanted to focus a bit on a few I felt were key. Oh and if you feel a question is missing or have thoughts on any in the list I would to read about it in the comments.

A couple relate to teaching in general.

  • Do you like kids? You’d better if you want to do a good job teaching. Kids know if you don’t like them and they will not respect you if you don’t like them.
  • Are you ready / willing to share your "war stories" with the class, to help humanize the subject?  This is important to me. I think teachers should make teaching personal and that means sharing your own history.
  • What strategies would you use to help struggling students? Everyone learns differently and the great teachers are not the ones who help the students who get it easily but the ones who help the struggling students.
  • I walk into your class..describe to me what's going on and why. Are they going to fit in with your school? Are they ok with a noisy class? That’s my favorite. Or do they favor the sit and get method of teaching?
  • What approaches will you bring to the classroom to make this subject matter worth learning?   Relevance may be an overused work in some circles but it is still important.

Some are more Computer Science related. Well at least somewhat.

  • What strategies would you use to attract and retain women and minorities in your program? If they don’t know this is an issue and haven’t thought about strategies for it they may not be ready.
  • Why are you passionate about CS? I think passion is huge. And it can’t easily be faked.
  • Why teaching instead of industry? Do I need to say more?
  • Explain the role of ethics within your CS program. With the massive changes that computing is making on society today having ethics being someone a teacher thinks about and addresses is important to me.

Here is the full (mostly unedited) list I received from a number of helpful teachers. It’s in no particular order.

  • What strategies would you use to attract and retain women and minorities in your program?
  • Experience in CS
  • what projects you have done in college
  • why are you passionate about CS
  • Teaching and tutoring experience at which levels.
  • What's your vision for the CS program here, what part do you want to play
  • what resources do you need,
  • which classes should we teach.
  • Why teaching instead of industry?
  • How would you explain what a ZIP file is?
  • What are the common misconceptions about nested for loops?
  • What have you learned from a student?
  • Pick a language and tell me why it's the best language for our students. Now tell me the challenges of using that specific language with these students, and how you would overcome them.
  • Students at this school need some help with <concept/skill>. Tell me how you would use your CS class to help them.
  • I walk into your class..describe to me what's going on and why.
  • How have/would you balance individual, pair and group assignments?, How does this impact assessment of your students' progress?
  • Explain the role of ethics within your CS program.
  • What strategies would you use to help struggling students?
  • How would you keep the students off Facebook and games during class?
  • One area is attitude and skills
  • Do they like kids?
  • How would you connect your curriculum to real world problems and core curriculum ?
  • In what ways can your program increase students overall problem solving and critical thinking skills?
  • Can they relate to age group of the students
  • Can they communicate?
  • Do they like to learn? Are they excited about learning? Are they still actively learning?
  • Are they disciplined? With themselves and in the classroom. Can they mange their time?
  • Not only can they teach but do they like to teach?
  • Do they have high expectations?
  • Do they know the tools (Windows, MacOS , IOS, Android)
  • Can they program?
  • Do they know the software?
  • Can they handle large classes
  • Is there 1-on-1 coaching
  • Can they make a lecture interesting?
  • Are they flexible in classroom environment
  • Are there self-paced classes and can they work with that?
  • What approaches will you bring to the classroom to make this subject matter worth learning?
  • Why is Grace Hopper worth knowing about?
  • What do you do when you've got a kid who, despite repeated attempts, just doesn't get it?
  • What was your favorite part in the movie "The Imitation Game"?
  • Are you ready / willing to share your "war stories" with the class, to help humanize the subject?
  • In your opinion, how does CS apply to everyone's every day lives?
  • What does "rigorous computer science curriculum" mean to you?
  • How would you implement a rigorous computer science curriculum while ensuring that students who have no prior computing experience can have a class that is both rigorous and accessible?
  • What are the most important topics to teach the beginning computer science student and why?

Wednesday, March 18, 2015

Do You Want To Write Some Code?

OK I feel better. I was overcome with an urge to write some code. Now I have a program I should write. I want to combine my seating chart program (with pictures) with the program I use to randomly pick on students. I mean randomly pick who to call on. Whoops. But I don't have the time to work on that right now.

So I wanted a "toy program." I remembered that I had been playing with a simple Caesar cipher program  (who else remembers ROT-13?) What I have long been meaning to do was to write a program that took a string and rotated it though all 25 possible rotations (26 puts it back the way it was) and build a list so that if you suspected a Caesar substitution you could test it to see how it was rotated. Fine.

So I took the code for rotating in the encoding program and made it a simple little string function. Added a loop to pass a string to the function with different values to rotate and put the result in a listbox. By reusing code I was done in about 10 minutes. And I have a toy program I will probably use once every couple of years and could probably find a web app that does the same thing in about the same time it took to write the code. But oh so much more satisfying. image

Who knows - I might assign it as a programming assignment someday as well. BTW Mike Zamansky has a closely related (and probably more useful post) on his blog  Rot13 - Gateway Drugs Techniques

Tuesday, March 17, 2015

2015 CSTA Administrator Impact Award Nominations Open


Dear CSTA Community, 

Nominations are currently open for the 2015 CSTA Administrator Impact Award! This prestigious award is given by CSTA to recognize an administrator who has made an outstanding contribution to K-12 computer science education. 

The winner will be presented with the Administrator Impact Award during the CSTA 2015 Annual Conference, July 12-14 in Grapevine, Texas. The winner and the nominating teacher will receive registration, travel, and accommodations for the CSTA 2015 conference. The award winner will also be featured in an article in the CSTA Voice and recognized on the CSTA website and Advocate blog.

Award applications open today, Monday, March 16 and will close on Sunday, April 5 at 11:59 pm Pacific Time.

Teachers are asked to nominate an administrator they believe has demonstrated significant impact on computer science education in their school, district, or state. The award winner's work must be shown to have broad impact and influence, and to demonstrate leadership in a variety of ways, including innovative approaches, mentoring of teachers, and visionary thinking.

Submit your nomination now!

For questions regarding the Administrator Impact Award, please contact customerservice@csta-hq.org.

Monday, March 16, 2015

Interesting Links 16 March 2015

Last week I was not at SXSWedu. There were not as many tweets about it in my stream as there were from SIGCSE. I still want to go some day though. With progress reports due last week I had more than enough to keep me busy though. I’m sure the same it true for most people. Just a few links this week and two of them to my own posts. I tend not to post on the weekend or late on Friday because those posts tend not to get read. But I was out of control.

The first was about the new (not yet real) BBC Micro Bot. I just had to write about what I was thinking so I did at Is the BBC’s ‘Micro Bot’ the Silver Bullet. The second was about a fundraising teaching CS opportunity for US public schools at Choose to Code With TouchDevelop.

Garth Flint wrote about The value of guest speakers in CS. He’s been having a couple of them come in and talk to his students. Seems like it is working well.

I had no idea there were languages for programming music until I saw this  List of Programming Languages For Music: Did you know about these?

How long do you spend teaching variables? I just spent three weeks. This is an interesting post from Dawn DuPriest @DuPriestMath who is self described as a “Middle School computer science / math teacher and proud geek.”

Will an 'Hour of Code' Change Schools?  is a good commentary but Audrey Watters. @Audreywatters

Embedded image permalink

Saturday, March 14, 2015

Choose to Code With TouchDevelop

Looks like a good chance to earn some money for school projects and introduce students to programming. Open to US public schools only unfortunately.  More information from the Choose to Code website.

Teach your students to code in just one hour. Earn $500 in classroom funding from DonorsChoose.org! The first 200 teachers to complete Choose to Code will receive $500 in classroom funding from Donorschoose.org.

Here's how the program works:

Sign up for Choose to Code.
Create your Choose to Code class and add your students.


Work with your students to complete the eight Microsoft TouchDevelop coding courses.It only takes an hour to complete all eight courses at one time or you can do each course separately, it’s up to you.


Submit proof of the completed courses & your signed Microsoft Gifting Letter* and receive a $500 gift code to use at DonorsChoose.org.

Friday, March 13, 2015

Is the BBC’s ‘Micro Bot’ the Silver Bullet

It’s been all over social media and online news the last couple of days image- BBC to give out one million 'Micro Bit' computers to get kids coding. I’m a little skeptical. I’ve heard things like this before. (and blogged about it - most recently at Still More Hardware for Learning Software–But Why?) This one seems a little different. For one thing there are a lot of different partners involved.  This article at the BBC web site (BBC launches flagship Make it Digital initiative) goes into some more detail and explains some of the other things going on. It is more than just a “give every 11 year old in the UK a piece of hardware.”

From a couple of personal sources I have learned that TouchDevelop, one of my favorite tools, is going to be an important part of the software for this initiative. I knew that there were already ties to Arduino in TouchDevelop (TouchDevelop Generates Arduino Code) so this does seem like a natural next step for them. And my female students seem to like TouchDevelop. I’m told that using the new ‘Micro Bot’ to make wearable technology will be easy and will interest girls. That would be nice if it works out that way. The device and related software are still being developed though so we’re going a lot on hope and theory.

On one hand I want to be optimistic about this. When I first saw this I asked on Facebook how many of these devices would get used and how many would collect dust. Reactions from friends ranged from “1 in 10 but that may be optimistic” to “does it matter as long as some get used?”  I think it does matter. Big highly publicized failures make it harder to get the next innovation into schools. So I’d like something like this to have some success.

There is some teacher training attached though I’m not clear on what is for teachers and one is part of the larger program and may not be part of the schools. Teachers are going to need some training in this stuff. And not just how to use it in the abstract but how to use it in the context of their schools. Cross curricula efforts would be ideal.

But there are other concerns. They are saying there will be a million of the devices and no more after that. My first question is why? But more concerning is that of ongoing support. And what about the next year’s Year Seven students? There is also the issue of what do these students do next? What will there be for them in Year Eight? I know that the UK is working hard of getting more CS in the curriculum but is that in place? Is there a natural flow from year to year? Or do they expect that after one miracle year thousands if not hundreds of thousands of kids will become computer science autodidacts? That seems unlikely. It also seems unlikely that these devices will keep kids going for years until they get to the next real CS course.

So while I see things to love about this, in fact I’d like one myself to work with, there is a lot to be concerned about. We’ll have to see what happens I guess. What do you think?

Thursday, March 12, 2015

Simplify Simplify Simplify

One of the things beginners do when learning how to program is to make things more complicated then they need to be. It’s a natural thing because they often don’t know the shortcuts. They may not know enough library routines or even enough language features. So they build complicated ways around what they don’t know using what they do know. It’s that old story of when you only have a hammer all your problems look like nails.

Everyone once in a while my students are the ones with the shortcut and I’m the one who over complicates things. That happened to me with a recent project. I assigned my students the project I blogged about in Simulations Are More Fun recently. As is my practice I coded up a sample solution myself. I liked my solution. It was cool. My students took an easier path though.

I over thought the problem. The problem includes the detail “If the biggest number rolled is five or six, player 2 wins” so my first thought was to determine the biggest number and then check it’s value. I got even more clever by creating a function that took two numbers and returned the value of the larger. It worked wonderfully but it added additional complexity without adding real additional value. My students just checked the two values with an OR  expression. Sort of like this:

   1: if (die1 >= 5 || die2 >= 5)
   2:     player2++;
   3: else
   4:     player1++;

Nice and simple with no extra method call overhead.It’s actually sort of elegant.

My problem, if I can call it that, is that I tend to think of solutions that scale. I’ve spent a lot of time in my career dealing with big problems and big data. This colors how I look at some problems. This problem is simple with a very small data set and this simple if works great in this case. If I had to compare a value to the highest value in an array this simple solution could be limiting. It would get complicated very quickly. Having a method that found and returned the highest value in an array (something we talked about in class when introducing arrays) would make things easier. Or at least simpler in the if statement.

This is something I will talk about in the future as I try and continue to work scalable solutions and how to design for scalability. But we’ll also have to keep an eye out for simple solutions as well.

Wednesday, March 11, 2015

How to teach Computer Science to 5-14yr Olds – #CSK8 Twitter Chat

Embedded image permalink

Join CSTA K-8 task force for #CSK8 chat on Mar 11 8pm EST. Pedagogy- ‘How to teach’ Computer Science to 5-14yr olds. Not the What or Why. Discuss pair programming, blended learning, structured vs unstructured approaches, online curriculum, differentiation and more.

This is the latest in a series of twitter chats that take place every other Wednesday on Twitter. These usually have a lot of good conversation.

Tuesday, March 10, 2015

YouthSpark Challenge for Change

Microsoft runs all sorts of competitions. Recently I read about the YouthSpark Challenge for Change. Since it is no open to 13 to 17 year olds (aka high school students) I thought  I would post information about it here.


Calling all students and young adults! Are you active in your local community or concerned about national issues? Microsoft’s third annual YouthSpark Challenge for Change is inviting youth aged 13-25 around the world to share their ideas for sparking change in their communities, schools, college campuses, or the world. Microsoft YouthSpark is part of Microsoft’s commitment to create education, employment and entrepreneurship opportunities for young people around the world.

What could I win?

Microsoft is awarding exciting prizes to help you do more good. And, this year, the Challenge has been extended to 13 to 17 year olds! 15 finalists from each age group (13-17 and 18-25) will win a Surface Pro 3 with Office 365*.

5 grand prize winners from each age group will win:

An amazing leadership-development trip to Nicaragua to learn about creating change

$2,500 cash to help turn their ideas into a reality

A Windows Phone*

The opportunity to serve as a YouthSpark Advocate.

I found this thanks to a blog post by Aimee Sprung on the Microsoft New England blog - Calling young people with ideas for change — win support to make them a reality More information is available following the links. I have no connection to the competition.

Monday, March 09, 2015

Interesting Links 9 March 2015

Last week was SIGCSE in Kansas City. From all reports it was a great conference. I wasn’t there but I followed as close as I could via Twitter. The twitter stream was active with lots of links, pictures and interesting comments. I’ll get to read the papers at some point but I wish I had been there. In any case I did collect some good links from SIGCSE to share this week. And a few from other places. Hope you find some useful.

First a could of blog posts by Lisa Kaczmarczyk  (twitter @lisakaczmarczyk ) on her Interdisciplinary Computing Blog:

And then there are some summary blog posts at the Blog@CACM

Mark Weiss was one of the keynotes and I really wish I could have heard that one. One thing he proposes is that you can teach all these topics (image below) in Excel! For example did you know that VLOOKUP in Excel uses a binary search? I didn’t but I guess I should have.

Embedded image permalink

A new (to me anyway) thing I saw a lot of tweets about was Pencil Code (https://pencilcode.net/) which is a  tool for converting between blocks and text based code. I need to look into that one some more. I did add it to my Programming With Blocks post.

Recently I wrote a post for the CSTA blog about the CSTA Equity Committee which I currently chair. If you’ve wondered about CSTA Board committees this will be interesting. 

I updated my computer science education blog roll (http://blog.acthompson.net/2012/11/computer-science-education-blog-roll.html …) to include Leigh Ann Sudol-Delyser‘s new blog at http://csadvocate.org/blog/ I am so happy to see Leigh Ann blogging again. She recently completed her PhD from Carnegie Mellon which I hope gives her more time to blog again.

Found an interesting post at Willa's World: The Six Most Common Species Of Code

Mark Guzdial summarizes some of the AP CS 2014 Results as analyzed by Barbara Ericson: Big jumps in participation! Demographics still poor

Speaking of Excel I found this interesting post Excel Fun—Build 3D graphics from a spreadsheet on the Microsoft Office Blog.

Lastly don’t forget this summer’s Annual CSTA Conference.

Embedded image permalink

Friday, March 06, 2015

Still More Hardware for Learning Software–But Why?

I get email. And I get twitter followers. Often these new followers or email senders are promoting some new gadget for teaching. This week it was RobotIX and Hackball. Hackball is looking to get funded via Kickstarter so it’s not available yet and most of the information about it is at the Kickstarter link. The RobotIX web site talks about some robots that are “coming” but doesn’t include pictures or really any data about them. That obviously makes it hard to review them.

Why are there more and more of these sorts of things all the time? Well, I guess because they are cool and fun. Lots of people want to create the magic bullet to make teaching easier. There are already a lot of robots and what not out there (I list many at Robots For Teaching Programming) so it feels like people are “reinventing the wheel.” This is the case even though we don’t really know if any of this really works as advertised.

We seem to do a lot of things based on intuition or because we want it to work. Mark Guzdial wrote about this recently at Computing Education Must Go Beyond Intuition: The Need for Evidence-Based Practice on the Blog at CACM. That lack of evidence for most new things is what worries me. Yes I love to try new things and there are others out there like me who will. But in the end how do we know it is working? Not all teachers are trained researchers with well defined environments that allow for serious evidence gathering.

I suspect I am not alone in wishing that universities would step up and take on the task of researching what works and what doesn’t in computer science education. So far at most universities there is a lot of finger pointing and saying let the other guy do it. CS departments think Education departments should do it and Education departments think that CS departments should do it. Few schools are willing to fund real CS education research. And so we keep doing things by trial and error and hoping that the things we think are cool are also working.


Wednesday, March 04, 2015

Can I Give You A Hint?

Last month I attended a workshop on CodeHunt at Microsoft Research. A talk there by Daniel Perelman on Hint generation in Code Hunt (you can watch a video of his talk here) really sparked some thinking on my part about how I give hints to students. Since then I have seen some other research on automatic generation of hints including an interesting paper by some researchers at Stanford (PDF). Having automatic hint generation is an important problem for online education and MOOCs. It’s not an easy problem though. In fact at times I struggle with giving the right hints to students in live interactions.

Some times there is a fine line between pointing a student in the right direction and telling them how to solve the problem. Sometimes a simple “are you sure you want to do that inside the loop?” is enough. Other times a student needs someone to go over the statement of the problem and help them break it down into pieces. If a student is close to a solution then there may be little room of a hint. At that point it can become a judgment call between asking the student to keep working on their own and giving them the information that puts them over the top.

Different students need different hints. Or perhaps I should say that some students need more help than others. Working with students in person means that a teacher can figure out what concepts students are struggling with. A student that understands loops can be told “have you thought about a loop here? while a student who is struggling with how to set up a loop needs a refresher on the lecture they slept though didn’t quite understand the first time. That more involved help, which is more than just a hint, may be a harder problem for software tutorial systems to handle than simple hints.

I’m pretty excited about the possibilities for software giving students hints. I think that this may allow teachers to spend more (and higher quality) time with students who need more than a hint.

Tuesday, March 03, 2015

It’s the Software Stupid

Computers are magic. Well to a few people they are. To others they are annoying and useless pieces of hardware. At least until you add software. I was reading Audrey Watters’ post on “How Steve Jobs Brought the Apple II to the Classroom” recently. It is a prime example of someone finding the magic in the box and assuming that, if not everyone, a lot of others would also discover the magic. This idea never seems to go away and yet it seldom works out that way.laptops For everyone who teaches themselves there are a great many others who need a teacher.

For some people, I confess I am one of them, discovering that a computer can be programmed and used to do interesting things is enough to get one hooked. This doesn’t seem to be universally the case though. The great majority of people need more out of the software to find the computer useful let alone educational.

This is not limited to computers either. A few years ago it seemed like everyone was buying Flipcams. Workshops and presentations abounded at ed tech conferences on the amazing things that teachers were doing with them. The reality turned out to be boxes and boxes full of unused Flipcams in schools all over the place. It turns out that just giving people the cameras did not make magic happen.

Time after time some new technology is touted as being a sort of silver bullet. Apple computers, digital cameras, Flipcams, iPod and iPads, Chromebooks and tablets of all sorts. Without a doubt some teachers are able to do awesome things with these devices and their students. But they seem to be the exceptions. Some teachers are naturally creative and combine that with a fearlessness that let’s them try out of the box projects.  Other of us need a bit more direction. Some education and sharing of ideas of what works for others is needed to get things started. Teachers also need administrative support even if that support is in the form of benign neglect. :-)

Too often I get the question “we just bought [latest gee-whiz technology] can you tell me how to use it to teach [subject of the day.]” If you have hardware and need to ask about software you have, in my opinion, don’t things backwards. Find the software (be that computer software or curriculum materials) and then find the hardware to run it on.

We shouldn’t start with a solution and go looking for problems to solve with it.

Monday, March 02, 2015

Interesting Links 2 March 2015

Back in school today. It was nice to have a break but I am looking forward to time with my students today. I got no school work done at all during the week off. I’m going to be paying for that this week though. Well that is life. I did pick up a mini display port to VGA connector from my Surface Pro 3. Now using a second monitor. Productivity will improve. Yeah! And now a few interesting links that I managed to capture over the last week. Some fun ones I think.

Most vulnerable operating systems and applications in 2014 It will come as a surprise to some that Windows is NOT in the worst three. The worst two are from Apple. May spark some interesting conversations.

Level up your programming skills with this FREE introduction to #Python! Get started: http://spr.ly/60170xwS I may try this one out. I need to learn some Python.

Embedded image permalink

Great article about why having the right people develop key libraries for computing. Proving that Android’s, Java’s and Python’s sorting algorithm is broken (and showing how to fix it)

I found one link top interesting quotes about programming and remembered I had seen some other collections in the past. I thought I would list some of the best lists here.