Computer Science Curriculum in our High Schools

While attending the recent Southern Business Education Association Convention in Huntsville, Alabama, I was struck by the lack of emphasis on computer science and information technology curriculum in our high schools. There we were in Rocket City, home of U.S. Space and Rocket Center, Redstone Arsenal, NASA’s Marshall Space Flight Center, and Cummings Research Park. Huntsville is a veritable high-tech city, populated by thousands of professionals in the STEM fields, including computer scientists. The Saturn V Rocket, Space Shuttle, and the International Space Station would be nowhere without computer scientists among other the many other scientists (chemists, physicists, etc). And yet, science in general, and computer science specifically, is really not emphasized in most of our high schools.
What a shame, I thought as I gazed in wonder and amazement at the rockets and space shuttles on display and watched an IMAX movie about man’s exploration on the moon. All made possible by scientists, including computer scientists. It is gratifying to know that the U.S. Space and Rocket Center sponsors camps for young people (and adults!) to encourage budding scientists to become interested in careers related to space exploration and discovery. So what are we doing to encourage high school students to become interested in careers in computer science?
CSTA has taken an active role in helping schools offer a sequenced program of study in computer science for students grades K-12 with the release of the ACM K-12 Model Curriculum. Sample activities are even provided for each level of the curriculum. Also, the Los Angeles Unified School District has produced The Exploring Computer Science Curriculum, which is available on the CSTA website. Both of these initiatives provide outstanding curriculum resources to encourage the teaching of computer science, which ultimately will encourage students to pursue careers in computer science. Yet we still do not see an overwhelming computer science presence in our high schools. Is the issue the current emphasis on rigorous standards for high school graduation? If that were the case, surely computer science would be at the table and we would have computer science taught in every high school. I have seen that topic addressed in other CSTA blog posts. Is the issue funding? I suppose that is possible. However, many of our industry partners are addressing the funding issue. For the past several years, I have worked with two industry partners who work to provide high quality, affordable training and curriculum for our high school teachers: Oracle and SAS, both addressing the funding issue.
Oracle provides free training for teachers and is making an effort to deliver the face-to-face training to teachers in convenient locations, not far from home (there is also an online component to the training). The Oracle curriculum is free for schools. The curriculum is delivered electronically from the Oracle server so the school system needs only to have computers and high speed Internet access for the students to access the Oracle curriculum and learn a high skill, high wage, and high demand skill, specifically database design and programming. Oracle offers certification exams at a reduced price for both the students and the teachers. Yet, the Oracle curriculum has been slow to be accepted in many school systems. Even in cities where Oracle software is widely used by business and industry, the schools are slow to include Oracle Database Design and Programming in their curriculum offerings, if they offer it at all.
SAS also offers free training for teachers and free curriculum for the students. SAS provides a free textbook written specifically for high school students and offers online support for both teachers and students. Teachers are required to attend one week (40 hours) of face-to-face training. SAS holds the training at their Cary campus, but they are willing to deliver the training to any location that has 10 or more teachers to be trained. The schools are provided with the SAS software. SAS certification exams are available to both teachers and students for a reduced fee. SAS Programming for High Schools will provide students with a high skill, high demand, high wage education in the information technology area. Again, we see an industry partner addressing the funding issue. And again, even in cities where SAS is widely used, the high school course is slow to be integrated into the school systems.
Apparently, the issue is not really the lack of funding. Yet it is imperative that we prepare the next generation for careers in computer science and information technology. In the Spring 2009 issue of the Occupational Outlook Quarterly, Benjamin Wright states that “Employment in combined IT occupations is expected to increase by more than 800,000 jobs over the 2006–16 projections decade.” Mr. Wright also states that “a study by the Association for Computing Machinery finds that even though offshoring may increase, prospects for IT workers in the United States will be strong”. Mr. Wright does note that demand for computer programmers is expected to decline by 4% over the same decade but that this is the only IT area projected to decline. The jobs will be there. CSTA is working to provide the computer science and information technology curriculum. Now we need the students. I am working in my little corner of the world to recruit these students. What are we doing to encourage our students to study computer science and information technology?
Resources:
ACM K-12 Model Curriculum and Los Angeles Unified School District Exploring Computer Science Curriculum
http://csta.acm.org/
Oracle Academy
https://academy.oracle.com/
SAS Programming I for High Schools:
http://www.sas.com/corporate/community/sas-programming.html
Occupation Outlook Quarterly, Spring 2009 issue:
http://www.asiaing.com/occupational-outlook-quarterly-spring-2009.html
Deborah Seehorn
CSTA Board Member

My Voice

I look forward to it every couple of months. I’ve been receiving the CSTA Voice since I
became a member back in 2005. For years, being a member of CSTA meant getting my
newsletter, filling out my end-of-year renewal form, and responding to the occasional
survey. Sure, I felt like I “belonged,” but I left the advocacy up to the professionals. Life
was good.
That changed a couple of years ago when my school administration decided that we no
longer needed a Computer Science department. I kept my job, and for the most part,
taught many of the same courses after being merged with the Science department, but I
felt that I had been stripped of my identity as a Computer Science teacher. Following the
merger, enrollment numbers in my classes were the lowest ever. Fewer and fewer students
were aware of the staggering demand predicted for careers in the computing field in just a
few years. Why was my message not being heard?
I saw in the Voice that teachers from 19 states had been chosen to attend a leadership
workshop where they would develop advocacy plans for their respective states. My state
was not listed. There I sat, isolated, with a wilting Computer Science program at a school
with no CS department, in a state lacking a CS certification area (much less a graduation
requirement). Not only was my voice not being heard, but I had no idea what to say or how
to begin.
The one thing I could depend on in those days was my CSTA Voice. When I read that there
was a second leadership workshop and that my state was included this time, I turned in my
application and wished for the best. A few months later, I was at a conference center in
Chicago, surrounded by 50 other educators who wanted what I wanted — to further the
teaching of computing in our schools.
The workshop was a 3-day menagerie of brainstorming, note-taking, networking, planning,
and occasional sight-seeing. We learned about stakeholders, partnerships, outreach
strategies, and most importantly that we are all in this together. We worked with
representatives from states facing issues similar to our own, and we discussed ways to
make those situations better. The most important thing I left Chicago with, though, was my
voice.
The CSTA Leadership Cohort Workshop taught me that I have a voice. I found that I am
surrounded by allies, resources, and solutions free for the asking. With just a little effort, I
was able to organize a CSTA chapter in my own state! Representatives from higher
education, industry, and K12 schools are now working together to identify long term goals
for the future of computing education in our state, and I started this conversation!
If you can hear my voice, know that this is something that you can achieve, too. Put down
your newsletters. Close your web browsers. Get out there and start organizing! If a mild-mannered computer scientist can start this discussion in a state with fewer than 13 schools offering AP Computer Science, imagine what you can achieve in your own back yard.

Daniel Moix has taught Computer Science at the Arkansas School for Mathematics,
Sciences, and the Arts since 2003. He was recently elected President of the Arkansas
chapter of the Computer Science Teachers Association. His favorite color is #6495ED.

Members Build Membership in CSTA

Have you ever wondered about the other members of CSTA? Questions like “Where are the other members?” or “Who are the other members?”
One of the best ways to grow membership in an organization is by word of mouth. In the last fourteen months, CSTA has grown from 4700 members to our current 7300 members. Yes, our membership has grown by 50% and continues to grow! This couldn’t be done without the continued support and work of our current members. Thank you to everyone who has recruited new members to CSTA!
Our new local chapters are also playing a major role CSTA’s growth. Not only do these chapters carry out the work of CSTA on a local level (providing a community of learners, offering professional development, sharing resources) they also help to build membership by making people aware of the benefits of belonging to CSTA. So, a thank you is also due to the members who have taken the time to organize and charter local chapters in their states. For a list of local chapters and contacts see:
http://csta.acm.org/About/sub/CSTAChapters.html
While a large portion of CSTA membership is located in the US (80%), our International membership Is also growing. In fact, it has increased 35% in the same fourteen month period. India leads the way in International growth with 221 members added within the last fourteen months for a total growth of 50%.
Keep up the great work and keep recruiting.
Dave Burkhart
CSTA Membership Chair

Looking at the Programming Language Options

It is interesting to follow the debate among college CS educators over time. At one point in the distant past, there was a large camp of CS teachers pushing for a breadth-first approach to intro CS, providing beginning students with an overview of the discipline before going full-out into programming. There are still some schools that follow this approach, but most teach programming as the first majors course (breadth is often “delegated” to a CS0, non-majors course). The choice of language is always a topic of feverish debate. Scheme has has been taught successfully at a number of schools and has many staunch supporters touting its strengths. In the past few years, there was talk about moving to scripting languages, particularly python, as an alternative to a full-featured object-oriented language. Related to this are a number of theme-based intro courses that have been developed, utilizing a central theme (e.g., robotics, multimedia, games). While all of these approaches can point to success stories, the fact remains that most intro CS courses in colleges are still focused on object-oriented programming, using either Java or C++.
The problem with teaching beginners using an industry-strength, object-oriented language is complexity. There is significant overhead involved in learning a language like Java, and all too often that means boring details – not inspiring applications. To address this problem, the latest trend in intro CS, as I see it, is the use of simplified environments as a way to introduce programming fundamentals while also engaging the interest/imagination of the student. Alice is no doubt the most popular example of this. A large number of intro CS courses at colleges start with Alice, introducing concepts such as classes & objects, loops and conditionals, etc. in a visual environment that can be fun and inspiring to students. From this foundation, students go on to learn Java or C++. Similar examples include Greenfoot, Jeroo, GameMaker, GridWorld, and Karel.
The environment that I am most excited about right now is Scratch. Scratch was developed at MIT as a tool for teaching programming concepts to students from K-12 all the way through college. It has a simple drag-and-drop programming interface (similar to Alice, although slightly more intuitive, in my opinion). Using Scratch, students can build 2-D animations or games very easily, and there is an amazing online community for support. The Scratch Web site (http://scratch.mit.edu) currently has more than half a million (!!!) projects uploaded, which can be viewed and sampled for free. In the first two weeks of my intro CS course, I introduced my students to Scratch and was able to cover all of the basic programming constructs (assignments, conditionals, loops, event-handling) and introduce object-oriented ideas (classes, objects, fields, methods). But most importantly, the students learned these concepts by exploring existing code and building their own animations and games. In the first week, they were able to program a choreographed dance animation, a Frogger game, and a slot machine simulation. In the second week, they designed and implemented their own animations and games.
Surprisingly, the 2-D nature of Scratch actually has some advantages over 3-D Alice. Using a built-in Paint editor, students can draw their own animation objects, or edit existing objects or photographs. The resulting animations/games look very much like Flash animations, which students are already familiar with through the Web. Sound is simple to add, be it sound effects, background music, or recorded snippets. And, the fact that students can upload their projects to share them with the world is very motivating.
If you haven’t done so already, check out Scratch!
Dave Reed
CSTA Board of Directors

The Benefits of Using Paired Programming

Have you tried pair programming yet in your classroom? I started using it in my classroom five years ago and will never go back to the one computer per student model.
In my classroom, students are randomly paired for a lab. I use the term “randomly” loosely, as I must admit to some tweaking, especially at the beginning of the course, to ensure partnerships that will be beneficial to moving both members forward. I try to make sure each student has an opportunity to work with every other student at some point during the year. One student is the “driver” and has control of the keyboard and mouse. The other student is the “assistant” and sits to the side, but works with the driver, advising and catching errors. Every 15 minutes, an alarm sounds (a cow moos in my classroom), and the students switch positions. Partners receive the same grade on the lab. Part of their grade includes how well they work together as a team: sharing the workload, staying on task, working cooperatively (outlined in a rubric so they know this ahead of time).
The benefits of pair programming are numerous. First, the practice teaches students to work cooperatively. Students learn from each other, picking up new skills and techniques. I have also found that pair programming results in students giving a problem a concerted effort before turning to the one or two programming gurus in the class for the answer. The empty screen facing the student is somehow less frightening with another person by his/her side. I have seen a much higher success rate in a team’s ability to figure a solution on their own without having to seek out others. Confidence levels rise as students find that, working cooperatively, they can arrive at a solution. In particular, females who are intimidated by computer science are able gain confidence by successfully working through labs with their partner. They begin to see themselves as valid contributors to the partnership, and start to take initiative in the problem-solving process.
There are drawbacks. Advanced students sometimes overwhelm students whose skills are at a lower level. The more adept students sometimes resent having to work at a slower speed, but upon reflection, can see the benefit of explaining their thinking to their peers. Sometimes advanced or motivated students go home between classes and complete the entire lab on their own. I have thwarted that by giving “dessert” problems for those students to work on, telling them they must save the regular problems for class time.
Occasionally, later in the year, I will have the students work alone on a lab, to see if they are able to arrive at a solution on their own and to give those who prefer to work alone that opportunity. The majority of students states in post-lab reflections that they found working alone a challenge and they see the benefits of working with a partner. Most tell me they prefer to work with another student on future labs. There are a few who enjoy the solo experience more, but I am never surprised at who those students are. They are usually students who don’t like to work in groups, no matter what the subject.
Overall, however, the benefits of overall higher confidence levels and more concerted efforts to develop a solution before turning for help vastly outweigh the occasional inequities within groups. On a selfish note, it also means half the number of labs to grade! If you haven’t tried pair programming in your class, you might try it on just one lab or assignment to see how it goes.
Karen Lang
CSTA Board of Directors

Webinars for Professional Development

I have given webinars this fall using WebEx (http://try.webex.com) and Elluminate (http://www.elluminate.com/). I used WebEx during a webinar for Pearson on Alice and Media Computation, and I used Elluminate during a webinar on Greenfoot.
With both WebEx and Elluminate you use a browser to go to the url for the webinar. You have to download some software and then you are ready to be part of the webinar. With WebEx you also have to dial in to a conference call to hear and participate in the audio. With Elluminate you can use a microphone to participate in the audio and just your computer’s sound card to hear the audio. With both you can have a text chat and can see the presenter’s screen and powerpoints.
I found Elluminate better for the presentor. With Elluminate I could share my screen and still see the participants text chat window which made it easier to see participant’s questions. And, webinars can be recorded, which means that they are available long after the actual webinar has finished. But, I don’t know, though, how effective a webinar would be for longer than an hour.
Many teachers are having a hard time getting the funds to attend professional development events, so webinars might be one way to still get professional development at a low cost. And, the National Science Foundation would like to have 10,000 teachers teaching the new Advanced Placement Computer Science course currently being developed by 2015. Training that many teachers is a major logistical problem that webinars might help solve.
Have you participated in webinars? If so, what did you think of them?
Barb Ericson
CSTA Board of Directors

Equity in the Light of Fairness

Let me start by saying I am new to this board of directors and I do not really have a good feel for what YOU want to hear or read about just yet. So I thought I would share an idea that has been floating through my head. We all know there is an underrepresentation of females in computer science. That is no secret. But sometimes, I find myself asking questions such as,”does it really matter?” If girls do not want to be computer scientists, why are we pressuring them? Why do we put funding and large efforts into programs that attract girls to the discipline, only to have a small return on the investment? (And I run quite a few of these programs!) And by having equal numbers of male and female students in the discipline, just what would that accomplish? Is it simply a matter of wanting what we do not have?
These questions spawn from a thought that has stuck with me since my undergraduate days in education. In one of our foundations of education courses, we were taught about the concept of fairness. The professor defined fairness not as everyone getting the same thing, but everyone getting what they deserve. I think it makes a much more compelling case to think about equity in computer science if we think about it in the light of fairness.
I wonder if, in looking at this concept of fairness for female computer science students, we focus too much on the construct of ‘female’. By singling out the women who do choose to go into computer science, does that make them sense more of the differences that already exist naturally? Obviously, we know males and females are very different, in their thoughts, desires, skills, etc. So, if we come back to this idea of fairness, fairness for a female in computer science should focus on meeting each individual’s needs regardless of gender. Certainly, the concept of differentiated instruction is nothing new. Schools have been doing it for years based on ability levels, special needs, and talents. So what would our curricular and co-curricular efforts look like if we focus on individual needs and gender is just one of the considerations in those needs? Does it change how we do things today? And more importantly, does it change the ‘face’ of computer science and those seeking to engage in the discipline?
Unfortunately, I do not have an answer to all these questions. If you have tried anything like this, I would love to hear about it. However, I do know that females are very important to computer science because of those differences in thoughts, desires, and skills. It is the collective combination of the variety of characteristics among those in the discipline that will continue to spur us into the next century of new discoveries. And embracing that variety is what will promote fairness for years to come.
Mindy Hart
CSTA Board of Directors

Using GameMaker to Spark an Interest in CS

In my work with middle school students, I feel that it is my responsibility to expose my students to as many topics as possible. It is my hope that by exposing them to a variety of topics, these students will find some that interest them to continue with during high school and even beyond.
Last spring, I was introduced to GameMaker. This application is a great way to integrate computer science and the making of games. GameMaker allows students to create games in a manner similar to Scratch. GameMaker uses a drag and drop method to create the code for students to make their own games. Just like Scratch, GameMaker has its own community environment in the form of a Web site. In the Web site, one can find tutorials, documentation, a wiki and other resources. Best of all, GameMaker is a free download and can be downloaded from:
www.yoyogames.com.
I think that GameMaker is a great resource to use to get students interested in computer science and to introduce them to the art of reading code and learning about other computer science concepts. I would love to hear about your experience with GameMaker or other introductory computer science applications.
Dave Burkhart
CSTA Board of Directors
K-8 Representative

New Podcast on Building a CS Program in Middle School

For the past year or so I’ve been visiting with interesting computer science educators and professionals in order to bring to you cool classroom strategies and interesting CS topics to ponder. The CSTA Snipits podcasts:
http://csta.acm.org/Communications/sub/Podcasts.html
are a result of those experiences.
Tracking down and scheduling a visit with these individuals can be quite a challenge. Maybe that indicates why they are so interesting to talk with. They are some of the busiest and most involved individuals you might ever meet.
During the CS & IT Symposium and NECC 2009 I managed to corner several podcast guests. We met in a semi-quiet (!) corner of the main hall of NECC, in the dining room staging area, in a frigid annex in a hotel, and on the curb sitting on packed luggage moments before the Metro was to arrive.
All of these visits were well worth the effort. I learned so much about what is happening around the country and know you will find the stories inspiring as well. I hope you will enjoy the conversations and find cool ideas you can put to work for your students.
One of the latest podcasts is my conversation with Michelle Hutton. Michelle is a founding member and current president of the Computer Science Teachers Association. She teaches computer science at the Girls’ Middle School in Mountain View, CA. The Girls’ Middle School is a 6-8th grade all-girls school where CS in mandatory for all students. Michelle used the ACM Model Curriculum for K-12 Computer Science to build an exciting three-year program with interesting projects and serious CS learning.
Listen in on our conversation about how CS became a required course and details on CS education in the middle school.
CS in the Middle School with Michelle Hutton
Medium: MP3
Listening Time: 7 min.

Pat Phillips
Editor, CSTA Voice
Host, CSTA Podcasts

Time For Another Paradigm Shift

Unstructured code (BASIC), structured code and procedural programming (Pascal), object-oriented code (C++ or Java). We’ve all been through one or more of these paradigm shifts. Each has had its own challenges which we have overcome. Now is the time for a paradigm shift in our K-12 education progression. Every student should be expected to take a basic computer science course where he or she can learn to “think like a computer scientist” as described by Dr. Jeannette Wing in her article Computational Thinking published in the March 2006 issue of the Communications of the ACM. Dr. Wing makes a convincing case that computational thinking is “For everyone, everywhere”.
In the article, Dr. Wing states:
“Computational thinking is a grand vision to guide computer science educators, researchers, and practitioners as we act to change society’s image of the field. We especially need to reach the pre-college audience, including teachers, parents, and students, sending them two main messages:
Intellectually challenging and engaging scientific problems remain to be understood and solved. The problem domain and solution domain are limited only by our own curiosity and creativity; and
One can major in computer science and do anything. One can major in English or mathematics and go on to a multitude of different careers. Ditto computer science. One can major in computer science and go on to a career in medicine, law, business, politics, any type of science or engineering, and even the arts.”
So how do we make this shift and where do we find time in students’ schedules for another course? State and local school boards are adding graduation requirements in an attempt to better prepare our students for life after high school. Virginia has increased the number of credits required to earn the “advanced” diploma from 24 to 26 and requires each high school student to take the course “Economics Education and Financial Literacy.” In light of the current economic conditions, one can hardly argue with this worthy objective, but shouldn’t we be developing their problem-solving and logical thinking skills, also?
We expect students to take a proscribed sequence of mathematics courses, science courses, and social science courses. We should provide a sequence of computer science courses, and expect every student to take the first course. The Computer Science Equity Alliance, jointly sponsored by UCLA and the Los Angeles Unified School District developed an introductory course. Other states are pursuing similar efforts. It is time for us to work together behind the ACM model curriculum to effect this change. This is a change we need.
John Harrison
CSTA Board of Directors