Computer Science Teacher
Computer Science Teacher - Thoughts and Information from Alfred Thompson

October, 2010

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Computer Class or Computer Science Class


    There is much too much confusion about the difference between a “computer course” and a “computer science course” in education discussions. This is not a new problem of course. Several years ago the NCAA announced that computer courses would not count in the core courses that students have to complete for academic eligibility to play NCAA sports. Why? Well largely because a lot of courses that were not particularly rigorous were being submitted for approval. Initially even Advanced Placement Computer Science (about as rigorous an academic course as they come) was tarred with the same brush as “computer keyboarding” and “basic computer literacy” types of courses. Even today when I talk about schools not having computer science courses someone will tell me about keyboarding and applications courses and say “sure we have computer courses.” Really? Yes, really.

    Today I read on Mark Guzdial’s blog (So what is “computer education”?) about two “Center(s) for Science, Mathematics, and Computer Education.”  where “The words “computer science” do not even appear on either site. ” At these schools computer education  apparently means using computers not what I would call computer science.

    Words matter. The difference between a computer course and a computer science course is huge in the eyes of a computer scientist (or even an industry computer science professional) but is apparently not so large in the eyes of the general population. We hear it all the time that this student or that student is a computer “expert” when all they really know is a bit more about applications, games or social networking than their parents or peers. This hardly makes them computer scientists but, well, the distinction seems lost on too many people.

    So what is computer science? The definition used in the ACM Model Curriculum is:

    Computer science (CS) is the study of computers and algorithmic processes, including their principles, their hardware and software designs, their applications, and their impact on society.

    In this context ���applications” means far more than learning how to use a specific set of applications but means understanding the broader use of computers to solve problems and contribute to the functioning of society and industry as well as science and the arts. The model curriculum report goes on to say.

    In our view, this definition requires that K–12 computer science curricula have the following kinds of elements: programming, hardware design, networks, graphics, databases and information retrieval, computer security, software design, programming languages, logic, programming paradigms, translation between levels of abstraction, artificial intelligence, the limits of computation (what computers can’t do), applications in information technology and information systems, and social issues (Internet security, privacy, intellectual property, etc.).

    The ACM K-12 CS Model Curriculum, 2nd Edition has become the basic reference for discussing K-12 computer science curriculum and if you are interested in the topic at all this is a must read. From there you can actually go in many directions for implementation.

    One can introduce programming concepts to very young children using Kodu. Middle school students will often enjoy creating programs, even fun programs, with Small Basic. Curriculum materials may be found at both of those sites and more materials are available all the time. For example there are also some third party curriculum materials for Small Basic at Microsoft Small Basic Tutorials. For older students there are many resources at the Microsoft faculty connection. Finding curriculum resources is important but there are good, teacher developed, teacher tested resources available.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    President Obama Recognizes Science Superstars


    Earlier this week President Obama hosted the winners of a number of major STEM (Science, Technology, Engineering and Math) competitions. Two of the students who were invited to the White House for this event were Wilson To and Christian Hood (who won while still in high school!) who have been winners in the Imagine Cup competitions sponsored by Microsoft. Their picture outside the White House is below.


    Wired covered their visit at White House Science Fair Recognizes U.S. Imagine Cup Finalists where you can see their picture with Bill Nye the Science Guy. Wilson To wrote about his experience at the Huffington Post. He quotes the president as saying something very important.

    "If you win the NCAA championship, you come to the White House. Well, if you're a young person and you produce the best experiment or design, the best hardware or software, you ought to be recognized for that achievement, too.”

    This is not the first time President Obama has said this and inviting this group of students to the White House shows that he means it. It is important that he does mean it and does follow up on it. We need to make heroes out of students who accomplish themselves in academic and other intellectual pursuits. In any organization or society you get the sort of behavior that is rewarded. We need to reward and encourage people who think, who learn, and how but that thought and knowledge together to good impact on the world. BTW You can watch Obama’s full (short) speech here.

    Related to that, this week Mayor Bloomberg and Steve Ballmer announced that New York City will host Microsoft’s Imagine Cup 2011 Worldwide Finals in July. I’m pretty excited to see this event come to the US for the first time. And as a native New Yorker (don’t hold it against me) I am thrilled that NYC will be the host city. New York is the big stage for many events. The Imagine Cup is an amazing international competition and obviously can lead to some high visibility to the students who compete and the schools they attend. With a goal to encourage students to work on the great problems of the world as identified by the United Nations Millennium Goals it is so much more than about the individual though. It is really about encouraging students to go out and use technology to change the world for the better.

    Know a high school student (16 and up) or a college student with a passion for technology and a dream of making the world a better place? Encourage them to enter the Imagine Cup.

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Finding a Place For Computer Science Education


    While I spend a lot of time, some of it laying awake at night, thinking about the state of pre-collegiate computer science education it seems like many more people are thinking about it lately. We can argue that everyone needs computer science education (Why Johnny Can't Program: A New Medium Requires A New Literacy) or that not everyone needs computer science education (Should Johnny Learn to Program?) but I think most of us would agree that access to computer science education is important. We need students to have the option to learn computer science. We have to expose them to the field as something they may want to learn more about and even make a career in. The problem is that most students in the US do not have that option. With only about 2,000 schools offering Advanced Placement Computer Science and only slightly more high schools offering other real computer science education I estimate that students at 20,000 US high schools (out of about 26,000) have no opportunity to learn computer science in a rigorous CS course taught by a qualified teacher.

    How do we fix this? Well it is not easy. A recent CSTA Chapter organizing meeting did some brainstorming on this recently (Recruiting: Lessons for a CSTA Chapter) and is still looking for answers. Leigh Ann Sudol, who was one of the co-authors of the ACM report Running on Empty: The Failure to Teach K-12 Computer Science in the Digital Age writes in her blog (Why we need systemic change in CS Education) that small measures will not work. They don’t scale.

    It seems like the “answer” most common these days is “Let’s throw up a website.” Put things on the web were everyone can find them and magic will happen. And there are some great web sites out there.

    Now these are all great resources. Go visit them. Use the resources that are there. Good stuff. But enough? Ah, no. The problem is not individuals but as several people have pointed out a system that does not enable people. The largest stumbling block is that computer science is outside the core of courses that students are encouraged and rewarded to take. (This is where Computing in the Core comes in BTW) Not only is computer science not offered regularly even when it is offered it does not count towards graduation requirements. This makes it hard for students to fit it into their schedules and discourages guidance departments to suggest it to students. In fact I hear story after story of students and their parents almost literally fighting with guidance departments to get into computer science courses.

    Some states do allow students to count CS, usually just APCS though, towards graduation requirements. Nine states allow it to count as a science course and one allows it as a math requirement. Of course this is a political football. Math and science departments do not want to see enrollment in their traditional math and science courses go down as students take computer science. And among computer science fans we get into fights over if computer science is really a science! Or is it really a math? What would should argue, in my opinion, is that it doesn’t matter if CS is a real math or a real science but that it fills the same sorts of need, of gaps in a liberal arts education, that “real” math and “real” science fills. Students should be allowed to count it as fulfilling a graduation requirement. Let the students decide if it takes the place of a math or a science. Let’s face it parts of computer science lean both ways!

    In the long run there lowest practice level for starting to effect change is the state level. Moving a school or a district is very difficult in there days of no child left untested behind to change graduation requirements or do anything that is not on a standardized test. The national level would be even better as it makes moving the states easier. There are steps in that direction. There is a Computer Science Education Act which has been introduced in the United States Congress to strengthen K-12 computer science education. This is a step in the right direction but just because we (well ACM, CSTA and others) were about to get Congress to approve Computer Science Education Week doesn’t mean getting a bill like this passed is a sure thing. It is something we need to push for.

    BTW There is also the problem of teacher preparation. As Garth Flint writes in his blog (Teacher prep for CS) there are not really many – perhaps not any – universities that are really teaching people to be computer science teachers. Mark Guzdial writes in the CACM blog (Computer Science Needs Education Schools. Desperately.) that we need schools of education to help us. CS departments are not the right places to learn how to teach CS. This is in part a chicken and egg problem though. With few trained and qualified teachers it is easy for schools to say “without teachers we can’t offer the course” and for schools of education to say “with no schools offering the courses there is no point in training teachers.” Some how we have to grow both supply of and demand for teachers at the same time. No easy task.

Page 3 of 7 (21 items) 12345»