In continuation..
Starting with Mark Guzdial’s blog on What Changes CS Education? to Alfred Thompson’s post on What does it take to make a change in CS education? there has been an interesting thread of conversation going on. Because the semester is in full swing and I have a LARGE machine learning homework out right now I originally started just a comment on Alfred’s blog. Well.. For any of you who know me, I am very passionate about this subject and after writing a few paragraphs figured it was getting too long for just a comment.
So to start, here is my comment on Alfred’s blog, with more, new comments below:
::sigh::
Forgive me for being an education purist, but I think this is part of the reason why we are in the pickle that we are in as a discipline. Relying on tools or the industry to define the introductory experience, and even more so the novice experience is .. well.. crazy? ineffective? ridiculous? not sure what the right word is.
When the biology department tries to decide what biology knowledge makes someone a literate citizen they don’t look at what professional biologists are doing. They don’t look at what nifty tools are available for teaching biology. They decide what it should mean for your average American to have an understanding of biology. They define a set of broad standards that would allow a knowledgeable teacher to implement those standards in a classroom in one of many different ways, potentially using one or more of the tools available to them. Then they train the teachers. To BOTH have an understanding of biology AND an understanding of what it means to teach biology - both to be familiar with the standard curriculum and the pedagogical nature of the course.
How is this different from what we do? We argue about what the right “foundation” is. College CS people argue about why AP is not good, but the AP program is one of the few programs with a solid curriculum, that does TEACHER TRAINING. While there are great things being done in a few places, its often hard to find something (outside of AP workshops) that a new/novice teacher can hold on to, and take back to their administrator as “standard”.
We need to stop arguing about language, tools, etc. and decide what it means for the AVERAGE American to be literate in computing. (notice the computing - not the computer science, its a bigger question than just CS) Then we need to write a set of standards, or agree that the ACM’s standards are good. There needs to be consensus in the message coming out from our community. Then there are the economics to consider. How are schools going to pay for this?
and now for the new part
It really does boil down to economics in the long run. We can train 10,000 new teachers, and ACM can publish excellent standards that are used by every CS teacher in schools, but unless we somehow make it cost beneficial or cost neutral to schools - those 10,000 teachers (for the most part) will not find a job unless they are filling a retiring teachers spot. There are two types of economics going on here. First, the money issue, how in the world are schools going to afford to pay for a new teacher for a course that is not required, and currently doesn’t exist in the school so there is no demand for it?
Secondly, the economics of the student’s schedule. Students’ days are currently full. Any high school teacher can tell you that. The days we remember of study halls in high school or “free periods” are a thing of the past. In the competitive college market students have taken to PACKING their schedule with as much as the possibly can, with the largest percentage of AP classes they can to try and get into the best schools with the best scholarships. As of right now, college admissions officers give no more weight to AP CS than any other ELECTIVE AP. So why take CS, when you can take a language, art, music or one of any other AP courses? And if it is not an AP course why take it when an AP course has more weight on your transcript?
So, there is no money to hire teachers for this elective course. And there is no student demand for the course. How does picking a better tool fix the economic problem we are facing? How does writing a better textbook fix this? Yes, it may change what is happening in colleges, or in a few established HS programs - but there are bigger issues here.
I have some ideas about this, but to save time I’m going to leave this with the questions. (Machine Learning - homework calls) But as we consider whats going to make the LARGE changes, in the location that we all agree is where it needs to be (K12), the economics are undeniable and unavoidable. Lets keep those in mind too.
September 20th, 2009 at 8:59 am
The economics also includes the part where someone who is genuinely literate in computing has choices. That person can make a nice, six figure income without the nuisance of getting a credential.
There is also have the problem of school administrators needing to focus on core courses rather than electives. Mandating a year of computing for a student to graduate high school moves things from “nice to have” to “need to have.” I suspect this will also be essential to effect widespread change.
PS: I agree with Guzdial that SICP should be given an award. Or lots of awards. If there has been a better text written on any subject, please let me know as I’d like to see it. (The reason it is awesome is that it’s not about Scheme, it’s about awesome problems.)
September 20th, 2009 at 10:03 am
1. You write: “We need to stop arguing about language, tools, etc. and decide what it means for the AVERAGE American to be literate in computing. (notice the computing - not the computer science, its a bigger question than just CS) Then we need to write a set of standards, or agree that the ACM’s standards are good. There needs to be consensus in the message coming out from our community.” Are we the right community to decide this question? Aren’t we just a bit prejudiced — over-zealous about our own discipline? Sure, we have the right to put in our two cents, but should that be accepted without question/challenge?
2. What do you personally believe it means for the AVERAGE American to be literate in computing? Most good schools are already teaching computer/computing fluency, aren’t they? What more does EVERY educated American need?
Regards
Dave
September 20th, 2009 at 4:35 pm
[…] Ann Sudol wrote a response to Alfred which reflected her frustration with the where the influences are coming from. “We need to stop arguing about language, tools, etc. and decide what it means for the […]
September 20th, 2009 at 8:23 pm
I like your response to AT’s blog, and I have a viewpoint that comes right from the trenches. As much as I have worked with partners like Western Digital and Carnegie Mellon, my instincts as a teacher tend to trump everything else when it comes to deciding which tools to use in the classroom. Students rarely think about these large philosophical issues of CS education. Instead, they take a CS class if it interests them and if they are aware of it. Sometimes they take it for the same reason you get kids in any elective class: it fit into their schedule. Far too many factors go into determining which students end up in CS classes at our high school, and the tools I choose are just a small part of the picture. Much more influential are the skills and availability of a teacher to get in there every day and teach. Our district is one of the largest in Colorado, and yet we have only three teachers teaching high school CS right now, with the other two having to give more than half their time to non-CS classes. We can not underestimate the role economics plays in this.
September 20th, 2009 at 10:05 pm
@David:
The definition of computer literacy in education circles started out different than it’s been for the past 20 years. When computers were first introduced into schools for students to use, the operating definition of computer literacy was to learn the basic functions of a computer (what the different parts were, what their function was, how to boot one up, etc.), and to learn a little about how to program one. Since the late 1980s it’s changed to learning how to do word processing, and use a database, and spreadsheet–like today. Programming was still taught widely for another 10 years or so, largely because there was a voracious demand in industry for programmers, but it was no longer seen as necessary for computer literacy. I think that was a mistake.
I’ve been able to avert security threats in my own use of computers partly because I understand what programming logic is capable of, and I understand some things about how the internet/web works. I’ve observed how things that I thought would enable me to avoid security threats can in fact lead me into a security trap. For example, I used to take for granted that the address bar in a web browser would reflect the actual URL of a site. Several years ago it was found that the address bar in IE could be hacked to give a fake URL. In other words, a user could click on a link, which would then load some Javascript in the browser, which would direct the browser to a malicious site, meanwhile showing the user a URL of “http://www.amazon.com”. Admonitions like, “Make sure the address bar is showing the address of a site you trust” would utterly fail to keep users safe in this scenario. I believe this security hole has since been fixed, but it made me more wary of what my browser is telling me. It helped me realize that the browser is just a piece of software like anything else, with the same potential to lead users astray if manipulated by a skilled con artist.
Sometime later it was revealed that some DNSes had a security hole that would allow hackers to break in and remap a site’s domain address to a different IP address. So even the act of typing in a URL to a trusted site into a browser could theoretically route you to a malicious site. This is something that would probably fool me, because I don’t look at the IP addresses of every site I visit. I wouldn’t want to remember all of them, either. I would have to look for something in the fake site that looked a little off. If I did I would think to examine the site further, and how I got there.
Thinking in terms of what would make computer users more self-sufficient in avoiding security threats might be a basis for, say at the high school level, a rethinking of computer literacy. To me, this would involve learning some programming, just to get the idea of what’s going on in a piece of software, and an exploration of what makes a computer network like the internet work.
In a broader sense computing can give us an awareness of systems that are part of our lives, seeing how the implications of one action can lead to effects in another part of a system, perhaps something that would otherwise be unanticipated. Mathematics is often seen as useful for developing logical thinking skills even though most of the students exposed to it may never use the specific mathematics they’re taught. I think knowledge of computing can have similar effects. It develops logic, but also gives us the capability to look at wider issues. It might be useful for CS academics to talk to scientists (I’m thinking physicists, biologists, chemists, etc.) and see how they’re using computers, what they see as their constructive role, and their limitations. They could give an “outsiders” perspective on the field. I think we all know what it’s been like to be too deep inside an issue/problem to see it from a broader view, which would help illuminate a problem we’re trying to solve.
September 22nd, 2009 at 9:57 am
CS’s lack of direction at the introductory level may stem in part from its relative youth as compared to other disciplines. You contrast the state of CS education to that of biology. But fields such as biology are mature. The introductory material is well established. The state of the art in biology is way, way beyond the grasp of ordinary people.
The same could be said of physics, astronomy, engineering, and the like. Those fields have the additional advantage of being immediately relevant to the lives of intro students. We can simply look around and *see* biology, physics, chemistry, and astronomy happening right before us! So the intro material seeks to explain physical phenomenon in terms that the average person can understand.
One aspect of the problem is that computing isn’t readily seen, heard, or felt. Most of it is in our heads in the form of mathematics. Consequently, CS doesn’t seek to explain computing phenomenon — we (humans) created all of it. CS seeks to invent new computations. We, as CS educators, tend to be dazzled by the latest inventions, whether they be hardware or software, because that’s what our field is all about.
In order for our field to mature, we need to take a moment to answer the question: what is computation? If we can answer that, I think we’ll be well on our way.
September 28th, 2009 at 11:53 am
This is a cross posting on this issue first made in Mark Guzdial’s blog.
Barry Brown wrote:
>Such a curriculum exists! Have you heard of How to Design Programs and TeachScheme?
Sure. And these folks deserve lots of credit for energy, focus, etc., and a few good ideas. I haven’t seen the next generation of the IDE that you mentioned (but would like to).
It is always easier to praise than to give a really measured criticism, so I’ll bypass here what I think are the deficiencies of this approach.
I think Ann Sudol’s comments and analogies to Biology are directly to the point. What should it mean for a national curriculum to have “general biological literacy” as a goal for all students? To me, this is exactly the question to be asked about those subjects the society deems important enough to be taken out of “electives” and put into the much harder arena of teaching and learning where there may not be much initial interest and predispositions.
We can make analogies to “big deals” like reading, writing, literature, etc., and “lesser deals” such as learning to drive a car.
As she says, it’s not about what professionals do here that is the issue, but about the thresholds of fluency required to “be in the real conversation”, to “sit in the band”, etc., to “play the sport”, etc., rather than do the “air guitar”, “Guitar Hero” or “Fantasy Football” versions of these.
A key notion about biology is that it is neither about its terms nor about the 6 or so kinds of atoms that are the bricks for life. Similarly, I posit that computing is *not* about *data and the functions that manipulate them*.
One perspective to take on various curricula that have lots of work (and often quite a bit of the worker’s identities to the point of religious zeal) invested in a particular approach, is to compare it to the history of Pascal.
In my opinion, this was one of the biggest dead-ends and distracters in the pedagogy of computing. And the timing of it was even more unfortunate — most of the 4000 4 year institutions were just starting to jump on the computing bandwagon (despite there being only a few hundreds of real computer scientists at the time).
I think Pascal made its way largely because (a) Klaus Wirth can really write documentation, (b) it was very easy to implement (c) most people who were looking for something to teach computing with were very unsophisticated about computing and where it was going.
I think (c) is still the huge factor today, and this makes (a) and (b) carry much more danger than they should.
So, we can imagine that the combination of easy availability, popularity out in the world, and pre-done materials that take teachers off the hook, will again carry the day.
To go back to the analogy (and real parallels) with Biology, it’s hard to imagine that more than a few 8th or 9th grade bio teachers will have the knowledge and outlook to override text books and canned curricula when this is a good idea. And much harder (for me at least) to imagine this kind of curriculum building from K-12 teachers of computing.
So having great materials and tools and guides, etc., seem to be the most important thing to do, and again we have to give the DrScheme folks real kudos for putting their time and effort where their beliefs are to produce a full set of stuff.
The other analogy I’d like to bring up is in my opinion a really important and (to me) somewhat frightening one. Two pretty opposite poles in general education are “Back to Basics” and “Learn by doing and understanding”.
The Basics faction is well represented by books and materials by E.D. Hirsch and William Bennett. These could hardly be better written for their intended audience of parents and teachers. (I think they are way off and disastrous.)
However, it is much much harder to write materials representing the other perspective, and it is difficult to point to really good screeds which help parents and teachers understand what is really needed and how to go about making this happen. For one thing, the Basics track doesn’t really require parents and teachers to understand the subjects (nor does it require or achieve this with the students). Whereas, the “learning by doing and understanding” does require lots of understanding to happen everywhere.
Another analogy (which could be a little offputting for some) is between religion and science. Do we want students to *believe* modern knowledge, or do we want them to *understand it*?
Best wishes,
Alan
October 6th, 2009 at 7:20 pm
I know this response is way late but now that I’m in the classroom full time I don’t have any time… *sigh* I also now find your posts even more interesting.
The student demand and schedule openings problem is so hard. Appealing to students can mean so many different things — challenging course, easy course, lots of flashy demos, projects — that may or may not fit an ideal vision of what computing education should be. I’m overwhelmed by how difficult of a balancing act this is as I try to get a new program under way.
I’m finding myself falling into the “what tools, what materials” trap a lot, unfortunately. There’s just so little time to think about overarching questions and skills when you teach all day and plan all night.