By Duncan Buell
“It never hurts to have a supporting argument for something people are already doing.”
That came from Howard Resnikoff in a workshop 25 years ago, and I had sense of deja vu last week at a workshop on computer security and information assurance. I taught our third-semester course in software development last fall, and I am teaching it again this spring. Last fall’s experience was the most frustrating I have ever had as a teacher, because otherwise good students seemed to insist on maintaining bad habits in writing programs.
The justification for an established discipline with regard to getting programs written came from the industrial people at the workshop. These were mostly companies involved in defense, health care, and finance. Coding standards, documentation standards, and the oversight of the development process was not, for them, simply a means for maintaining control. This wasn’t just “eat your vegetables because they’re good for you.” Rather, in order for them to get their code audited and certified, they have to have records of the development process and the responsibilities of programmers and management clearly defined and described. Just having the code “execute correctly” is not enough. They have to be able to provide evidence that correct execution is not an accident.
This workshop almost coincided with our twice-yearly self-criticism session about last semester’s teaching and with the publication in Communications of the ACM of two articles. The first, In praise of bad programmers, is an anecdote about a programming team that is assigned the company’s known bad programmer. The conclusion of the story is that having that programmer on the team made it a better team because they were forced to do things properly. If you know in advance that you are likely to be misunderstood, then perhaps you will be able to compensate in a way that will make it less likely to be misunderstood. If you know in advance that you have someone who must be guided every step of the way, you might very well learn how to provide that guidance, and you will certainly learn that the existence of the guidance is a necessity.
So, I have adapted from last semester to this. I am going to start with a heavy emphasis on the issue of human failings. I am even contemplating asking students to turn in a skeleton of their program code one week into a two-week assignment, just as English teachers sometimes require an outline to be turned in prior to a final paper.
Writing programs is not something that can be done haphazardly, if you want the programs to work as planned, but I don’t quite know how to do the (gentle?) coercion and guidance to get students to realize this. Some lessons can only be learned the hard way, and I think a lot of lessons about programming are in this category. Teaching students, then, involves a planned set of leapfrogging steps of things that don’t quite work, with the hope being that the difference between what ought to have been written and what was actually written shrinking with each step.
Duncan Buell
CSTA Board of Directors
Category Archives: News and Views
It’s a Great Day for CS!
By Deborah Seehorn
Ever since Computer Science Education Week, I couldn’t help but notice all the positive signs that have come through my email about what a great time it is to teach computer science. Maybe it was the promotional efforts behind CS Education Week. Maybe it is the emphasis on STEM Education. Maybe all the educators out there just realized what a great educational bargain we have in computer science. In any case, it is a very positive sign to see CS education coming to the forefront. The signs have included articles that highlight using robotics to interest students in the study of science and technology (and computer science!), President Obama’s STEM Instruction initiative (supported by high-tech industries), and increasing college/university degree offerings in cyber-security.
Robotics Programs Becoming Newest Trend
The Ramona (CA) Journal (12/31) reports that robotics programs “are one of the newest trends helping young people discover the thrill of science and technology.” The piece highlights Olive Peirce Middle School’s robotics team, which recently won their inaugural competition.
FIRST Participants Growing Up In “Time Of Renewed Interest” In STEM
The Washington Post (1/10, Turque) reported on the FIRST Robotics Competition that took place at McKinley Technology High School recently, noting that that participating students “are growing up in a time of renewed interest in science, technology engineering and math education.” The Post notes the Educate to Innovate Campaign recently launched by President Obama. Locally, meanwhile, “Schools Chancellor Michelle A. Rhee has designated six District public schools…as STEM ‘catalyst’ schools that will develop curricula that will weave science, math and technology through all major subjects.” The Post adds, “Corporate and government sponsors, including Boeing, NASA, Northrop Grumman and Booz Allen Hamilton, hope the focus will broaden the pool of potential employees.”
Wired Blog Urges Support For Robotics Programs
Chuck Lawton writes in the Wired (1/10) “GeekDad” blog, “If your school has one, consider having your child join and get some hands on experience working with exciting technology. And if you are a parent with related experience, consider getting involved in your school’s program. Because solving tomorrows problems will take the bright and innovative students of today.”
$250 Million Initiative For STEM Instruction Announced
The Washington Post (1/6, Anderson) reports that President Obama “will announce a $250 million public-private effort Wednesday to improve [STEM] instruction, aiming to help the nation compete in key fields with global economic rivals.” The effort “seeks to prepare more than 10,000 new math and science schoolteachers over five years and provide on-the-job training for an additional 100,000 in science, technology, engineering and math.” The Post points out that “it’s unclear how much federal spending can grow in a time of rising budget deficits.” For this initiative, however, there has been “mobilization on several fronts,” with “high-tech businesses, universities and foundations” contributing. The Intel Foundation, the Woodrow Wilson National Fellowship Foundation, the W.K. Kellogg Foundation, UTeach, NASA and PBS are all contributing in some respect.
Wanted: Cyber Ninjas
New York Times (01/03/10) Drew, Christopher
U.S. colleges are adding courses and specialized degrees in the once-exotic field of cybersecurity to try to meet the growing demands for computer security skills in the public and private sectors. Banks, military contractors, and software companies, along with government agencies, are looking for “cyber ninjas” to keep investments and new projects safe from hackers. Polytechnic Institute of New York University in Brooklyn recently created a master’s degree in cybersecurity, as did Indiana University, whose security degree is in informatics, which gears students toward finding new uses for information technology. Other U.S. universities, including Carnegie Mellon, Purdue, and George Mason, also have master’s programs in cybersecurity. Georgia Tech offers a master’s degree in information security online. Cybersecurity is seen as “the most technically demanding field, kind of like the fighter pilot of the information technology industry,” says recent California Polytechnic State University graduate Jeffrey Henbest. Government officials expect the number of cybersecurity jobs to grow rapidly in the coming years.
Well, we all know that robotics is not a new development, but isn’t it great that it is being re-discovered? What more fun way to interest students in computer science? And you can’t ask for much better support than having the President of the United States cheer you on, with assistance from IT businesses and higher education. And how great it is that CS has such a prominent place in the career clusters (STEM and IT Clusters). It truly is a great day for CS! All we need now is to have our certification dilemmas solved, and all will be well.
What are you doing to promote CS certification in your state?
Have you read the information posted on the CSTA website concerning CS certification?
Have you advocated for computer science locally and in your state?
It truly is a great day for CS. Carpe diem!
Deborah Seehorn
CSTA Board Member
Creating the Expertise We Need
By Pat Phillips
By now you have likely received the January issue of the CSTA Voice and discovered the exciting NSF plans for growing 10,000 new CS teachers and reaching 10,000 schools with a re-vamped AP CS curriculum. Of course, this is all in response to what we have sensed and fretted about for quite some time; something needs to happen to turn today’s pipeline from a dribble to the gush needed to create the technical expertise required to solve a growing list of world problems.
Those involved in STEM/CS education have been shouting about the problem for several years and now others are also taking note and action. The December 18, 2009 issue of the Kiplinger Letter focused on education – much of it related to STEM. A few items in particular struck my interest and I thought they might interest you as well especially as we all begin the work of overhauling CS education.
* 60% of businesses say it is difficult to find qualified workers even in this recession. Especially sought after were highly skilled laborers such as laser die cutters, engineers of all stripes, scientists, and skilled information tech workers from systems analysts to programmers.
* Baby boomers (40% of the workforce) are retiring; those born between 1946 and 1964 have more education (58% with at least some college training) than the generation before them AND the generation after them (55%).
* Newly created jobs are more likely to require higher education than in the past. Currently 31% of all jobs require postsecondary education. This percentage will creep ever higher representing millions of new jobs that will require more than high school.
* Students majoring in science, technology, engineering, and math fall short of employers’ needs. From 2004-2014 employment in these areas will grow at nearly double the rate for all occupations. The demand for biomedical engineers will grow by over 70%; network systems and data communications analysts will grow by 53%.
* Interest in STEM/CS fields is growing but not fast enough and most of the growth is from non-US students earning degrees in US universities. As the economies of India, China, South Korea, and other developing nations expand highly-educated graduates are less likely to stay in the US. That combined with stricter immigration policies will leave many companies short-handed and unable to compete (unless US students fill the gap).
* While progress has been made, the performance gap between white students and Hispanic & black students in reading and math test scores, remains large. By 2018 Hispanics will be 18% of the work force, 23% by 2030. Unless these gaps are closed, demographics will further weaken the competitive edge.
You will be happy to know that CSTA and the NSF CS/K12 Project are working to combat (for CS education, at least) some of the US education weaknesses identified by various critics. Through the work of these groups, the future of CS education will be rich in:
* Highly trained teachers
* National recommended standards
* Demanding classes and curriculum
* Focus on critical thinking skills
There has been no better time to encourage our students to pursue the wonder and power of CS!
Pat Philips
Editor, CSTA Voice
Object Lessons from a Summer Workshop on a Cold Winter’s Night
By Chris Stephenson
As teachers begin a new calendar year and its promise of teaching and grading in cold, rainy, and even snowy weather, it can be a good idea to rethink how to approach students who may not be achieving their potential. We recently came across this essay by Wicked Teacher of the West, detailing her experience learning a new programming language at a summer workshop. We hope that you will find the object lessons for teachers useful, as you head into the new quarter.
The links are:
http://wicked-teacher.blogspot.com/2009/07/lost-in-syntax-part-1-or-omg-im-going.html
http://wicked-teacher.blogspot.com/2009/07/lost-in-syntax-part-2-or-omg-im-going.html
Chris Stephenson
CSTA Executive Director
New Years Resolutions
By Mindy Hart
Happy New Year!
I hope 2010 finds you doing well and you had a lovely winter break! But now that you are most likely back to the grind, have you thought about your New Year Resolutions as they relate to the state of computer science education?
Here’s my list of What if’s. Perhaps, if we each just choose to do one, we might create a snowball effect in advocating and expanding computer science education.
What if:
* Each of us talked to one school administrator and expressed our concerns about the lack of programs available for interested students?
* Each of us took a moment to talk about the job opportunities in CS among all the students in our school?
* Each of us quit worrying about semantics, and instead worried about cultivating student interest?
* Each of us actively sought out higher education and business partners that helped provide resources and internship opportunities, even it if were just for one student?
* Each of us developed a project that our students could take into the lower grades to get kids interested in CS early on in life?
What ideas can you add to this list? And which of these might you give a go during 2010?
Mindy Hart
CSTA Board of Directors
Programming Challenge 4 Girls (PC4G) Event in New Zealand
By Margot Phillipps
In November this year, a series of challenges using Alice was held at 4 venues around New Zealand. The events were staggered as the days were planned so that a visiting speaker could attend each event. The venues varied enormously in the demographic they reached. The second venue was Manukau Institute. Manukau city is the largest Polynesian city in the world (as it is the major center for Polynesian migration to New Zealand.) The third venue, Gisborne, is a center with a very high Maori population. (New Zealand’s indigenous people)
Each school was allowed to bring two teams of two girls in year 10 (grade 9 in most countries) to participate in the challenge. Each school was required to have a teacher accompany the teams.
The day(s) were planned so that the girls and their teachers had some tuition and practice in Alice (14 of the 20 teachers hadn’t used Alice before) and then after some refreshments the girls sat the challenge while the teachers had a workshop.
Dr. Chris Stephenson, Executive Director of CSTA held the workshop for teachers, which reinforced for them not only the importance of CS Education but also let them know that the challenges of a reasonable curriculum and assessment, qualified teacher, and uptake by students are not just issues in New Zealand.
In the challenge, all of the teams were given the problem statement that included a number of set tasks (story-boards provided). Once a team mastered those tasks, the girls were encouraged to “add value” with their own ideas for an extension to the story. For good marks in this section they had to story-board (ie: design) it first.
At the end of the 3 hour challenge and teacher’s workshop, lunch was served, and each of the hosting sites then provided a 45 minute presentation or activity for the girls and the teachers while the judging team marked the contest entries. The judging criteria had already been set and tested, so judging was relatively straight-forward. This allowed the judges to rapidly group the results into gold, silver, bronze and participation categories.
The final event of the day was the awards ceremony. The gold, silver and bronze category winners received medals and the top team’s teacher received an Alice textbook.
Student evaluations showed 79% of girls saying that they would take a subject like this in senior high school if it was available. Unfortunately at present the offering of a CS courses in senior high school in New Zealand is limited. The research that the organisers read suggested that girls enjoy contests and competing but they prefer team work. This was supported by 97% of the respondents saying they enjoyed the teamwork.
Although the challenge reached both important “CS minorities” (girls and minority cultures), future challenges will need to be sensitive to the story lines set for the challenge. This year was a dog-obedience class and as one teacher remarked “Girls from our school wouldn’t know dogs got trained”.
The organisers have tried to make it as simple as possible for a school to offer to be a site and have devised a “cookbook” of what needs to be done and when for running the challenge. The practice material, the challenge and the mark sheets are all provided by the committee (all volunteers). The hope is that each year the challenge will grow in the number of sites and thus the number of girls being exposed to programming. Our hope is that this experience will convince the girls that computer science isn’t nerdy, it is intellectually interesting and most of all fun.
Margot Phillipps
CSTA International Director
Happy Holidays
The end of the year brings upon us the celebrations that come with the holidays. This year, we have extra reason to celebrate with an added holiday.
The week of December 7, 2009 has been declared as Computer Science Education Week. Celebrations for this week, honoring computer science education have been planned across the country. CSTA’s parent organization, ACM, is preparing a Web site to provide classroom teachers with resources to use in their school’s celebration. You might want to check out the “20 Things You Can Do as a Classroom Teacher” to help with your celebration. This list was compiled by John Harrison at the recent CSTA Board of Director’s meeting and contains easy classroom activities that any teacher could use to promote the Computer Science Education Week.
What activities are planned at your school for this celebration? What are your ideas for activities that other classroom teachers might use to help them with their celebrations?
Let us hear from you and your great ideas.
Dave Burkhart
CSTA Board of Directors
Real Code is Messy
Reading John Harrison’s blog of November 3 got me thinking about what I am trying to teach my students in my third-semester (university) course about the development of large software systems. They seem to have a good handle on the nuts and bolts of software. Down in the weeds, one statement at a time, they do ok. It’s the bigger picture that is harder to explain. I have a cartoon clipped from the newspaper years ago of a guy in a lab coat pacing back and forth in his office. In the last frame of the cartoon, “Writing,” he says, “is nature’s way of showing you how fuzzy your thinking is.”
A large part of the business of writing software is getting one’s thoughts organized, and then transforming into software those organized thoughts about the management of the information at hand. Human beings are fallible organisms, so their software objects need to be made as simple as possible to minimize the chance that mistakes will be made. We encapsulate information into instances of objects so that all the data handling for a certain “thing” is done in one place, and no code except the local code in the object can manhandle that data. Just as a naval officer expects commands to be repeated back to verify that they have been understood, we expect software modules to report both success and failure, and we organize software so that we trust no part to be “obviously correct” unless we have tested it and found it correct.
But with programs, it is indeed hard in a school setting to give students real problems. The sorts of things that can be dealt with in a class setting are naturally going to be smaller, less complicated, and designed so that most students can actually finish them. Real code is not usually like this. It’s big, it’s messy, and (unfortunately) it can often be as unorganized and unmaintainable as we try to teach students not to be.
Perhaps the answer is that we must bring students to the edge of failure by having them read and understand some large programs that are well written, and having them read and understand some programs that are not so well written. We hope that they will learn how to write by reading literature. We can’t expect them to write software to solve large problems, but perhaps they will learn about solving problems with software by seeing how it’s done and analyzing that code. If they see how others have reduced the fuzziness in their thinking as they organize software to solve a problem, perhaps they will learn how to do it themselves.
Duncan Buell
CSTA Board of Directors
Just What is Computer Science?
Just what is computer science? Is it a science course? Is it a math course? Is it a business course?
These questions pop up more frequently now that states are requiring four years of science and math. In Texas, the AP CS A course counts as a math and is offered by both the math and business departments but this has raised questions about who can teach AP CS A. In Georgia, AP CS A is offered in the business department. Several years ago there was a move to allow only business teachers to teach it, but I asked that all certified teachers be allowed to teach it, and this was approved.
When Georgia started requiring four years of math and science, some of the faculty at Georgia Tech asked that AP CS A be allowed to count as a math or science. As of fall 2008 it was approved that AP CS A could count as a science course. However, this fall the Georgia Board of Regents removed it from the list of approved science courses, but they had not done a formal review of the course. Georgia Tech asked for a formal review of the AP CS A course and we just learned that the Board of Regents will allow the AP CS A course to count as a math or a science course!
But what is computer science, really? Some people claim that it isn’t a science, even though the title includes the word science, since it isn’t a study of the natural world like biology, chemistry, or physics. But inheritance, which is one of the central ideas in object-oriented programming, was first formally used in the scientific classification of plants. And, these days all of the natural sciences are becoming more and more dependent on computing. One famous biologist has said, “that biology is becoming a branch of computer science”.
Some say computer science is a branch of applied math. And certainly many of the people who created and programmed early computers were mathematicians. And, many mathematicians now depend on computers in their work. Computing does include many mathematical concepts, but it also covers many other concepts such as how to design and build computer systems.
Some say it is a type of engineering. My master’s degree from the University of Michigan was from the computer science and engineering department. Certainly the creation and testing of software systems includes engineering concepts. But, again computer science isn’t just engineering.
Certainly computers are used in business. One reason that Wall-mart has succeeded is that it gathers sales information from all of its stores every night and uses this data to improve operations and lower costs. Nearly all businesses are dependent on computers.
I think that the real truth is that there are connections between computer science and many fields such as science, math, psychology, engineering, and business.
What do you think?
Barb Ericson
CSTA Board of Directors
Are Your Students Good Problem Solvers, or Good Mimics?
Recently the topic of Computational Thinking has risen to the forefront of discussions of what our students should learn. Ignoring the facts that computational thinking has different meanings to each of us, I think the root of the discussion focuses on our students’ abilities to apply their problem solving skills to realistic problems that may or may not have identified solutions. Can your students do this? I’m not sure that many of mine can.
Many of us learn by mimicking the behavior we want to master. I learned how to play baseball by copying the throwing and batting motions my coach demonstrated until I could reliably throw the ball to a stationary teammate or hit the ball off a batting tee. But I didn’t become a good baseball player until I could apply these skills in a game situation where either my target or I were in motion or I faced a real pitcher who was reluctant to throw every pitch down the center of the plate. It took real experience to master these skills and become a baseball problem solver.
Our students learn to program (a basic computer science problem solving skill) by mimicking the programs that we write to demonstrate key concepts. How do they make the transition to problem solvers? Where is their game experience? Why should we expect most of them to be more than mimics who can only solve the types of problems we have demonstrated if we never give them real problems?
These are questions we need to address. If you are tackling these issues in your classroom, then you are on the front lines of computational thinking. Share your ideas. How do you get your students to make the transition? How do you know they are on the right path? Unlike the baseball player, we don’t have the luxury of tracking their batting average, fielding percentage or ERA. What are the metrics that we can identify to help measure success? How do we bring our students into the 21st century using knowledge and skills we gained in the 20th century? These questions may not have obvious answers, but they need to be asked. Help me ask them.
John Harrison
CSTA Board of Directors