BTW I like Rebecca Dovi's take on this issue. She doesn't like the title of this infographic for one thing. Read it at her blog - How *GIRLS* Hold Themselves Back from Pursuing Computer Science

This is Alfred Thompson's blog about computer science education and related topics.
Aspirations in Computing is a talent development initiative designed to increase female participation in technology careers by providing encouragement, visibility, community, leadership opportunities, scholarships, and internships to aspiring technically inclined young women. Since 2007, NCWIT has inducted more than 2,500 young women into the Aspirations in Computing community and is helping to usher these women into technology careers.Applications are open 9/15-10/31 at www.aspirationsaward.org. You can request a poster for your school or organization at: www.ncwit.org/aicposterrequest I’ve requested a poster for my computer lab. Hoping to get one of my students recognized for her interests in computing.
School started for me last week. I showed off some sample Kinect apps to most of my classes. For some it was to talk about human computer interaction. For others is was to give them some ideas for projects later in the semester. I also showed off my Binary clock. With mixed opinions I might add.
I tweeted the image on the right and one of my Twitter followers replied with a link to this article they wrote about Binary clocks. You can read it at Binary Clock Fun.
And now for the usual round up of interesting links.
FREE Posters for Educators
The NCWIT Award for Aspirations in Computing recognizes high school young women for their interest and aptitude in technology. Applications are open 9/15-10/31 at www.aspirationsaward.org. Aspirations in Computing currently offers over 300K in scholarships for young women in computing. Learn more at aspirations.org. Request a poster for your school or organization at: www.ncwit.org/aicposterrequest
Google has started an interesting program to send people into schools in South Carolina to run computer science programs after school. One of the program’s participants has written about the Google's New Computer Science Teaching Fellows Program in South Carolina on the CSTA blog. Cait Sydney Pickins who I interviewed earlier this month is part of this project.
A year ago I wrote about Ruth Hartsook’s CS Teaching Resources on this blog. Ruth recently let me know that her links had changed so I have updated the post with new links.
A new Blog@CACM post by Mark Guzdial: A stable future for computing ed requires schools of education. We can't do it from CS alone.
My series of interviews of computer science educators is up to 18 now with the addition of Tammy Andrew. Tammy teaches in a public high school during the regular school year but a private boarding school in the summer. Interesting read.
Don't Panic is my recent blog post on the CSTA blog. As a member of the board I’ll be posting there occasionally. Are you following the CSTA blog? Lots of good posts there.
Links to things I am working with on Kinect is a collection of links from my friend @SocalSam aka Sam Stokes. Looks useful to me.
Most of us involved in teaching computer science know that the issue of teacher certification is a bit of a mess. How much of a mess no one really knew. Until now. The Computer Science Teachers Association (CSTA) has released a detailed report on computer science teacher certification in the United States. It’s called Bugs in the System: Computer Science Teacher Certification in the U.S.
What does it say?
“[it] is a comprehensive study of all 50 states and the District of Columbia revealing that each state (and in some states each school district) has its own process, its own definition of Computer Science, and its own idea of where Computer Science fits in the academic program and who is qualified to teach it. “
It’s actually somewhat worse than that. In many states finding out what is required to be certified to teach computer science is very difficult to find out. New Hampshire, where I live, is a case in point. (From an article at Education Week (Computer Science Teacher Certification 'Deeply Flawed,' Report Says) on the report)
“the report points to the responses to its online survey in New Hampshire. Two computer science teachers and a state official provided contradictory answers to the following, basic questions: Is there a required middle school computing course? Does your state require a computing course for graduation? Does your state offer any additional or optional certificates, endorsements, or licenses related to computing? In each case, the study says, "one respondent answered 'yes,' one respondent answered 'no,' and one answered 'I don't know'." And again, when asked what specific teaching certificate is required for an educator to teach high school computing courses, the answers were all different.”
Other states have requirements that are more clear but hard to obtain or even completely unobtainable.
For example, in Florida becoming a certified Computer Science teacher requires taking a course called K-6 Computer Science Methods, however the course is not offered in any teacher preparation program in the state.
The report makes some recommendations including:
The full report is highly recommended for anyone concerned about the state of teacher certification for computer science education. You can download Bugs in the System from the CSTA web site.
One of the classes I am teaching this year is called Explorations in Computer Science. It’s a step away from the pure applications course (Microsoft Office) in the direction of real computer science. We’ll still cover some of the Office applications but mostly we’re looking at things like computational thinking, some web development and a good amount of programming. The idea is to wrap it all around computing concepts and “make it real.” As I was doing my planning I started to realize how much I use the tools I teach for my own purposes.
Take for example keep track of my schedule. My school has rotating periods. There are 8 class periods in the schedule but only six class periods each day. So on day one we have periods one though six. Day two sees periods two through seven and so on through the week. Frankly keeping it all in my head doesn’t work for me. So I turned to a spreadsheet to help me create a chart. This is what I wanted:
Now in all honesty I was driving myself up a tree – well getting myself confused – trying to do this by typing in all the classes in the right boxes. I realized that I was ignoring the capabilities of the tool. So I created a more simple chart that looked like this:
That was almost mindless in its simplicity. It just shows the period numbers of course but it is very easy to spot errors in it. Just what I needed. Next I created a CHOOSE function that looked like this:
=CHOOSE(B11,"Yearbook","ECS 2","","","","Hons Prog","","ECS 8")
and applied it to all the cells in a chart. Instantly everything was just where it was supposed to.
Now I show this not to show off (I mean really how simple is that?) but to give an example of something practical I plan to talk about with my students. A couple of things for me to talk about. Prime among them is the give an example of using a tool to solve a real problem in a way that takes something confusing and makes it simple. And of course demonstrate that I not only talk about the tools but use the tools.
I will also talk about reusability. For next semester I can make simple changes to one CHOOSE statement, copy it to all the cells in the chart and instantly have a new schedule. I want students to think about how to reuse wheels rather than reinvent them.
I plan to talk about problem solving as part of this discussion as well. How did I get from what I was trying to do to a solution that minimized my work and maximized the power of the tool? That is something I want them to think about. In short what tools are there that may or may not be obvious that they can use to solve problems? out of the box thinking? Hey, what box!
Tammy Andrew and I met a bunch of years ago when we both taught summer school at a famous New England boarding school. We were teaching C++ back then. While I’m a Windows person and she is a FOSS person in a big way we’ve managed to stay friends for years. I’m thrilled that she was willing to tell her story for this series.
During the traditional school year I teach at a public high school in New Hampshire. During the summers I split my time between a private high school in Massachusetts and a math and science summer program.
My journey started in fifth grade, but didn't gain purpose until I was in college. I was very good with technology, really enjoyed my experiences with computers (especially programming) while growing up, and soon became part of the student group who helped maintain the campus computer labs. At that time there was not a computing degree, or even classes, but while working towards my physics degree I spent much of my time building, maintaining, and working with the computing devices. Soon after leaving college I landed a position as a computer instructor for a training firm and frequently heard the question, "where were you when I was in high school?" This sparked my interest in teaching high school.
My research showed that, at that time, there were few schools who taught any type of computing and, at least in New Hampshire, no certification for teaching computing, so I went back to college so I could be certified to teach high school mathematics. The first day of student teaching my mentor mentioned the school lost their math/programming teacher and asked, with my computing and programming background, if I would be interested in the position. I said I'd consider it, and a few days later was interviewing with the superintendent. Two weeks later I was hired full time, had two mentors (my original in math and one for programming) to satisfy the college, and was thrilled to be teaching something I've loved since childhood.
The public high school where I teach is an Applied Technology Center in New Hampshire. We have many computing classes outside of computer science, but I am the only full time computer science teacher. The curriculum is always being evaluated for improvement, but these are the courses as they will be this upcoming school year:
Computer Studies - Freshman/Sophomore course taught with the first four units of the Exploring Computer Science curriculum. Focus is to introduce students to the diversity within computing and what other courses at the technology center might help them discover their computing passions and strengths.
Programming Fundamentals - First programming course; taught in Java using Karel the Robot. Focus is on programming methodology and mathematical computer science topics.
Java Programming - Second programming course. Taught with Java, this is considered a pre-AP course. Course also can be taken for dual credit with a local college.
Data Structures - Approved AP course with the College Board. Focus is on preparation for the AP exam and, after the exam, expanding knowledge and understanding of data structures not included on the exam.
Web Design - A dual college credit course, Web Design explores the creation of web sites with emphasis on career exploration, understanding user needs/wants, and CSS design skills.
We also offer two courses through another technology center. I do not currently teach these, but we send students to the other center for Networking (Cisco certified course) and computer hardware and operating systems.
At the private school I teach programming only, though there are also courses in robotics, animation, graphic arts, and web design. The two classes I teach are both introductory level but taught in different ways: one is a traditional programming class in Java similar to the Java Programming class I teach at the public school, the other is taught using graphical educational software.
The math and science summer program is adding computer science to its curriculum. This past summer I co-taught a web design component that emphasized CSS. Next summer we will add programming, but have not decided if this will be purely programming or in conjunction with engineering or robotics.
I believe that computing is an integral part of our society and that Computer Science is a valuable subject for all students. Not just programming, but also problem solving, understanding the capabilities and limitations of technology, and how to create using technology.
I try to keep lessons multi-modal, so I do occasionally lecture, but I also have things for students to see. I provide opportunities for note-taking, but also to listen. And, most importantly, opportunities for hands-on learning both through prepared "follow the steps" labs to providing a problem and letting them discover how it all "works" or determine a creative solution. Some of the hands-on learning is group work, but I also have students work as individuals but within a support group of other students.
One challenge at the public school is funding. The equipment is never quite as good as students have at home and the network lags. I know the network issue is being addressed this summer, but I have another year or two before I can look at new computers. Add to this the challenge of protecting the network interfering with teaching students about the limitations and capabilities of technology and perhaps the biggest challenge is student perception of what they will be "allowed" to do or learn.
At the private programs funding is not an issue; I ask and it is provided, including a support person during class times.
The challenges all have in common are interest and understanding. Society has a perception of computer science that it is too boring or too hard. Fighting that perception, making it look fun and interesting and easy, is difficult. Once I have them in the classroom I can do it, but getting them there without requiring the course is not as easy.
For each place I work I have been blessed with wonderful administrative support. They might not understand the subject, but will allow changes I make in the courses and help me find additional support when I need it.
I measure my program's success by the success stories some of my students or their parents send me. This isn't just the student who now works for the DoD in cryptology and cyber crime or the student who works as a programmer or system analyst, but also the student who found a career calling combining web design and humanitarian outreach, the one who can now figure out why the family computer is not acting right and fix it, and the student who now combines a love of reading and databases and is heading to college for library sciences. My purpose is not to teach a legion of programmers but to enable students to understand the use and capabilities of the computing devices they live with.
For my students, it is similar to my program's success: have they discovered something they previously did not know or understand? Do they have a purpose or goal that involves computing? Do they share their knowledge with friends and family? Each student is different, so success needs to be individualized to each one.
Tammy is on Twitter @tandrew42
For a full list of interviews in this series please see CS Educator Interviews: The Index
There seems to be no end to the development of games that meld making a game and playing a game. Kodu is one example I have been using for a while. It’s designed for younger students. Growing out of that is Project Spark ('Project Spark' tower defense game creation video is mind boggling) from Microsoft. Recently I ran into Beta the Game which, like Project Spark, is not out yet. There are other tools along these lines (roughly) which I list a block programming platforms elsewhere on my blog. They all seem like so much fun. They all seem like they would really engage some subset of students. Kodu clearly does in my experience. As do Alice and Scratch. But do they really teach programming?
Well probably they do but the real, deeper question is how well do they do so? Alice, Scratch and Kodu tend not to do variables very well. If anything I see them as variables late sorts of tools. This was mentioned as a negative at a SIGCSE talk I heard a few years ago (sorry I don’t have the reference handy).
They are all sort of kind of object oriented but is it really enough? I’m not so sure because there really isn’t much research on the topic. Not that there is no research. I know that the Kodu team did some early research with a couple of schools and systems. And various facets of Alice have been researched with Storytelling Alice being the most widely known. How much of this research gets beyond the publication and presentation at conferences stages and into general knowledge is not that clear to me.
Could I look into this more? Of course I could. And if I were doing a graduate project I would. But how does the average computer science teacher get to know what works beyond stories from friends? At the conferences we attend (CSTA, ISTE, TCEA, etc.) we see mostly sessions on “how to use” these cool new tools. I’ve been “guilty” of this myself of course. I’ve presented no end of tools that seem to me to be cool, to be helpful, to be interesting and which I think with little evidence will be helpful for teaching computer science. I even earned my living doing this for a while.
We all have these great ideas. We all fall in love with tools that excite us and which our own brand of logic assures us will be the greatest thing since the stored program computer. As I sit her preparing myself to teach a new school year (first day of students is this Friday) I find myself wondering if I have selected the right tools, the right projects, the right everything and anything to use this year. It’s a bit scary.
In the end I believe that they key thing is not the tools or the textbook or any of those things but the teacher and their interaction with their students. Are the concepts covered in a way the students understand them? We can measure that to some real extent. Does the teacher communicate enthusiasm as well as information? Are the students turned on to or off from the subject? Subjective for sure but real. Did I do the best that I could? Did I constantly look to figure out what I could do better and make things more understandable (and fun) for the students?
Ready or know the new year is coming and with or without solid research behind it I intend to do the best that I can with what tools I have available to me. Let’s rock and roll!
Summer ends for me tomorrow as my school starts with a professional development day for teachers. First full day with students is Friday. I’ve done some preparation over the summer but somehow not as much as I thought I would. Things are about to get really busy. How about you? Any of you started school already? Well let’s take a look at some interesting links while there is still some time.
If you haven’t started classes yet be sure and check out this post on the Computer Science Teachers Association blog - First Day Activities Revisited
Doug Bergman talks about some of his students computer science projects. I *really* want to see my students do stuff like this during the coming school year.
NYC Department of Education Announces Three New Early College and Career Technical Education High Schools One of these is computer science focused. The idea is a six year program that includes high school and community college. These schools involve partnership with industry.
Congress is getting into the game with the Congressional App Challenge to promote Computer Science. They are on twitter at @congapps This hasn’t started yet but you can sign up for information when it does start.
Who is Teaching Computer Science in US High Schools? on the CSTA blog reports on some interesting results from a research program about high school computer science teachers.
Honeycomb Rush Tutorial for Windows 8 (Presentation/Code from MonkeySpace Conference) by my friend Tara Walker
Computer Science Teacher: CS Educator Interviews: The Index updated with the latest CS teacher stories including:
Hadi Partovi: An Update from http://Code.org – This was the CSTA 2013 Closing Keynote this summer: http://youtu.be/rIM20_dAt7s?a
Active Recruiting - Attracting Girls into High School CS: Lecia Barker: http://youtu.be/Wany9hiZtm0?a
Blackbox: large scale programming education data collection » research on learning Java as part of BlueJ. If you are using BlueJ you’ll find this interesting.
I spent last weekend with a room full of university computer science professors. As you might expect discussions covered a wide range of topics during breaks and meals. One item that came up was a problem several people had seen with students who were both self taught and arrogant. It seems that these students often make life in the classroom uncomfortable for other students. They “know it all” you see and delight in making other students feel inferior or unwelcome. This has a negative impact on student retention in computer science programs.
In all honesty the arrogance is the real problem not that they students were self-taught. One can see this in almost any case where some students come into a class with significantly more knowledge of the subject than others. It does seem to be more prevalent among the self-taught though. Perhaps something about doing it on one’s own breeds a certain attitude of superiority. I do know that my career has been overflowing with self-taught programmers and software developers who denigrate formal education in the field and people who learned in class what they learned “on their own.”
Obviously the constantly changing nature of computer science means that someone who wants to stay current has to do a lot of learning on their own. And there is nothing wrong with being self-taught other than that you really need to watch out for the quality of teaching.
The classroom can be a fragile environment. Students can be turned off to a subject as easily, if not more easily, than they can be turned on to it. As a teacher my goal, obviously, is to get the students feel good about the subject and about themselves. Students who do know more than their peers can be a very positive experience. I have seen peer tutoring work wonders with students. So a student who uses their knowledge to help their peer rather than as a club to put them down can really contribute a lot to making the environment a good healthy one.
Learning on ones own is something I strongly encourage. I don’t believe that the teacher should limit students to only what they (the teacher) knows. (see All You Know Isn’t Enough) I want to encourage students to share what they know with their peers in a spirit of support and collaboration rather than as a power game. I try to help students understand that teaching something improves understanding of it for the teacher as well as the student. I also want all students to understand that while people learn in different ways that is a good thing. No one way works for everyone and there is not necessarily a right way for everyone to learn.
But I really wish some of these self-taught student developers had had a better teacher.
Lou Zulli and I got together recently to talk teaching and computer science education recently. One of the things we talked about was common points from the teachers we know and from those I have been interviewing lately on my blog. A key point is that the best teachers are not afraid to admit that they don’t know everything. Students come to them with ideas for projects that the teacher has little to no idea how to accomplish. Rather than say “no” they say “go ahead” and they help the student figure it out. Sometimes they learn together. Sometimes the teacher points students in a direction and gets out of the way. Regardless the teacher is not afraid that the student will know something they don’t know.
These days there is so much going on in computing that no one can know it all. If a teacher limits what their students learn to just what the teacher knows the students are being too limited. Students are naturally curious and creative. There are times when I worry that we can stifle that curiosity and creativity in the name of keeping control. Fear can be a limiting factor. We worry that the student will get stuck on soothing we can’t help them with. What will that do to our credibility? Will the student get too frustrated and turned off to computing? What other bad things will happen because we don’t have all the answers?
Fortunately most of these fears are over rated. First off most of our students don’t expect us to know it all. They have unfairly low expectations of their teachers even when it comes to computing. Chances are that for all we admit to not knowing most students will be impressed by what we do know.
Students also often have a much higher tolerance for frustration than we give them credit for. At least when the project interests them. If they are picking their own projects they are highly likely to keep going long past where they would go for a teacher assigned project. A teacher can help by finding new resources (students are often poor at searching the Internet or documentation) and by helping a student to understand what they do find. One can also help a student understand that what they are doing is hard and that they are making progress.
Success is learning not always completion of a project. With a little help and encouragement students will often amaze you with what they can learn and what they can do with what they learn.
Where has the summer gone. A week and a day before all teachers have to return to my school. Students the end of next week. It’s been a great summer but I’m looking forward to the new school year. How about you? Either way a lot of good links to share today. Hope you find something useful here.
I recently discovered 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. A couple of good posts there to start you off are:
This blog has been added to my Computer Science Education blog roll BTW. Have you checked the lost out recently?APCS teachers have you seen these proposed AP CS A labs? The case study is going away after the 2014 school year. Labs something like these on Paul Tymann’s web site will replace it. Deepa Muralidhar has been blogging about AP CS Principles portfolios which are a part of this whole thing on her blog most recently at CS Principles Portfolios: Data
CS Educator Interviews: The Index Now with 16 different teachers interviewed. The most recent two being:
At the CSTA conference this summer I took part in a mobile app “throw down” where people used Apple iOS, App Inventor for Android and Windows Phone to develop the same app. The session was recorded and you can watch it here.
Speaking of Windows Phone app development, Rob Miles has been creating some Windows Phone App Studio Screencasts Also at Windows Phone App Studio for an introduction to this tool.
Google Computer Science Teaching Fellows Starting Up in Charleston, SC. I am following this with interest. That link is to the Google Research blog. There is also this news article about the program at the Berkeley Independent - Google pilots teaching program in Berkeley County.
Outstanding post by @PaulRWood for all teachers Keep an eye out to be the difference for a student.
Is your school still using Windows XP? Make sure your administrators read this (Kill your Windows XP systems before they kill you) and suggest they act responsibly.
From the Kodu Team
@koduteam
Looking for a batch of fresh Kodu games to keep you entertained? Why not give this collection uploaded this week look.
From @CSEdWeek: Computing in the Core member Google announces 2014 Google RISE Awards opened for submissions.
Tips for teaching Computing for the first time (list of resources included) Not just for first timers either!
PACE, the Partnership for Advancing Computing Education, is a coalition of professional organizations concerned with meeting the global demand for a well-prepared, well-informed, and diverse computing workforce. PACE provides a clearinghouse for members to communicate their visions and efforts toward these goals, helps members to identify common issues and interests, and engenders collaboration that leads to cross-organization unified effort.
Last week I took a little drive. Something around 10 miles in something under 8 minutes I guess. That’s me behind the wheel of a NASCAR race car. I rode with a trainer in the right hand seat and drove around a real race track in Orlando Florida. Part of my big birthday celebration. Probably a once in a lifetime ride. Although …
So why bring this up here? Well because this was a very hi tech experience. One of the first things they did was to plug a USB flash drive into a computer in the car. The car was fitted with several cameras, microphones, tracking devices and more. The computer put this all together into a video that showed the race track, the trainer and I and on the same screen where on the track we were. Frankly I bought it just so I could see how the ride was. While you are driving your focus gets a little narrow. Staying on the track and off the wall are priorities.
I can’t imagine getting that sort of video experience without computers though. And that was just the start of the week for me. I also took a backstage tour of Walt Disney World. In the tunnels under the Magic Kingdom are miles and miles of networking cables connecting all parts of the experience. And, I’m pretty sure, collecting lots and lots of data.
Many of the rides and attractions depend heavily on computer control. All the animated figures are just part of it. Things start at the ticket check in where the system reads magnetic information on your ticker and scans you finger point. I wonder how much information they keep and how well protected it is?
My room key (actually a plastic card with information stored on it somehow) could me (and was) used to charge things from anywhere in the property (40+ square miles of property) and computers handled it all. The amount of data that WDW must handle on a daily basis is mind boggling. I suspect a lot of thought and computing power goes into analyzing that data as well.
I wonder if there is a job down there for me?