Gas station without pumps

2013 July 1

How can we get more programming taught in high schools?

In the comments on Mark Guzdial’s post Why AP CS:Principles is a good thing: Responding to Gas Station without Pumps (which is a response to my post Millions for a fairly useless new test), an interesting question has arisen: What should a CS teacher know?

I commented

I agree that figuring out what content an intro CS teacher needs to know is important, both in depth and in breadth. If we set the bar too high, there will be no CS teachers in public schools (essentially the current situation). If we set the bar too low, no CS will be taught and we’ll have to undo the damage once the students get to college.

CS as a field is still struggling with how to teach beginners (it is pretty clear that some students learn, but it is not clear to me how much this correlates with what teachers do—but that’s your [that is, Mark Guzdial’s] area of expertise, not mine).

Defining the core competencies that a beginning instructor of beginning students needs seems to me quite difficult. I suppose it starts with deciding what the students need to learn, then figuring out what the teacher needs to be able to do to get them there. I further suppose that this is the intent of the CS Principles course—figuring out the minimal set of essential skills we want out of a first course.

Garth commented

In most schools the CS teacher will also be teaching something else; Math, Science, Art or whatever so the requirements have to be realistic. I think CS Ed would almost have to be a minor, there are just not enough jobs out there yet for a teacher with only a CS Ed major.

So Garth has been thinking of it in terms of new teachers only, it seems. I suspect that we’d get more CS teachers more quickly by summer training for existing math and physics teachers than by trying to train new teachers in ed schools.

Physics teachers could be attracted to programming by a computational modeling curriculum, like the one used in the Matter and Interactions textbook.  Vpython provides a fairly simple entry point for physics teachers and students to write simulations of the sorts useful for AP Physics (both C: Mechanics and B).  I think that a computation-based text for Physics B still needs to be written, as Matter and Interactions definitely requires calculus after the first couple of weeks (or is there already an algebra-based physics book using something like Vpython?).  Once physics teachers become proficient in Vpython, it is not a big stretch for them to teach the CS Principles course (they could even continue to use Vpython for it).

Math teachers could be attracted to programming by summer workshops based around Project Euler, which provides a series of math challenges to be solved by programming (currently 434 such challenges).  Providing them with instruction in a suitable programming language (Python is a good choice for Project Euler) so that they can tackle the math problems would give them the experience programming needed before they would consider teaching programming.  Teaching them to program in Geogebra, free software for doing geometry and algebra presentations and apps, would also be valuable—both for improving their programming skills and for improving their current math courses.

The key point of both these ideas is that we could attract physics and math teachers to programming in order to become better teachers in their current fields.  That they would also become competent to teach beginning CS courses is a bonus.  Even if this approach failed to produce any new CS courses, we would still have improved physics and math teaching.  Given how addictive programming is, I think that we would also find these teachers becoming a force within their schools for creating programming courses, avoiding the current Catch-22: that there are no CS courses because there are no CS teachers, and no CS teachers because there are no courses.

I’ve not addressed in this post the initial question from the comments: what do beginning CS teachers need to know?  One implication of my proposal is that CS teachers need to be able to program.  They don’t need to be fantastically good programmers, nor do they need to know many different programming languages, but they need to be able to program and debug in the language of instruction.  They need to be able to model debugging, and they need to be able to assist students who are stuck (without taking over for the student).  They need to have personally done every assignment they assign, to figure out any ambiguities in the wording of the assignment and to make sure that it is doable with the tools and techniques that the students have been given in their class.

I think that may be enough—I don’t think that beginning CS teachers need to know software development techniques and the intricacies of the development environments and libraries beyond what is essential for the assignments.  They may choose to learn more (some math teachers might enjoy asymptotic analysis of algorithms, for example, and some physics teachers might get into programming robots), but it isn’t necessary for teaching an intro course.

I don’t think we can set the bar any lower: a teacher who can’t program can’t teach programming effectively, and programming should be at the heart of any intro CS course.

2011 June 12

Train math teachers better

Filed under: Uncategorized — gasstationwithoutpumps @ 21:17
Tags: , , ,
#ds175 - Math Geeks Unite!

Image by dolmansaxlil via Flickr

A recent article in Science argues that the next generation of middle-school and high-school math teachers (some 100,000 of whom are expected to be trained over the next decade) need to have more math content knowledge than is currently standard.

William H. Schmidt, Richard Houang, and Leland S. Cogan.
Preparing Future Math Teachers.
Science 10 June 2011: 1266–1267. DOI:10.1126/science.1193855
(Link to free copy)

They looked at survey results of teacher trainees in 16 countries (the 2010 TEDS-M study) and concluded that

U.S. middle school mathematics teacher preparation does not produce teachers with an internationally competitive level of mathematics knowledge.

The pool of K–12 graduates from which the United States obtains its future teachers is weak compared with their peers internationally.

After the depressing analysis of the current data, they have a suggestion for how to fix things:

The implication given the relatively weak U.S. K–12 mathematics curriculum is that recruitment of future teachers must come from the upper end of the U.S. distribution of mathematics performance in order to be somewhat competitive with high-achieving countries. However, this may not be feasible if current efforts to raise salaries for such individuals are not realized. In addition, the data summarized above also highlight the importance of emphasizing courses in mathematics in the preparation of such teachers.

Personally, I think that the chances of getting teachers’ salaries up to competitive levels with other math-intensive professions is slim—the US public has little respect for teachers and is unlikely to accord them more money or more prestige in the next decade.

Raising the requirements for math knowledge in teacher training is certainly feasible, though perhaps not if we really need to train 100,000 more STEM teachers—the failure rate might get too high and the teacher-training colleges are more interested in pumping out “trained” teachers than in worrying about their actual competence.  The political pressure on universities and colleges to increase 4-year graduation rates, independent of whether the students actually learn anything, also will feed into reluctance to increase the intellectual requirements on future teachers.

I do not mean to bash all math teachers here—I have met several who are quite competent at the math they teach, probably a majority of the math teachers I’ve met.  But the problem of math teachers who are not competent at math is a very real one of long standing, and needs to be addressed in the training of the next generation of teachers.

%d bloggers like this: