Education as a (Software) Engineering Endeavor

April 29, 2010 at 9:59 am 14 comments

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 –

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.

Entry filed under: Uncategorized. Tags: , , , .

ACM Ed Board Meeting in Doha, Qatar, 1-4 May 2010 Is higher education a racket like Wall Street?

14 Comments Add your own

  • 1. Gary Litvin  |  April 29, 2010 at 11:32 am

    This might work… as long as we hook them up at graduation for automatic updates, every second Tuesday of the month.

    “The challenge of Education is to get them to learn what society values, what we need citizens to know and value.”

    Hmm… I thought this was called indoctrination.

    • 2. Mark Guzdial  |  April 29, 2010 at 1:42 pm

      “Indoctrination …is often distinguished from education by the fact that the indoctrinated person is expected not to question or critically examine the doctrine they have learned.” ( No, we value questioning, so we encourage questioning. What we teach is a social decision to support enculturation and survival/success of the society.

      • 3. Mark Miller  |  April 29, 2010 at 6:20 pm

        I kind of reacted to the line “learn what society values”, but you clarified it with “what we need citizens to know and value.” What society values and what we need citizens to know and value are not necessarily the same thing. And even what we think we need citizens to know and value may not be what we actually need. Personally I like Alan Kay’s notion of teaching better outlooks, which provide some constraints to our meanderings, but importantly don’t lead us down the garden path to an outcome that’s assumed to be good.

        • 4. Mark Guzdial  |  April 30, 2010 at 8:11 am

          My point (on which I clearly went astray) in that part of the blog is to point out that education is a designed artifact, where the design is driven by some set of requirements, goals, and desires. I believe that that set is defined by society, to further society’s purposes, but it could be seen as the output of some accrediting agency or the University and faculty itself. Doesn’t matter — the point is that Education is an Engineering endeavor, because it is constructing a designed artifact, an education.

      • 5. Gary Litvin  |  April 30, 2010 at 10:38 am

        The view of education as a “designed artifact” would be true if you were educating robots. Education is no more an artifact than a student is.

        Having grown up in a totalitarian country, naturally I am supersensitive to the idea that society should shape people to meet its “requirements, goals, and desires.” Whose exactly? I am more comfortable with the idea that people shape their society to meet their diverse “requirements, goals, and desires.” I think education is an interchange between a teacher and students in which the teacher shares his knowledge and expertise and students are interested in learning to the best of their ability and for their own reasons. It would be very hard to “design” such interchange in any meaningful way, not is it desirable. The “society,” of couse, sets minimal norms and requirements for people who want to engage in certain activities; so many people have a goal to meet these norms and get “certified,” formally or informally, for professions or trades, and educators provide ways to do that. In a dynamic society a good education also enables at least some of the people to assess, challenge, and modify the established norms. Survival /success of the society is not a social decision — it is its capacity to change and to educate people who act as catalists for change.

        • 6. Mark Guzdial  |  April 30, 2010 at 2:09 pm

          Aren’t grades, especially failing grades, an indication that we do have standards, objectives, and learning goals that we are holding students to? Our educational interventions are explicitly designed to facilitate students reaching these objectives, and if students do not reach the minimal standards, we fail them.

          New citizens are required to learn about the history and norms of this country. Every student in the United States is required to take courses in Civics. Aren’t we, then, requiring members of the democracy to understand what is expected of citizens in a democracy? Shouldn’t citizens know what they should expect of their representatives, and demand that of them? We explicitly decide what we want students to study in order to be successful citizens. Why else do we emphasize STEM education but cancel Music and Foreign Language programs? These are explicit decisions by a society to increase the success of its citizens, and thus, in the society.

          The issue of whether the objectives are set by the society or more locally (by the community, the school, or the teacher) isn’t central to my argument. The point about education as a design activity is. If you do not see yourself designing your instruction, Gary, how do you decide what to do in the classroom? How do you decide what to include in your curriculum, and what to leave out, and what to ask students to do on assignments, and what to teach in other ways? Aren’t those all design decisions?

      • 7. Mark Miller  |  May 1, 2010 at 7:01 pm

        @Mark Guzdial:

        The question I have about grades is what do they really represent? One school might teach history by having students read original sources, consider and critically examine them, and demonstrate that they can do this by writing essays. Another might teach it out of a textbook and use fill-in-the-bubble multiple choice tests for assessment. Yet both systems give out grades A-F. As you well know there is the issue of grade inflation and grading on a curve. Grading in general, with or without inflation or curves, normalizes how students are rated relative to their group, not according to what they actually understand relative to the subject itself. National programs and standardized testing have been developed in an attempt to calibrate the idea of proficiency back to the subject itself, though I’m increasingly questioning whether this method of assessment is such a good idea. The goal that drove the idea is noble, in my judgment, but I’m thinking the idea itself is misguided in some subject areas.

        I want to emphasize that none of this is to say that grading is necessarily a bad idea. Grades, however, are mistakenly taken to mean, at least within our educational systems, that students have or have not become well educated. This is a one-off analogy, but it makes a point: We have had a long history of bestowing high school diplomas on students who can’t read them.

        Society has learned to be skeptical of such rating systems. Universities insist on not just judging candidates by their high school grades, but also by a separate standardized test score that they deem matches their criteria. Employers and institutions judge that the rank of summa cum laude from a state university is not the same as someone who graduated with the same rank from an Ivy League school. When employers look to hire someone, they don’t just look at a person’s degree and rank, sight unseen, and say, “Let’s hire that person!” They interview them to get a sense of who that person is and whether they’d be a good fit for their goals.

        As to the values in education, with some exceptions I think education is better viewed as a psychological activity in which what the mind naturally perceives is challenged and questioned so that an artificial mental perception is developed which enables a more qualitative examination of what’s going on around someone, and within themselves. Ideally this happens both with students and with teachers.

        In the sense that methods can be developed for carrying this out, I agree with the engineering perspective, but as I’ve heard others say, good engineering is backed by science. Sure we should value subject areas that schools teach, but what I think gets ignored many times is the question, “What educational values drive the teaching of the subjects themselves?” As some software engineers know (many apparently don’t), it’s possible to engineer something while still missing the point.

  • […] Education as a (Software) Engineering Endeavor « Computing … […]

  • 9. Alfred Thompson  |  April 29, 2010 at 7:37 pm

    One has to know what society values in order to question it. In general though schools teach values in hopes that students will accept them. That is the reason some oppose private schools in the k-12 space – they disapprove of what those schools are teaching as values. Of course many parents use those schools because they oppose the values that are (or that the percieve as being taught) in the public schools.

  • […] Education as a (Software) Engineering Endeavor « Computing … […]

  • […] Read the original here: Education as a (Software) Engineering Endeavor « Computing … […]

  • […] This post was mentioned on Twitter by School Money, Matt Hole. Matt Hole said: Education as a (Software) Engineering Endeavor « Computing …: I've been thinking a lot lately about how Educatio… […]

  • 13. Aaron Lanterman  |  May 2, 2010 at 2:48 am

    When teaching upper level undergrad and graduate courses, I never publish a per-percentage grade breakdown ahead of time. This largely has to due with my inability to judge the difficulty level of the tests I write, especially in complicated subjects. I’ve gotten better at this over time, but too often I’ve come up with questions that – in retrospect – I realize are questions that I and other professors would find challenging and interesting, but which might send newcomers to the material into apoplexy. Also, when grading, in assigning partial credit, I like to be able to assign relative points for different errors based on their relative degrees of egregiousness, without having to worry about how that relates to an A, a B, a C, etc.

    In ECE2025: Introduction to Signal Processing, this gets tricky since we do have a set scale of what percent translates into what letter grades, so I have to be very careful to adjust the difficulty of the test to match that and also make sure the professors grading the test (usually each recitation professor grades one question – it’s a group effort) keep that in mind.

    For my senior level classes, I care about what the students *do.* I want them to be *doing* things, not taking tests about doing things. I make them program; I made them design and build circuits. For these classes, getting an A is typically fairly simple – you just need to do all the work.

    I’ve yet to have an entire class take me up on that…

  • […] Education as a (Software) Engineering Endeavor « Computing … […]


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Trackback this post  |  Subscribe to the comments via RSS Feed

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

Join 9,038 other followers


Recent Posts

Blog Stats

  • 2,014,398 hits
April 2010

CS Teaching Tips

%d bloggers like this: