Getting it right: Collaboration vs. cheating

April 19, 2010 at 10:29 am 11 comments

I am proud of the Georgia Tech College of Computing administration of the undergraduate program this morning.  In the new PCWorld article on cheating in computer science classes, Cedric Stallworth, Assistant Dean for Undergraduate Enrollment sets the right tone.

The article isn’t great — it starts out with a false claim that CS undergraduates are at an all time high (they’re up, but not at 2000/2001 levels).  Then the article has quotes from several instructors at top CS departments:

… says the introductory computer science courses require students to code their own programs, while higher-level courses allow for more teamwork. “We want them to learn the mechanics first, and then open up the world of collaboration,” he adds.

via Why Computer Science Students Cheat – PCWorld.

That’s exactly backwards, according to the cognitive science. You start out with motivating circumstances and low cognitive load practice, and then move on to more complex activities. Pair programming is one of the most successful techniques for improving learning and engagement in CS1!

The article goes on to point out that industry wants more collaboration, and Georgia Tech is trying to encourage more collaboration and more learning:

“In the real world, people write code in teams where they are given pieces of a project to work on,” Foote says. “The academic world should be mapping onto the real world…They shouldn’t be handing out assignments where people are coding on their own.”

To encourage collaboration, Georgia Tech changed its approach to cheating in its introductory computer science courses in 2007….”Students sign a collaboration agreement,” explains Cedric Stallworth, assistant dean for Undergraduate Enrollment at Georgia Tech’s College of Computing. “We realize that computing is one of the subjects that is best learned in a group. If students are using somebody else’s code and are learning from it, that’s all right.”

To ensure that the students are mastering the material, Georgia Tech requires them to give an oral demonstration of how their software works for one of their teaching assistants. “We worry less about catching cheaters. We worry more about properly assessing the student’s skill set,” Stallworth says.

Exactly right!

7U7SZNCCRGPH

Entry filed under: Uncategorized. Tags: , , .

Challenges facing women IT entrepreneurs Pushback on the NYTimes piece: “Stop talking, start coding”

11 Comments Add your own

  • 1. Alan Kay  |  April 19, 2010 at 11:00 am

    Hi Mark

    This is one of those partially true suppositions that masks the most important points (and partly because there is more than one important point to this and many other issues).

    For example, a very good analogy to this is that most musicians spend “a lot-to-most” of their time performing with others, and we therefore conclude we should teach them in groups.

    There’s no question that this is very important for part of one’s musical (and computer) learning. But music (and computing) are not monotheistic, and like many important processes fall outside of our culture’s monotheory points of view and fond hopes.

    A more important part of both disciplines (and of many important disciplines) is “solo slogging”, where the goal is neither to keep up nor to learn how to work and play together, but to actually “build a better brain” via many hours of deep concentration and skill building (and some of these are new thinking skills).

    You don’t learn to play a musical instrument while playing in an orchestra, but you do learn very important things that help you to play. And you don’t learn to play with others when “woodshedding” and slogging, but you do learn many elements of playing your instrument at your own speed, pace, and depth.

    I worry greatly that educational institutions and so many educators seem to be so lacking in reflection on their own fields and on their own learning.

    A really simple example — which one does not have to be in computing, music, math, etc., to experience — is to ask “what processes are needed to be a literate person?”

    The answers to this question — a combination of lessons, solo slogging, reading, understanding, group activities, solo creation, etc. — are very much the same for all developed fields.

    And, it’s not that we don’t want to help learners enter “the real world”, but the crucial point that is missed is that really important learning and teaching processes can take place in academe that the real world is not smart enough to also employ.

    So if they have not been misrepresented, I would worry very much about Messrs Foote and Stallworth being in their current positions of influence.

    Best wishes,

    Alan Kay

    Reply
    • 2. Mark Guzdial  |  April 19, 2010 at 12:23 pm

      Hi Alan,

      I don’t disagree that CS students need to do a lot of solo slogging, as well as the other parts that you’re describing. I suggest that programming assignments as they are today aren’t the place to do that solo slogging.

      Programming assignments (at just about every school I know) are significant pieces of work. Here at Georgia Tech, for our liberal arts majors, the homework assignment in week #3 is typically over 100 lines of code. That’s a complex but often motivating challenge. However, it’s easy for students to get stuck in it, leading to hours and hours of frustration. (There have been several very good ICER papers exploring this theme in recent years, including Matt Jadud’s dissertation work.) Pair programming (and similar techniques) helps students to be motivated by the interesting stuff and get past the frustrating stuff. That’s exactly what Phyllis Blumenfeld et al. were calling for in their paper on Project-Based Learning — scaffold the unimportant stuff, let students focus on the important stuff.

      Musicians don’t start out practicing on a major piece. I see musicians starting out with things like etudes and scales. My son, who has been playing with his school’s orchestra for four years, has a private tutor who carefully picks pieces for him to work on, which will help him focus on the things he needs to learn and doesn’t overwhelm him. If we started pianists out with Stravinsky and Beethoven, they’d give up in frustration.

      We don’t do that tailoring in computer science education. We give the whole class a big problem and tell everyone to solve it on their own. If we had CS “scales and etudes,” I would be happy to require students to slog through those on their own. We don’t yet. Until we do, I prefer a model of collaboration to scaffold the task, and interviews to make sure that there is learning. I think we’re developing scales and etudes, with things like Problets and CodingBat and Jeroo. We need more of those, and in greater variety, and a way to choose among them to meet the needs of individual students.

      There’s a whole layer of educational materials that are missing from computing education practice, a layer that would be appropriate for solo-slogging. Programming assignments as they are today are not.

      Cheers!
      Mark

      P.S. Foote is CEO of an IT firm, commenting from industry. Stallworth is our assistant dean.

      Reply
      • 3. Alan Kay  |  April 19, 2010 at 12:46 pm

        Hi Mark,

        To continue the musical analogies …

        Let’s assume that your son is in a good music learning process.

        We’ve got three aspects (and there might be a fourth). We’ve got the orchestra, the private tutor, and what your son does on his own. The private tutor will probably see your son once or sometimes twice a week for a hour or so, and I think this is a really important part of the process that is missing in most schooling K-16 (maybe even further for many).

        I’ll happy to bet that the tutor is actually giving your son a careful mixture of real music by real composers with a few etudes and scales on the side. (And I’ll bet some of the pieces are indeed by Bach, Mozart, and Beethoven — who all wrote considerable material to be learned by beginners).

        The tricky deal in music (and I think in computing also) is to have the technique be the servant of the Art, not the master. The key thing in learning an art form is to feel the art and to be motivated to gain more technique to more strongly participate in the Art.

        (The possible 4th part of music learning, which is too often neglected, is to help the learner come up with their own musical expressions through the two related but very different processes of composition and improvisation. This was quite standard until the end of the 19th century.)

        My notion here is that what we need most of all — and they do exist — are the little beginning pieces by real “composers” in computing, and only secondarily some of the “etude and scale” equivalents.

        The trick, I think, is what form to “give” these beginning pieces. I don’t know the answer to this, but I might try something like a pseudocode rendering of a bug-free “piece”, and then have the students (individually) try to implement them in some decent computer language.

        A clever curriculum might have as a second stage the making of a system from the individual pieces, and this is where the collaborative processes and thinking might start.

        Cheers,

        Alan

        P.S. I’m not surprised that Foote is from industry ….

        Reply
        • 4. Mark Guzdial  |  April 19, 2010 at 12:57 pm

          Hi Alan,

          I like your 3-4 aspects quite a bit! You’re right that we don’t do anything in computing education about “little beginning pieces by real ‘composers.'” It’s exactly that kind of thing that I’d like to see more of. Your 4th aspect is a required part of today’s programming assignments. Few programming assignments involve practice on a bit of something, like reading a larger piece and adding on a component to it. Rather, almost all programming assignments in CS1 are “debugging a blank sheet of paper.” That’s important to learn, agreed. I don’t think it’s what comes first.

          I think we’re in agreement. We want group efforts, individually-tailored help, solo-slogging, and individual expression — your four aspects. We want students to read “real composers” music/computing. We don’t have all those components in computing education today. What we have today is mostly solo-slogging at individual expression, without any group support or individual tutoring. That leads to frustration and that frustration makes it easier for students to rationalize cheating.

          Cheers,
          Mark

          Reply
  • 5. Alan Kay  |  April 19, 2010 at 1:07 pm

    Hi Mark

    David Harel’s “Algorithmics” book uses pseudocode to explain things. I don’t think I would take an algorithm centered approach myself, but here is at least an example of a master CSer providing readable small pieces of stuff he thinks are interesting.

    Cheers,

    Alan

    Reply
  • 6. Alan Kay  |  April 19, 2010 at 2:21 pm

    Hi Mark

    David Harel’s “Algorithmics” book uses pseudocode to explain things.

    I don’t think I would take an algorithm centered approach myself, but here is at least an example of a master CSer providing readable small pieces of stuff he thinks are interesting.

    Cheers,

    Alan

    Reply
  • 7. Garth  |  April 19, 2010 at 4:24 pm

    “Who is doing how much” is the problem I have with collaborative work. I teach high school so the motivations can be a bit different than college level. I still teach the kids in a collaborative environment but I have to keep an eye on who is working on the project and who is just breathing. Luckily the classes are small and all work is done in class so I can see who is doing what. Grading can get a bit warm and fuzzy. I have a couple of kids who could not explain the code if their life depended on it but constantly make contributions with the little they do know. If they were grades on their independent ability they would fail and never take another computer class in their life. So I take the approach that they are a high school sophomore boy (the thinking hormones have not kicked in at that age in males), there is a lot of time for improvement, they can spell “if” and “then” and if I pass them they may take CS next year when their IQ has doubled. Two of my best students (junior boys) are excellent independently, but as a team they are scary amazing. My other best student (junior girl) is brilliant and works well socially as a part of a team but being part a team usually holds her abilities in check. Her team mates usually sit there with their mouths agape while she explains what she is doing and why. Grading her team mates is very difficult. I believe collaborative programming is the best way to teach but caution must be taken that the slow kids just do not get left in the dust and the sharp kids do not get burdened in such a way than they do not have a chance to learn at their best speed. Ain’t this job fun?

    Reply
  • 8. Joe  |  April 20, 2010 at 6:39 pm

    The article does not state that Computer Science majors are at the highest level ever, it says that enrollment in the intro classes are at their highest level. We are experiencing that here at Mississippi State because electrical and computer engineers take our CS1 and CS2 classes (and the EE and CPE programs are experiencing increases in students). We are also picking up several students that are in biological engineering because the students know how important programming will be in their research.

    Joe

    Reply
  • 9. Mark Miller  |  April 29, 2010 at 7:06 pm

    The honor policy that’s described in the article sounds like what I had when I took CS: You can discuss a method for solving a problem, but don’t share code.

    I was struck by one of the professors saying that freshmen think of programs “as math proofs” in that there is only one answer, and so that’s why they cheat. There are often multiple math proofs for the same truth, so his analogy was totally wrong. I found it difficult to reconcile this statement with what the article ended with:

    “Computer science professors do not think that cheating is a result of students being unprepared to take introductory-level courses.”

    If students think that there’s only one way to write a program that solves a problem (or that there is only one math proof for any theorem for that matter), they are unprepared.

    Reply
  • […] essay discusses the challenge of educating computer science students on writing professional quality […]

    Reply
  • […] struck with the close correlation between trust and inequality.  One of our rampant problems is cheating.  I don’t know any multinational studies of cheating.  Do students cheat less in countries […]

    Reply

Leave a reply to Garth Cancel reply

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 11.4K other subscribers

Feeds

Recent Posts

Blog Stats

  • 2,094,152 hits
April 2010
M T W T F S S
 1234
567891011
12131415161718
19202122232425
2627282930  

CS Teaching Tips