Teaching to Learn


Peter Mbira demonstrates the Arduino at a LakeHub meetup.
Peter Mbari demonstrates the Arduino at a LakeHub meetup.  LakeHub is forming some independent workshop groups, where people can learn a variety of skills in an informal setting.

Lately I’ve been spending a lot of time in matatus – the stupidly overpacked minibuses that travel between cities in Kenya – visiting students I’m working with in a few far-flung communities.  I’m trying out ideas around teaching students to become self-motivated learners, through the medium of teaching computer programming.  (Hypothesis: People who know how to learn independently can go further than those who need teachers.  Evidence: Pretty much every effective tech person I’ve met in Kenya.)  Programming, of course, is a very hands-on skill, one that you mainly learn by doing it, a lot.  So in these three locations, I’ve been giving some basic overviews and leaving the students with resources to work on, and coming back after a week or two to see what kind of progress they’ve made.

The question is how to transform students into self-guided learners, given the cultural expectations of lecture-based, teacher-driven classrooms.  With the math camps, we’ve been attacking the ‘lecture-based’ part of the formula, by introducing fairly radical beyond-curriculum activity-based methods.  But the camps are still ultimately teacher-designed and teacher-driven.  In the math camp context, we’re seeking to change attitudes around math education, so that’s fine.  But there’s a real question of what happens after the camp ends, and the students go back to the same-old same-old.  How can we best foster and facilitate independent learning amongst our students?

Continue reading

Moving Beyond Standardized Testing

Students at the Maseno Math Camp in 2012 copy down puzzles to work on in their free time.
Students at the Maseno Math Camp in 2012 copy down puzzles to work on in their free time.

Consider the KCSE, the national exam taken by hundreds of thousands of Kenyan graduating secondary students each year. It is the sole determinant of whether a student will go to university, which in turn determines whether the student has a chance at a good job and a healthy life. Because of its centrality, the secondary school system in Kenya is almost entirely oriented around trying to cram information from the exam syllabus into student’s heads.

But this approach has two major problems. The first is that no one can force a student to learn. The second is that a single standardized test gives the illusion of a fixed body of knowledge that people need to understand in order to succeed in life. This simply doesn’t reflect the world we live in. The economy of Kenya and the world in general is changing at an incredible rate, and those graduating under the current academic regime simply aren’t getting the skills to compete. And worse, even if the curriculum were to drastically change, it would quickly be obsoleted again. How do we address this?

Continue reading

Towards a Sage Problem Server

Layout of resources for a hypothetical Sage problem server.
Layout of resources for a hypothetical Sage problem server.Django

Problem Statement.

I’ve finally been making some progress towards building a Sage-based ‘problem server,’ as we were talking about way back in January.  It’s clear that the tools developed have a wide scope of use.  Before building something that gives open questions and reacts in really interesting ways to input, a stepping-stone is to build something that serves up individual math problems and asks for an answer.  In some sense, such things are already done by Webwork and Moodle with varying degrees of success, but building a nice implementation would allow some new directions.

Now, I should stress that I think WeBWorK is pretty awesome, and has some really transformative potential.  I’ve been encouraging its use in Kenya, and it’s been extremely interesting seeing it used in service courses in Strathmore University and now Maseno.  These are places with ever-increasing class sizes, and a well-designed online homework tool promises to greatly improve student comprehension of the course material.  The big database of existing problems in WeBWorK is also really helpful; there are over 26,000 problems in the Open Problem Library.  There are three issues with WeBWorK that a new implementation could/should address:

  1. Modularity: WeBWorK is a pretty monolithic piece of software.  It includes three essential components: a problem server, a problem database, and a learner management system (LMS).  Basically, these should be busted out into three genuinely separate components.  Breaking out the problem server allows easy integration into Moodle or another well-thought-out LMS, or else integration directly into things like online textbooks.
  2. Modernization: The WeBWorK codebase was mainly developed some time ago, and new versions are slow to come out.  (The last stable release is from December, 2010, over two years ago.)  The interface is also decidedly…  Clunky.  There’s a natural question of how one could improve the system using modern AJAX-type tools.  Better interactivity will lead to a much better user experience.  Things like one-button signup with Google or Facebook accounts is one thing I can think of off the top of my head that would greatly improve the user experience.
  3. Ease of Writing Problems:  Currently, WeBWorK problems are written in a highly idiomatic version of Perl.  I was interested in writing problems a couple years ago and got the feeling that it was, in the end, a bit of a black art.  The documentation is a bit scant, and most mathematical objects have their own idiomatic libraries.  Switching to a python/sage framework would mean that writing problems should become much easier: Sage already recognizes all of these mathematical structures.  And if the problem definitions are in python, we’re really using the same syntax as our Sage work.  This should make it much, much simpler to pick up a bit of Sage and then start writing problems.

Continue reading

Amagoro Library Visit

Playing Set with primary students.
Playing Set with some primary school students at the new Amagoro library.

This weekend I took another trip out to Amagoro to meet see the new Amagoro library, opened by a joint effort of Kiwimbi Global and the Amagoro city council.  The library opened on February 15th, while I was on a trip to Nairobi, and by all accounts has seen heavy traffic ever since.

I set the groundwork to leave a couple Raspberry Pi computers at the library some time after elections; right now they’re still working on getting electricity together.  In the meantime I left a Pi with Jevin, the tech-guy for the Elewana project, so that he can become familiar with the system.

I also met with three groups of primary school students, about to take their final exams before going on to secondary school.  With all of the groups, I talked about how computers work, and the importance of math and computers to all of the various future occupations they were dreaming about, ranging from nurses to engineers.  (One students wants to be a ‘computer wizard’ when he grows up!)  Hopefully planting some Pi’s with interesting resources will help some of the students get where they want to be.

Continue reading

Algebraic Structures Online Materials

One of my big projects for this term is to build a bunch of free electronic materials for Maseno e-learning’s Algebraic Structures course. We gave this class last term; it’s a second-year undergraduate course here, and we really need to use it as an opportunity to introduce the students to mathematical reasoning. They’re getting a bit of that from the online foundations of mathematics course, but here we have a chance to fully develop a course and make sure they’re engaging with the mathematics in a creative way.  At the same time, I want the materials to be useful in the outside world; if I’m putting all this work in, I want to avoid the m

I’m building a textbook (using some cool new-wave web technologies: html5+jquery+javascript+xml), which you can access here.  Right now it’s a bit of a text dump, but I’m making a bunch of video content, and plan to include Sage Interacts as well!  Here’s the first video I’ve finished.  (There are about four more already recorded, but my microphone battery died before I could do the audio tracks.)  The video style is obviously owing a lot to Vi Hart.

Continue reading

Looking Forward

Most projects seem to involve staring quizzically at a computer screen.

As the term gets underway, I’m working on a number of projects trying to address some of the issues that I discussed in the Looking Backwards post…  I was chatting with Thomas Mawora yesterday, listed off all the ongoing projects I could think of, and came up with five.  (Or up to seven, depending on how you count it…)  It’s a lot, but luckily there’s a good deal of overlap, so work in one place often helps another project move forward.  If you’re going to spread yourself thin, you might as well be maximally efficient about it.

Continue reading

Online Problem Solving – Problem Statement

A nice problem: Given n lines in general position, how many regions do they break the plane into? How many are bounded, and how many are unbounded? (In this picture, there are six lines, 10 bounded regions, and 12 unbounded regions.)  What if we work in 3 dimensions, with planes instead of lines? Can we generalize to k dimensional space?

One of the big discussions we’ve (myself, David Stern, Toni and Alan Beardon, and occasionally David Minga) been having these last couple weeks is, ‘How can we develop online materials that do a good job of teaching problem solving?’  In a lot of ways, a good problem solving course is one of the most important parts of an education in mathematics.  One gains a flexibility in approaching problems well beyond trying to reproduce an answer on an exam, and encounters numerous techniques and ideas that will motivate later coursework which might otherwise seem really dull.  (Linear algebra comes to mind: it’s stupidly important, but can seem really obtuse if you encounter it in a void.)  General problem solving skills also translate to a wide variety of contexts outside of mathematics: How do I approach this issue flexibly and adapt it into something I can address with the tools available to me?  Furthermore, can I solve bigger problems with my tools than the one immediately in front of me?

The best solving courses take the form of a conversation between students and teachers.  It’s about developing the skills to get started, to actually act on a problem creatively, rather than reproduce what a teacher tells you.  So a good problem solving course typically focuses on getting the students to actually solve problems, with a relatively small amount of guidance and advice from the instructor.

But this method is heavily reliant on reactive, non-linear instructor interaction.  Generally, it’s agreed that this is at the core of why it’s hard to put high-quality math courses on line.  How do you foster creativity with a computer interaction?

Continue reading

Looking Backwards

Playing a local game (something like checkers-meets-tic-tac-toe) with a friend from Kibera. You can see Dominion: Prosperity is also on the table…

The term has come to a close, finishing the first half of my Fulbright year, which provides a bit of time to look back over what I’ve done, what’s worked well, and what’s worked less well.  A big part of the plan for the first time was to try out the existing structures, get to know what’s going on in the university, and figure out interesting ways forward that might work in the local context.  There were a lot of failures this term, places where things didn’t work as expected, where it’s clear that things need to happen differently next time around.  So if this post sounds bleak in some ways, rest assured that I’m already working hard on projects for next term that will try to get around these difficulties in one way or another.

  • Teaching Face-to-Face

    Despite my mandate to work on electronic education, I felt it was very important to teach a face-to-face course in order to better understand the undergraduate students and their context.  To that end, I co-taught Foundations of Mathematics with David Stern.

    The course went reasonably well, but has definitely made me consider the degree of work necessary to really address the problems in the education system. We were working with first-year students, which is ideal in many ways. It’s easier to do something revolutionary with first-years, simply because they haven’t lowered their expectations too far yet. (This was true even when I was teaching at the University of California; the first-years are a lot more open to non-traditional techniques, simply because they expect University to be different from secondary.) Continue reading

Computational Problem Solving Workshop

Portrait of Euler, shamelessly lifted from Project Euler.

One of the things that we believe strongly is that there needs to be better use of computers in math education, in part because computers play such a huge role in how math is actually done these days.

To that end, I ran a one-day workshop on mathematical problem solving using Sage today. The idea is to run this workshop as a kind of seminar series next term, once we get back from South Africa, and today served nicely as a dress-rehearsal. The students who came today were all in first-years in computer science; it should be interesting to see how things play out with math students next term, who haven’t necessarily been exposed to the programming side of things as much.

Here’s how things went down:

Continue reading