Sign In

Communications of the ACM

BLOG@CACM

Computer Science: Catch Them Early


Bertrand Meyer

Some call it computer science, others informatics, but they face the same question: when do we start teaching the subject? In many countries where high schools began to introduce it in the seventies, they actually retreated since then; sure, students are shown how to use word processors and spreadsheets, but that's not the point.

Should we teach computer science in secondary (and primary) school? In a debate at SIGCSE a few years ago, Bruce Weide said in strong words that we should not: better give students the strong grounding in mathematics and especially logic that they will need to become good at programming and CS in general. I found the argument convincing: I teach first-semester introductory programming to 200 entering CS students every year, and since many have programming experience, of highly diverse nature but usually without much of a conceptual basis, I find myself unteaching a lot. In a simple world, high-school teachers would teach students to reason, and we would teach them to program. The world, however, is not simple. The arguments for introducing informatics earlier are piling up:

  • What about students who do not enter CS programs?
  • Many students will do some programming anyway. We might just as well teach them to do it properly, rather than let them develop bad practices and try to correct them at the university level.
  • Informatics is not just a technique but an original scientific discipline, with its own insights and paradigms (see [2] and, if I may include a self-citation, [3]). Its intellectual value is significant for all educated citizens, not just computer scientists.
  • Countries that want to be ahead of the race rather than just consumers of IT products need their population to understand the basic concepts, just as they want everyone, and not just future mathematicians, to master the basics of arithmetics, algebra and geometry.

These and other observations led Informatics Europe and ACM Europe, two years ago, to undertake the writing of a joint report, which has now appeared [1]. The report is concise and makes strong points, emphasizing in particular the need to distinguish education in informatics from a mere training in digital literacy (the mastery of basic IT tools, the Web etc.). The distinction is often lost on the general public and decision-makers (and we will surely have to emphasize it again and again).

The report proposes general principles for both kinds of programs, emphasizing in particular:

  • For digital literacy, the need to teach not just how-tos but also safe, ethical and effective use of IT resources and tools.
  • For informatics, the role of this discipline as a cross-specialty subject, like mathematics.

The last point is particularly important since we should make it clear that we are not just pushing (out of self-interest, as members of any discipline could) for schools to give our specialty a share, but that informatics is a key educational, scientific and economic resource for the citizens of any modern country.

The report is written from a European perspective, but the analysis and conclusions will, I think, be useful in any country.

It does not include any detailed curriculum recommendation, first because of the wide variety of educational contexts, but also because that next task is really work for another committee, which ACM Europe and Informatics Europe are in the process of setting up. The report also does not offer a magic solution to the key issue of bootstrapping the process — by finding teachers to make the courses possible, and courses to justify training the teachers — but points to successful experiences in various countries that show a way to break the deadlock.

The introduction of informatics as a full-fledged discipline in the K-12 curriculum is clearly where the winds of history are blowing. Just as the report was being finalized, the UK announced that it was making CS one of the choices of required scientific topics would become a topic in the secondary school exam on a par with traditional sciences. The French Academy of Sciences recently published its own report on the topic, and many other countries have similar recommendations in progress. The ACM/IE report is a major milestone which should provide a common basis for all these ongoing efforts.

References

[1] Informatics education: Europe Cannot Afford to Miss the Boat,  Report of the joint Informatics Europe & ACM Europe Working Group on Informatics Education,  April 2013,  available here.

[2] Jeannette Wing: Computational Thinking, in Communications of the ACM, vol. 49, no. 3, March 2006, pages 33-35, available here.

[3] Bertrand Meyer: Software Engineering in the Academy, in Computer (IEEE), vol. 34, no. 5, May 2001, pages 28-35, available here.


Comments


Anonymous

I have to disagree about mandating that young children be forced to learn to program. Where there is interest, yes, it should be made available, but I believe compulsory computing education should be limited to computer and security literacy. I've been an instructor, and coach for First Lego League, and a majority of children have no interest and find the skill of little use when pursuing other fields. I believe we are doing our children a disservice by mandating more and more compulsory, one-size fits all education instead of providing a basic foundation and then allowing our children to explore where their gifts may lead them.


Marc Shapiro

Pointer to the UK Royal Academy report "Computing at Schools - Shut down or restart?" http://royalsociety.org/education/policy/computing-in-schools/report/

Pointer to the report of the French Acadmie des Sciences "L'enseignement de l'informatique en France; il est urgent de ne plus attendre": http://www.academie-sciences.fr/activite/rapport/rads_0513.pdf


Melanie Jutras

This is such an important topic, the discussion of which finally seems to be gaining some momentum. It is so interesting to see countries around the world desperately crying out for a solution with the fear of lagging behind, yet we all seem to be in the same predicament of not having properly integrated computer science into the core curriculum of our youth's education. I found the
Report of the joint Informatics Europe & ACM Europe Working Group on Informatics Education (April 2013) to be thoroughly presented and a compelling argument. I especially like the way the concepts of Digital Literacy and Informatics (or Computer Science) are presented as distinct and "essential components of a modern education". As noted by the authors, this is a key point in the global discussion which is often not addressed. Both are extremely important in the educational process. Digital Literacy is, to some extent, being introduced by necessity. For example, students
are routinely required to use the internet, word processors, spreadsheets, and other software for research and collaboration and presentation of materials. Specific guidelines for coursework in digital literacy is essential, would be helpful to educators, and would not be tremendously disruptive or costly to incorporate. The concept of Informatics Education (Computer Science) as part of primary and secondary education is more complex and less accepted for a number of reasons. Although there are many compelling reasons to require Computer Science as an independent core requirement, it seems that we could at a minimum start by allowing computer science classes to count towards high school graduation requirements. In the United States most schools consider computer courses to be electives, therefore severely limiting student participation. At this point, just 10 states allow computer science to count as a math or science credit toward graduation and in some cases it is only the AP Computer Science class that qualifies. However dismal this statistic sounds, it is a great first step toward the eventual goal of making Computer Science a core component of the education of our youth. It is not likely that within the next year or even 5 years from now, we will have all schools requiring a computer science credit in order to graduate. It is, however, reasonable to demand that a core computer science class might count as a math or science credit toward graduation. Small victories, such as these, will go a long way.


Anonymous

Angel Rivera One big problem is that most people do not know what Computer Science is; at its worse it is equated with Computer Literacy and IT, and at its best with Programming. The latter relationship, CS = Programming, has been the most damaging one, evoking images of lonely "nerds" working long hours writing code, and that CS is "just for boys."
CS is a lot more than just coding, and it is for everyone. Kids can be introduced to basic algorithmic thinking and logic. "Computer Science-in-a-box" ( http://www.ncwit.org/resources/computer-science-box-unplug-your-curriculum ) is a wonderful example of curriculum material in which CS concepts are introduced without the need of a computer. Kids can then move to use MIT's Scratch ( http://scratch.mit.edu ), and Carnegie Mellon's Alice ( http://www.alice.org ). By the time they are comfortable developing their own applications in these environments, they have potentially internalized the concepts of functional decomposition and abstraction, and they would be ready to transition to more traditional languages, like Python, Java, C++ and the like.

There are so many things in CS that can be taught to kids without even knowing programming (e.g., binary search, sorting, stacks, queues) and for which we can find day-to-day analogs, and we can even turn them into fun games!

I think all kids should have a basic understanding of computer science principles in a way that is fun and that relates to them. Then, for those interested in furthering their understanding, there should be formal opportunities available in schools.


Displaying all 4 comments