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

October, 2010

  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Should Johnny Learn to Program?

    • 29 Comments

    Last week I shared a link on Facebook - Why Johnny Can't Program: A New Medium Requires A New Literacy – that makes that case that everyone should learn how to program.  Philip A DesAutels, my good friend and one of the smartest people I know,  replied in Facebook with a long well-though out reply. With his permission I copied it below as a sort of guest post. I would love replies either to the origional article or to Philip’s reply. Who is right? Philip or Douglas Rushkoff? Should everyone learn to program and if so how much? Or should we only push a few into programming? [EDIT: The ACM and CSTA have a new report out about computer science education in the US. I blog about it here.]

    Philip wrote:

    I truly understand the place of CS in HS and so, I feel the need to rail against this article... Let's start with a line that sums up the central premise - "Digital tools are not like rakes, steam engines, or even automobiles that we can drive with little understanding of how they work." Ummm, hello Douglas, first each of these technologies - hand tools, steam engines and automobiles transformed humanity, each had a very dedicated training program for professionals and users and each was encapsulated to the point where it the technology (or its meta-equivalent - is now so well hidden that only a few experts need the professional design skills while the mass of users can apply the technology with some technical skills and deep domain skills. Let me explain.

    Rakes, aka hand tools - I am trained at the nation's premier craft school, the North Bennet Street School, in the art of using hand tools to build wood structures. I was in a class of 12 Preservation Carpenters who know how the make (not buy) moulding, who can build a timber frame and who can carve a Corinthian Column capital with an appropriate acanthus spinosus leaf detail. And if I continued in that profession, I would have been in a minority of carpenters, practicing an art form. Our chief competition and the reason most in the 'real carpentry' trade can't charge someone the $80 an hour is what I would term modernization... aka the Big Box and the lumber yard. Sally homeowner can run to Ikea and buy cabinets that she can put up herself, she can go to home depot and buy wood flooring that is prefinished and a sink that requires no open flame to install. Why would she call me unless she lives in a period house and wants to preserve an art form? Technology has encapsulated my skills (learned in two hard years of apprenticeship) and made them available to the masses. Is there still a need for real carpenters, not just assemblers as I call what most 'pros' and homeowners are (intentionally derogatorily since I am a real carpenter...)? You bet! But we do not have nor need tens of thousands of students studying the fine art of carpentry in its Vetruvian classical form. We need students studying modern building codes and sustainable building practices for the modern age. If they can't shoot a moulding by hand or tell you the appropriate ratios for moulding in a room, does it matter? NO... If these modern carpentry students can't use that encapsulated technology to build modern structures that are safe, energy efficient and stylish then we and they have a problem. Even if a few very skilled in the carpentry profession are creating the encapsulated components, there won't be anybody to apply them.

    I could make the same ranting point about steam engines - not many of us firing up the coal boiler to make steam to open the garage doors today...or the automobile - when was the last time YOU even checked you oil let alone adjusted the timing or valves... The points I make here are that 1.) Technology encapsulates, 2.) Encapsulated technology requires domain skills combined with a new type of technical skill to apply encapsulated technologies to modern problems. And.. herein lies the problem with the argument presented in this article and the call for more CS programs in High School. To what end? Is this like a call for more carpenters to learn how to make mouldings by hand? More HVAC professionals to learn how engines are designed? I THINK SO.

    There are students for whom programming is a desired skill. They want to be developers. Great for them. The giant hole in our workforce isn't entry level developers who can hash out c code and write a compiler from scratch. It is for people with combined skills who can APPLY encapsulated technology (lots thanks to companies has been encapsulated) to specific domains.

    So I offer up a different call. In high school, teach students how to apply technology. Teach them how technology fits with their domain of interest. Teach them how to use the components not how to build them. Those students that want to become more technical can choose to learn down the stack to real engineering (aka CS, CE, EE) or up the stack to become expert in technical domain applications (IS, CIS, Project Management, Bioinformatics).

    There are FAR FAR FAR more jobs out there today for someone with the technical skills to build a SharePoint portal, or light up a CRM instance or build a bioinformatics database than there are for someone who can build the next Python compiler. Let's stop trying to train the mass of high school students to become preservation carpenters, and instead make them very good contractors.



  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    What are you using?

    • 4 Comments

    I blog about a lot of resources here and I’m curious about what sorts of things teachers are finding useful. In some ways I am shooting arrows in the air with no idea where they come down. In other words, what things are people finding useful? What courses and age groups are people using the things I blog about? Is anyone out there? OK I know there are people out there. I get statistics (raw numbers with no detail) that tell me people are reading. And from time to time I get an email or a message from the contact form that tells me someone is using something. But generally I don’t know how much is actually being used.

    Yesterday Garth Flint (Loyola Sacred Heart High School, Missoula Catholic Schools in Montana) left a comment on my post about Small Basic curriculum that he will be using those presentations in his intro programming course. In fact he is going to directly use it to put the students to work.As he said in part:

    The scheme is to have the kids critique the PowerPoint slides and the curriculum overall.  Of course that means they will have to learn the SB along with writing comments about the curriculum.

    That’s a pretty interesting way to use the resources. And I think it will work out well for him. On a personal note though it let me know that someone was following the link, finding something potentially useful and trying it out. It’s the sort of thing that really helps me keep going. So if I could ask a personal favor or you? If you have found something I have blogged about useful and used it in a class or used it to create or make a change to an existing class would you please leave me a little comment here?

    Just a few lines about what resource, where/how you used or are using it and if you feel like going public your name and school. Of course if you want to write more that would be great as well.The more information I have the better the job I can do about sharing information and resources that are genuinely useful to teachers. Your comments may just give someone else a good idea as well. Thanks in advance.



  • Computer Science Teacher - Thoughts and Information from Alfred Thompson

    Finding a Place For Computer Science Education

    • 4 Comments

    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 1 of 7 (21 items) 12345»