This week (December 4 through 10, 2011) has been designed as Computer Science Education Week (CSEDWeek) by the US House of Representatives to recognize the importance of computer science education for students at all levels.
I am one of over 2000 people who have pledged online to participate in CSEdWeek. I will be blog about computation and the learning and teaching of it, in every context that I have experienced it.
Let me start by raising some questions about what is at stake.
What do you think of when you even hear of “Computer Science education”? (I welcome comments below.)
- Do you imagine elementary schools equipped with iPads?
- Do you imagine courses about how to use applications such as Microsoft Word or Gmail?
- Do you imagine Advanced Placement courses spreading to every high school in the country, with high enrollments in the courses?
- Do you imagine community college and technical schools teaching something about programming in Visual Basic or Java?
- Do you imagine undergraduates learning about asymptotic mathematical analysis of parallel algorithms?
I do not like the phrase “computer science”. Someone once said, computer science is not about computers and is not science. I heartily agree. The essence of what computers do is what is important, not the physical details of the what computes or the very specific details of what applications have already been provided for use on a computer. And the principles of computation are just mathematics, which is not an empirical science.
So right off the bat, I think there is a lot of opportunity for confusion when trying to determine what the scope of “computer science” is (versus programming, human-computer interaction, software engineering, psychology and politics of software development in the real world), what should be taught, to whom, and by whom.
I especially dislike the word “education”. It often implies some formal degree program, tuition, certifications, and other such matters. I’m interested in the learning and teaching, not in the student or teacher or school part of the story.
Learning and teaching outside of school
Later this week I will write about how various experiences in school turned me off from computers, from computing, and offer suggestions on how to fix the problem of discouraging young people from pursuing a computing-oriented learning and career path.
But today, I just want to mention a remarkable event that occurred just yesterday, the Global Day of CodeRetreat, held simultaneously in 90 cities with around 2000 attendees. I participated in the local Pittsburgh edition of the event. (I will write later this week in detail about my experience at the event.)
The motto of the event is “Programmers honing their craft together.”
The buzzwords used here are very far from those in academic “computer science”. I bring up the event because I think that one thing that is entirely missing in the discussion of “computer science education” is, what is really important and valuable to society, and who provides it, and where? It is fashionable in academia to look down on anything that would speak of “programmers” (rather than “computer scientists”), “honing” (rather than “proving”), “craft” (rather than “science”), and “together” (conventional education pays only lip service to the importance of collaboration).
I believe that something like CodeRetreat is fair game for discussion during CSEdWeek, because the enthusiastic participation in this event speaks to the passionate desire by volunteers to help people learn, and by working software developers to continue to improve themselves.
Stay tuned for posts later this week on the following:
- problems I faced in computer science education in K-12, college
- CodeRetreat and what people learn there