What would a CS School of One look like?

November 20, 2009 at 2:25 pm 7 comments

Each day, students in the School of One are given a unique lesson plan — a “daily playlist” — tailored to their learning style and rate of progress that includes a mix of virtual tutoring, in-class instruction and educational video games.

via The School of One – The 50 Best Inventions of 2009 – TIME.

If one wanted to do this for an introductory computer science course, what would we do?  What variables do we have available to tailor computing instruction to the individual student?  For example, do we know anything about learning styles for CS?

Here’s a particular version of that question that says something about the state of computing education: How do you help the student needing remediation?  If you have a student not doing well, what options do you have to help that student learn and catch up?

My sense is: Not many.  Most of our instructional repertoire in introductory computer science consists of material that students read (textbooks, PowerPoint slides), lecture sessions, and having students practice in front of an IDE.  What other options do we have?

  • Tutoring sessions, particularly with peer-led team learning, could be added to support students who are falling behind.  Essentially, the variable here is “More teacher time.”
  • Changing the pace, though the answer for remediation isn’t obvious.  Would you give the students more time per programming assignment?  Fewer assignments? Smaller programming assignments?  More but smaller?  Since we know that lower-performing students take more time per assignment, it’s not clear if it’s more help to give them more time, or make the assignments smaller (easier?), but maybe more of them to provide more practice.
  • We could provide students with visualizations, but most of the results I’ve seen suggest that visualizations help the high-ability students to learn more, but they actually hurt low-ability students.
  • We have a set of tools that we know are easier to get started with (e.g., Scratch, Alice, Etoys), but they may not be much help once a student has started with a more traditional course and language (Python, Java, C++) and now needs help.  I guess that, if a student was struggling with (say) IF statements in C++, you might use IF statements in Alice to help teach the concept. However, the overhead of learning Alice mid-course might be greater than the benefit, and might really frustrate the student (e.g., “I’m trying to understand C++! Why does learning Alice help me with that?!?”).
  • There are some tools like JEROO and iList that look like the languages that students are study and have helped students.  We could use more tools like these.

In other disciplines, there are remediation options. For disciplines from English to Chemistry, there are Cliff notes, study guides, educational software, and instructional videos.  Some of these exist for CS, but there’s not much.  For most subjects, you can always fall back on re-learning the prerequisites. For example, if you’re having trouble with high school mathematics, there are lots of K-8 mathematics materials that one can fall back on.  We don’t have that bench strength that other disciplines enjoy.  CS instruction in high schools doesn’t look that different from CS instruction in colleges, in terms of materials and methods used.

I think that this is another example of how our educational practices in CS are aimed at the top half of the students.  The problem is that if you aim for the top half, you lose the bottom half.  However, if we aimed for the bottom half, everyone would learn, even if the top half were not as challenged.  Yes, we’d prefer to challenge everyone.  But thinking about a CS School of One has me thinking about how we would change how we teach to address the bottom half of students.

Entry filed under: Uncategorized. Tags: , .

How would you know if you’re broadening participation? iList: An intelligent tutor for linked lists

7 Comments Add your own

  • 1. Jeff Graham  |  November 20, 2009 at 5:48 pm

    It might be pretty expensive to teach to the bottom half. Say the bottom half can go half as fast, then you just added a course to your major requirements (cs 1 in two pieces). Suppose they all survive the second half of cs 1…Now what about cs 2? When does the bottom half get up to speed? Does the whole curriculum need to be doubled? Or halved?

    • 2. Mark Guzdial  |  November 20, 2009 at 5:53 pm

      You may very well be right, Jeff. It’s worth exploring the options, though.
      – Your suggestion assumes that the only variable that we can manipulate to provide for the bottom half is time. Could we change our methods?
      – Or, maybe we don’t take more time, but cut out some of the fluff of what we teach. Advanced classes sometimes take just as much time as the remedial versions, but cover more content. We might be able to teach to the bottom half by covering less content with better methods.
      – Maybe latter classes would go faster if students understood the earlier content better.

      • 3. Jeff Graham  |  November 25, 2009 at 2:50 pm

        The last time I tuaght CS1 I cut about a third of the material out (knowing I would pay for it later in Data Structures) that didn’t seem to be enough cut out. We’ve decided that we might need an additional course inserted somewhere, but we haven’t decided where to put it or how to work out the scheduling. I favor putting it at the beginning and making an all out effort to get them to understand functions, even if it takes 10 weeks. That seems to be where our students get hung up the worst.

  • 4. Joseph Palmour  |  November 21, 2009 at 12:04 am

    The following quote runs counter to my experiences as a high school CS teacher:

    “We could provide students with visualizations, but most of the results I’ve seen suggest that visualizations help the high-ability students to learn more, but they actually hurt low-ability students.”

    Perhaps I’m thinking of visualizations in a different way than you are, but visualizations seem to be the tool that the lower-ability students need in order to make progress with difficult topics, but a tool that slows down the process for the high-ability students. For example, object diagrams seem to be necessary for my weaker students when having them write an equals method in Java, but they create boredom for the high-ability students, whose visualization skills are so good that they don’t need the help of an object diagram.

    Could you point to the results that lead you to believe visualizations hurt the low-ability student?

    • 5. Mark Guzdial  |  November 21, 2009 at 9:16 am

      The best paper I know in this field is the meta-study of algorithm visualization effectiveness by Chris Hundhausen and John Stasko. They wrote a version of this study as a chapter in Sally Fincher and Marion Petre’s book “Computer Science Education.” You can find references at http://www.cc.gatech.edu/gvu/softviz/publs/publs.html

      • 6. Joseph Palmour  |  November 22, 2009 at 10:13 am

        Thanks for the reference! Based on the following quote, it looks like we need more tools like iList and my students need less of me drawing diagrams at the board: “Our results suggest that algorithm visualizations are educationally effective insofar as they enable students to construct their own understandings of algorithms through a process of active learning.”

  • 7. Primary education  |  November 23, 2009 at 7:03 am

    Then primary Pataskala of any child is there house and his mother and then rest of other things. The Education means in it is an art and science whose learn any act or experience that has a formative effect on the mind, character or physical ability of an individual.


Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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 10,184 other followers


Recent Posts

Blog Stats

  • 2,039,343 hits
November 2009

CS Teaching Tips

%d bloggers like this: