« September 2010 | Main | November 2010 »

October 24, 2010

For Most students, the Computer is for Solving Problems

I had a memorable time last weekend. My new Apple iMac came on a FedEx truck at about 9:30am. The publishing agreement for my textbook (second semester computer science) came about fifteen minutes later on a different FedEx truck. And then I turned 60 on Sunday. The first two were clearly exciting. (I am a new convert to the cult of Apple. My father was deeply observant, but I stuck with Unix/Linux, and what convinced me to convert was that I could get all the Mac features but still run X11 underneath and write, as I am now writing, in a standard Linux window with standard Linux tools. No need to dual boot)

I am scheduled to teach the second semester course in the undergraduate major next semester, using my pdf as the text. I started work on this book when I taught this course two years ago and wasn't entirely happy with any of the books available. First of all, there is way too much material in the standard ACM/IEEE/ABET curriculum. It's just not possible to teach all the material in the curriculum in one semester.

The approach I have tried to take in my book is that students in the first semester have become moderately capable of doing computing in a naive way. They should have mastered arrays and ArrayLists (we use Java in our first two courses as the programming language vehicle for teaching computer science and program design), linear search and lookup, and the organization of programs into perhaps three levels
of classes.

The computer can either be an object of study (if one is a hardware designer or a compiler writer) or a tool to be used for doing something useful. I assume that that there are far more students in the latter group than the former, especially when one is teaching courses that have students from other majors. For this majority of students who might use a computer to do something, the next steps after learning how to do things naively is to learn how to do things in a more sophisticated way, which would allow them to do bigger projects and run on more data.

Instead of linear search, then, binary search becomes the method of choice. More complexity and coding, yes, but more payoff if one has more searching to do. Instead of storing everything in an ArrayList, we use linked lists, stacks, queues, and such to provide more structure and allow for more efficient processing against the data.

And yes, there is some sophistication in the programming language that can be introduced. I view the entire notion of iterators as a way of eliminating the step that involves knowing what the underlying structure is. Instead of doing a "next" to get a node in a linked list, and then fetching the data in that node, we use the iterator to fetch the data directly. But again, this isn't just a cool construct in the language that the compiler writers just had to do in order to show how clever they were; this is a feature that specifically eliminates one complication in naive programming and thus might reduce the number of bugs. As with everything, there is no free lunch; complexity in constructs requires complexity in program design and structure. But the complexity is sometimes necessary and must be mastered.

Or at least that's what I am going to try to convince my students of next term.

Duncan Buell
CSTA Board of Directors

Posted by cstephenson at 07:58 PM | Comments (1)

October 22, 2010

CS Education Resources

Steve Cooper, Mehran Sahami, and Paulo Blickstein at Stanford University have a project about online repositories of computer science educational material and they could use your help.

An online repository is any website that has multiple resources. Educational materials are anything you would use to help you teach: lesson plans, activities, handouts, etc.

Two examples of online repositories of educational materials are:

* the CSTA Source, and
* CS Unplugged.

Please help by responding to this very short online survey, asking what websites you use to get materials for your classes and why you do or do not use online repositories of educational materials.


Michelle Hutton
CSTA President

Posted by cstephenson at 01:05 PM | Comments (0)

October 18, 2010

Google Announces Google Code-In

I'd like to introduce myself - my name is Carol Smith and I'm the Google Summer of Code program administrator. I recently helped announce the launch of a new program, Google Code-in, which is starting on November 22.

If you've ever heard of our Google Summer of Code


program, Google Code-in will be very familiar. Much like Google Summer of Code, Google Code-in aims to reach out to student developers and get them involved in working on opensource software projects. The opensource organizations that we work with will create tasks for the students to claim and work on. The students will get points for each task they successfully complete. For each 3 tasks completed, the students will be given $100 up to a maximum of $500. The top 10 students with the most points at the end of the contest will also be awarded a grand prize of an all-expenses-paid trip for themselves and a family member to Google's headquarters.

We'd love to get your students, children, friends, and family involved in the contest. This is a global program we're hoping we'll get lots of students involved in this year.

Please contact me if you have any further questions, and thank you!

Carol Smith
Google, Inc. | Open Source Programs Office | 650-253-1856 | carols@google.com

Posted by cstephenson at 08:50 PM | Comments (0)

October 17, 2010

Exploring Computer Science Website Arrives!

Exploring Computer Science is a K-12/University partnership committed to democratizing computer science. Our mission is to increase and enhance the computer science learning opportunities in the Los Angeles Unified School District (LAUSD), the second largest school district in the country, and to broaden the participation of African-American, Latino/a, and female students in learning computer science. While we partner to deepen capacity of the LAUSD to support these reforms, we are developing a model and repository of best practices that can help spread and inform similar efforts in other school districts.

Our website is now available at:


There you will find a virtual cornucopia of topics that include:

* Teacher Support
* Curriculum
* Our Mission
* Resources
* News & Events
* Bringing ECS to your school
* NING for ECS teachers

Please take a look at it and let us know what you think!

The Exploring Computer Science Team

Posted by cstephenson at 08:04 PM | Comments (1)

October 13, 2010

Recruiting: Lessons for a CSTA Chapter

As we started the new school year, our small group of five (three college and two high school educators) is entering round two of starting a CSTA chapter. We created it last year and barely got it up and running. Now, we are committed to pushing ourselves into the educational battleground of Long Island.

The question we posed at our first meeting seemed simple enough: who do we recruit to be active members of the chapter? We made several attempts last year to solicit members through email and letter campaigns based on high school and college directories received from New York State Department of Education. Most of our attempts have yielded disappointing results.

We were brainstorming this at our first session this year:

Do we build computer science programs at the high school level by working from the top down by getting superintendents or principals to support CS?

Do we work with teachers even though our efforts to date indicate that very few teachers in our districts consider themselves computer science teachers (computer applications or computer lab administrators or tech teachers seem to be the norm).

What about parents? If parents demanded more CS wouldn't administrators be forced to support the programs?

Are guidance counselors the answer? It would be nice to have a way to work with all these groups but time, money and manpower are limited.

What about the students? Can we go directly to the students and try to find ways to encourage them to push their parents to push their guidance counselors to demand of their administrators to build computer science into their curriculums?

Sounds like a bad nursery rhyme, doesn't it? Hopefully, by the end of this school year, this group of CSTA chapter members will have found an answer, or at least a small hole to climb through.

What suggestions do you have for CSTA chapters that would like to attract more than a small core of teachers?

Ron Martorelli
CSTA Board of Directors

Posted by cstephenson at 12:44 PM | Comments (2)

October 11, 2010

New Developments in Exploring CS Curriculum

There have been exciting developments in the Los Angeles Exploring Computer Science program.

This past week, the university-district-CSTA partnership received a large NSF grant from the Math-Science Partnership program of the National Science Foundation. A major part of this grant supports the development of a mobile phone computing curriculum for Los Angeles math, science, and computer science classrooms. Using smart-phones and a customized Android app, students will work in teams to collect data which describes a particular social or environmental issue in their community. Groups will then analyze their findings to create new knowledge about the community issues to present to others.

What I'm really excited about is that this experience explicitly connects computer science concepts with the experiences (and equipment) that students encounter daily. The curricular activities will reinforce the idea that computer science is all around us and can be used for social and environmental inquiry.

As I begin to think through possibilities for student engagement, I am curious about how other computing educators might be using mobile phone technology to collect data for computer science projects.

Have you heard of any great mobile phone computing projects for K-12?

Joanna Goode
CSTA Equity Chair

Posted by cstephenson at 12:21 PM | Comments (0)

October 05, 2010

Notes on the Hopper K-12 Town Hall

For the second year in a row, the Grace Hopper Conference included a Town Hall meeting on K-12 CS education, bringing together K-12 teachers with people from industry, academia, and research. One of the questions discussed was what teachers feel they need. The answers ranged from political and infrastructure responses to "in the trenches" needs. Here are some of the responses:

* Teachers need a political partner, someone from the political world to witness our discussions and begin to understand that CS is in crisis, understand what teachers need. How about getting a U.S. senator or Arne Duncan to come to SigCSE to talk about the CS education act, etc. And, most important, get CS included in STEM.
* Teachers need equipment and training. Labs in many schools are too slow and too outdated.
* Teachers need access to research and data, plus help on how to put together grants in order to get resources into their schools.
* If companies cannot donate equipment, maybe they could bring commitment in on loan. Or set up a bus of equipment that could arrive at the school periodically so that students would have access to state of the art machines.
* As is often mentioned, teachers need help changing the image of computing within K-12 so that girls will be more likely to want to take the courses. In particular, need ways to reach girls in 5th-8th grade, which is the time when they start to fall out of math and science.
* Need a groundswell of support, educate parents and others in communities so that they understand how important it is that CS be taught and be required. People need to know that CS isn't required, so that they can lobby for it to become required.
* Need teacher certification and teacher training programs that are focused on CS.
* The K-12 situation would be helped by a disarticulation of the pieces of CS. We need better understanding among administrators and policy making boards that CS is not IT, CS is not computer applications, but that CS is not just programming either.
* Teachers asked for online self-directed learning modules so that they can get up to speed on new CS material.
* Because standards differ in every state, administrative support is critical, as well as trustworthy curricular materials.
One issue raised was that there are many communities in which CS is not taught at all, so those communities would not have any teachers who could attend a town hall like this one.

The next question asked was what people who are not K-12 teachers see as their role in the work around K-12 education, either personally or as a group.

* We can break down the isolation many individual K-12 teachers experience. (One of the suggestions I made during my opening remarks at the Town Hall was that people in industry or college/university settings invite area K-12 CS teachers, giving them an opportunity to connect with each other).
* We can target the people who help kids make decisions. For example, a new corporate partnership will be announced soon which will reach out to parents and guidance counselors.

A final closing comment was that we figure out how to "network" our passion and sustain it so that we don't leave meetings like the Town Hall and then lose all of our enthusiasm and energy. There are many ways ti do this but two good places to start are by participating in CS Ed Week and helping with CS activities in your area schools.

Valerie Barr
CSTA Task Force Chair

Posted by cstephenson at 08:51 PM | Comments (1)

October 04, 2010

Real (ish) Life Computational Thinking

I went to see the most delightful talk this week, given by a graduate student. Like many academic talks, the speaker outlined a problem, described similar research and attempts at solutions, which have all failed, then argued for a new solution that he has done research on. The format, obviously, is not what was delightful, instead it was two other features of the talk.

First, the problem: "The dirty dish dilemma." Our young grad student has lived for many years in communal houses. The policy is "clean your own dishes." But sometimes dishes get left in the sink! Like the broken windows theory of crime, soon it snowballs into a sink full of dirty dishes and a lot of unhappy housemates.

When was the last time you went to a talk about something you actually found entertaining? This is so much better than the problem of writing across the curriculum or differentiated instruction! (And truly, I think life at most schools would be more improved by 30 minutes on solving the dirty dishes in the staff room sink than by 30 minutes on curricular reform.)

The second delightful part was his research method. It would be hard to go out to lots of communal houses, try different solutions, see which ones worked and then test the "working" solutions at other houses to make sure they really work. But it is easy to download NetLogo and create a model of dirty dishes, including the people who wash and dirty the dishes. And it's very easy to modify the model once you create it - varying how slobbish the people are, trying different solutions, adding or removing constraints (like when Mom gets fed up and yells and all the dishes get washed at once). It was the most realistic example of the use of computational thinking I've seen, and at no time in the talk did the speaker use the phrase computational thinking, nor did he even appear to know that's what he was doing.

Incidentally, the solution is to change the policy to one of small altruism. Instead of "do your own dishes" the policy should be "do your own dishes plus one other dish". Then no one gets stuck having to clean up after everyone else just because their prep period is right after lunch.

Michelle Hutton
CSTA President

Posted by cstephenson at 12:05 PM | Comments (0)