The need for feedback to improve undergrad CS teaching

February 15, 2016 at 8:05 am 12 comments

Because of the kind of work that we do in my group at Georgia Tech, we visit a lot of computer science classrooms, recitations, and labs.  Sometimes what we see is counter to what we now know is effective.  Here are two examples from this semester:

  • We see small group recitations, where students sit for 90 minutes and passively listen to a recap of the lecture.  No peer instruction.  We know active learning is better, and we know that it’s even easier to do active learning in small groups.
  • We see intro courses teaching recursion before iteration.  One of the few replicated results in CS Ed is that iteration should precede recursion.  John Anderson and company found that teaching iteration first was better even when teaching Lisp, and Susan Wiedenbeck replicated the result (see blog post).

I can’t really blame these teachers.  How could they know that there is a better way?  How could we make it better?  By what mechanism do we help CS teachers improve?  This is a technology transfer problem.  The research knows a better way. How do we change practice?

I’d argued previously that we should change promotion and tenure requirements to encourage active learning, and received massive pushback.  I don’t think we’ll see that happen anywhere anytime soon.  Teachers don’t want to feel “forced” to teach better.

Instead, what kind of feedback mechanism could we create so that undergraduate teachers learn that they’re not using effective methods?  At my school (and I’m betting at most undergraduate institutions), the only feedback that a teacher gets is from student surveys, course-instructor opinion surveys.  That’s not going to help with this problem.  How could students know that the class would be better with peer instruction?  How could students know that they should have seen iteration before recursion to learn more effectively?

Questions like these have been asked on the SIGCSE-Members list recently. What do you think?  What kinds of effective feedback mechanisms have you seen to improve CS teaching?  How do CS teachers get informed about research on better practices?

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

My Review of K12 CS Ed Framework: A Prelude to a Dagstuhl Seminar on CS Ed Assessment A MediaComp MOOC in Processing

12 Comments Add your own

  • 1. colleen lewis  |  February 15, 2016 at 9:13 am

    One source for disseminating these insights is: 🙂

    Over 30% of our 1200 tips come from CS Ed papers or online resources (like &

    We’re always adding more tips – so if others have research papers we should base tips on – let me know!

  • 2. Bonnie  |  February 15, 2016 at 5:36 pm

    People teach recursion before iteration??? I have never heard of that. Eeek.

    • 3. gasstationwithoutpumps  |  February 15, 2016 at 8:24 pm

      Back when I learned LISP (in the 70s) recursion-first was the MIT way. (Luckily, I had had several years of programming before being subjected to LISP, which was a great language for reasoning about small programs, but terrible one for implementing big programs—at least if you wanted to be able to read and debug the programs.)

      • 4. Mike Zamansky (@zamansky)  |  February 16, 2016 at 9:38 am

        We’ve done it both ways over a number of years and what we’ve found is that recursion first helps w/r to understanding recursion and doesn’t hurt their development in terms of picking up iteration and other concepts while when we’ve done iteration first, our kids have more of a block with recursion.

  • 5. Kevin Sullivan  |  February 16, 2016 at 2:18 pm

    Hi Mark, thanks very much for this. Quick question. On the basis of the Anderson and Wiedenback papers, do you think the science is really settled, and that the results are strong enough to validate the judgement once and for all that, as a matter of computer science curriculum design, iteration should be taught I before recursion?

    I was curious enough to go take a look at the Anderson paper (with the Wiedenback ordered and coming from the library). It looks to me like the actual measurement showed pretty strongly that students are able to learn recursion faster after learning iteration than the other way around, in experiments that first trained and then tested them on a few small programs, where (from knowing no CS) all the learning and testing occurred in periods of just a few hours.

    The results are interesting, but it seems to me to be quite a leap to go (as Keller and Anderson do in their paper) from these relatively narrow cognitive findings to an unqualified prescription for CS curriculum design, and to judgments that colleagues are “wrong” if their teaching doesn’t comport.

    I looked pretty hard and still don’t see a strong argument for making a leap from the narrow cognitive phenomenon in the Anderson paper (which seems solid) to a prescription that would dramatically alter the option set for intro CS education, e.g., by ruling out a functional- first vs an imperative-first approach (iteration requiring the concept of mutable state). It was a good (pair of) experiment(s), but pretty narrow and not geared at, for example, understanding longer-term outcomes, or even whether the differences would wash out (or even reverse) over a period of days or weeks or years.

    I love the increasing emphasis on data-driven validation of learning and curriculum design, but am concerned a bit when fairly narrow (or in other cases, weak) results are interpreted as providing strong bases for highly consequential curriculum design prescriptions and evaluations of professional colleague’s teaching practices.

    • 6. Mark Guzdial  |  February 16, 2016 at 3:51 pm

      There should always be more research. Our existing research evidence suggests iteration-then-recursion. I was talking with Kathi Fisler about these results last night, who also suggested that she felt that a different application context could lead to different results.

      My larger point is that CS teachers should be in these conversations. They should hear about research results and be thinking about the implications for teaching (or whether the experiments are too narrow to be believed, as you suggest). What leads to that happening?

    • 7. Kathi Fisler  |  February 16, 2016 at 5:34 pm

      More specifically, my concern with early recursion studies is that they used problems such as factorial or fibonacci, in which the recursive calls come from seeing the algorithmic structure of a problem in terms of itself. In contrast, consider recursively-defined data, such as a list which is built by pre-pending an element onto a (smaller) list. The datatype itself makes the self-reference evident, so the recursive structure of a function that processes a list follows from the structure of the data. This could impact how students learn and experience recursion (the “How to Design Programs” curriculum starts with structural recursion such as this, with many years of good experience).

      On the iteration side, I increasingly see students who learned iteration through per-element for-loops, rather than for-loops based on index variables. As I understand it from Mark (I’m also still waiting for my library to get me Wiedenback’s paper), her argument was based on the difficulty of the syntax of iteration; simplifying the form of iteration could challenge a syntax-based conclusion.

      Both these reasons convince me that re-validation of earlier results about recursion and iteration need to be revisited or at least rechecked around whether they assumed certain forms of recursion and/or iteration. I don’t know whether these changes matter, but I certainly believe that they _could_.

      • 8. Peter Donaldson  |  February 17, 2016 at 2:54 am

        As a practioner, the lack of replication studies in CS Education research means I usually have to look for clusters of related research results instead. It’s far from ideal but trying to triangulate at least gives me some confidence that the area is worth exploring further. It would be fantastic if we had a greater range of validated (in a CS context) instruments for assessing the impact of particular changes in our practice. I know Brian Dorn has done some work in this area but we need more.

        CS teaching tips is a great resource to dip into but I’d love a practioner focused book on teaching CS. There are some curriculum specific books such as Picturing Programs and your Media Computation work but the PCK is embedded within the particular context and approach. There are also a few books that touch on the research side of this but still need quite a bit of translation by the reader before they are actionable.

        It does mean teaching CS is still an area where significant improvements and discoveries can be made. Let’s hope those results and future ones do find a wider audience.

        • 9. Kevin Sullivan  |  February 17, 2016 at 10:36 pm

          I actually think that replication isn’t the main issue here. It does help, of course, to increase one’s confidence in the validity of a proposition about the way the world works (here how students learn iteration and recursion under certain very specific conditions). The problem is that while the authors here did validate their proposition (by replicating it), they then made an unwarranted leap from that validated but narrow technical finding to a broad and consequential prescription about curriculum design. The science itself is good, but the logic of their argument from that science to the implications for curriculum design is not sound. In addition to concern for validation of scientific findings through replication, we also need to be concerned about validation of arguments from typically narrow technical findings to prescriptions for practice. The furthest I’d be willing to venture with regard to the paper here is to say that it suggests, and provides some evidence, that, at least under some circumstances, order of presentation might matter pedagogically, and the question might warrant further investigation.

  • 10. Kevin Sullivan  |  February 17, 2016 at 11:01 pm

    More broadly, I will take an opportunity to introduce the notion of cyber-social learning systems. These are socio-technical systems that integrate computing with human/social phenomena to greatly & continuously improve the performance of large-scale human/social-intensive systems. My colleagues and I are now looking in particular at (and for the principles that would enable us to build) learning health systems (the original “learning system,” as envisioned by the IOM), learning education systems (which is what we’re talking about here), and learning urban systems. We’ve just launched an open-access, peer reviewed, Wiley Journal of Learning Health Systems ( It’d be great, albeit probably not in this thread on Mark’s blog, to talk about principles for the design and operation of Learning Education Systems (including but certainly not limited to college-level CS).

  • 11. Mark DeLoura (@markdeloura)  |  February 18, 2016 at 2:46 pm

    Thanks for raising this conversation Mark!

  • 12. Leonard C. Klein  |  February 19, 2016 at 11:07 am

    This comment is made from the point of view of a high school teacher. I was a chemistry teacher and went to NSTA conferences and ChemEd conferences as well as the ACS’s chemical education conferences. The number of chemistry teachers who attended was small compared to the total number. Many did not care about how to teach better, they taught as they were comfortable. I would expect that this is true of any content area. So trying to get more folks to understand how to teach better is tough. You first have to convince the teachers that it is important to understand better methods and that there really are better ways to teach. I think this is very important, but I am not all that hopeful that much change will happen. In chem ed I heard the same message for many years and saw little change.


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,012,701 hits
February 2016

CS Teaching Tips

%d bloggers like this: