Archive for April 29, 2010

Is higher education a racket like Wall Street?

This is a real concern.  I once heard a legislative aid say, “After we clean up health care, we’re going to clean up higher ed.”  We’d best be able to defend ourselves.

On Wednesday, in a speech to state regulators who oversee for-profit colleges, the chief architect of the Education Department’s strategy, Robert Shireman, offered a much more critical assessment of the private sector institutions than he has in his public comments to date, according to accounts given by several people who were in the room. He compared the institutions repeatedly to the Wall Street firms whose behavior led to the financial meltdown and called them out individually, one by one, for the vast and quickly increasing sums of federal student aid money they are drawing down.

via News: Comparing Higher Ed to Wall Street – Inside Higher Ed.

April 29, 2010 at 10:52 am 4 comments

Education as a (Software) Engineering Endeavor

This article in USA Today hit home for me, since it touches on a frequent accusation about Media Computation: That we’re getting higher success rates simply by lowering standards.  Give kids higher grades and they won’t fail — that’s easy!  After peer-reviewed, published studies at four schools, with four very different grading standards and multiple teachers, I don’t think that’s a reasonable accusation.  The issue is still there, of course — to what standards do we hold students, especially non-majors?  I think that that’s Alan’s point in his recent guest blog post here.  When I read the USA Today piece, I get the sense that this teacher was really doing the right things to achieve the standards as she perceived them.  The problem arose because of a difference in perceived standards between her and the administration.

Dominique G. Homberger won’t apologize for setting high expectations for her students. The biology professor at Louisiana State University at Baton Rouge gives brief quizzes at the beginning of every class, to assure attendance and to make sure students are doing the reading. On her tests, she doesn’t use a curve, as she believes that students must achieve mastery of the subject matter, not just achieve more mastery than the worst students in the course. For multiple choice questions, she gives 10 possible answers, not the expected 4, as she doesn’t want students to get very far with guessing.

Students in introductory biology don’t need to worry about meeting her standards anymore. LSU removed her from teaching, mid-semester, and raised the grades of students in the class. In so doing, the university’s administration has set off a debate about grade inflation, due process and a professor’s right to set standards in her own course.

via LSU removes tough professor, raises students’ grades – USATODAY.com.

I’ve been thinking a lot lately about how Education is really a kind of Engineering, and in particular, it shares a lot in common with Software Engineering.  The suggestion is that some of the better practices of Software Engineering could be used to improve Education.   When I was a graduate student, I took classes from Bob Kozma, famous (in part) for his public debate with Richard Clark on the role of media in learning. Bob had all of us read Simon’s Sciences of the Artificial, because we want Education to be a Science of design decisions in learning. We explicitly talked about Education as “Psychology Engineering” — the practice of influencing students’ minds in ways society had deemed appropriate.  That definition is not for the squeamish, but it’s not new either.  Plato’s Republic defined education as enculturation, turning children into citizens who hold dear the social values.  Of course, we want students to be innovative, free-thinkers — because that’s what our society values and needs, in a technological, capitalist democracy.

Education and Software Engineering both have a problem of way too many degrees of freedom.  Software is pure mind-stuff.  Engineering of that Software requires discipline and limitations on how freely we allow software expression.  A brilliant developer could produce a fabulous piece of software that is completely illegible to anyone else and thus non-maintainable — and Software Engineers would reject that great piece of software as bad Engineering, and appropriately so.  On the other side, people learn ALL the time.  The challenge of Education is to get them to learn what society values, what we need citizens to know and value.  A great Teacher might inspire students to go forth and learn such that they are wonderful citizens in 20 years, but we might not be able to see what he or she was doing in the classroom now that was achieving that goal.  What if held Educators to the same standards and discipline as Software Engineers?

So let’s play out this analogy a little:

Unit-Testing: The USA Today article highlights a problem of ill-defined, non-testable requirements that we often have in education.  What if we practiced unit-testing in education, to match the best practice in software engineering?  Before you teach something, you define the test for it, and get everyone to agree that the goal and test are reasonable.  I do argue with one point in the USA Today piece.  I don’t think professors have the right to set their own standards for their classroom.  We all do, and in upper-level, terminal courses, it may not matter.  But if we have a curriculum, a system, then the pieces have to fit together, so we all have to agree to the standards.

Peer Review: In my College, we have resisted peer review of teaching, on the “Great and Inspiring Teacher” argument.  A great teacher influences students such that they don’t realize for a year or more what they learned.  The great teacher inspires students to go forth and learn on their on.  That feels to me like the argument protecting the brilliant-but-illegible software developer.  Just how many of those are there?  And how many lousy and unproductive teachers/developers are you protecting because you’re not checking?

What if we defined teaching as “practice that clearly and verifiability can be expected to result in the desired learning outcome for a reasonably prepared set of students.” Then we can go and watch a teacher, and ask for the reasonable rationale for why that set of interventions should result in the desired learning outcome.  We’d have to be prepared to fire a teacher who, while inspiring, was not visibly, verifiably achieving the desired learning outcomes.

Model-checking: I am not an eager proponent of proving programs correct, because I am a fan of Perlis, Lipton, and DeMillo and I don’t believe it will work.  However, I am a big fan of testing and verifying software (and design decisions, more generally), and in that sense, I like the idea of model checking.  I am beginning to believe that the most important factor in the success of cognitive tutors is that they require the developer/instructor to define the instructional model to a level of detail where each step can be checked for reasonableness.  “Could a student learn this small step in this amount of time/effort?  Could all these steps be assembled in such a way to achieve the overall goal?”

In general Education, we don’t make these checks, so we create curricula that have great big ballooning “Magic Happens Here” bubbles in them.  “CS1 is really hard, so we don’t expect too much there, so CS2 doesn’t get well-prepared students, and then there are a bunch of electives — and then our students program the Space Shuttle!”  We do want CS1 to be simple (but not “too simple”), and do we want our students to go on to great things, but we ought to check if we can really get from here to there. James Duderstadt’s Millenium Center at the University of Michigan did such an analysis of Engineering Education and came to the conclusion that an undergraduate degree didn’t cut it.  Duderstadt argues that we need Engineers to get a four-year liberal arts degree, and then an Engineering Professional degree.  That may be what we need for Computing, too. We should do the analysis! We should build a model and check it.  Can we get from here to there in the steps we have allowed ourselves?  If not, then change the expected outcomes, change the initial state (more K-12 CS, anyone?), or change the amount of time (number of steps) we give ourselves.

Education is a form of Engineering.  There’s no question about that.  The question is whether we adopt Engineering practices in Education.  I’m arguing that Software Engineering has some practices and affinities with Education that make sense.

April 29, 2010 at 9:59 am 14 comments


Enter your email address to follow this blog and receive notifications of new posts by email.

Join 6,197 other followers

Feeds

Recent Posts

Blog Stats

  • 1,637,882 hits
April 2010
M T W T F S S
« Mar   May »
 1234
567891011
12131415161718
19202122232425
2627282930  

CS Teaching Tips