## Mad science in Nyanza?

The picture at the left is a prototype voting machine built by Maxwell Collins, a guy in a small town in Western Kenya. He graduated some months ago from secondary school, but didn’t score high enough on the Kenyan national exam (KCSE) to qualify for government assistance in covering post-secondary costs. He’s an excellent example of the kind of talent that slips through the cracks of Kenya’s education system.

To convince you a bit of this, let’s have a look at the machine. It’s been built entirely out of recycled parts, taken from dead televisions, cars, and whatever else could be found. As far as I can tell, Maxwell learned electronics entirely on his own. You can’t see it in the picture, but the machine has an electronic locking system – powered by a nine-volt battery – which reacts to some touch-sensitive metal bits, which, when swiped int he right order, causes a metal arm to release the top of the case.

The machine itself has the base function of collecting and tallying votes. It can handle two candidates at a time; a robotic light sensor (driven by a converted CD-rom) registers your vote when the candidate of our choice is lit by some LED’s. To give some security, your hand is stamped as you vote with an ultraviolet ink; before you are allowed to vote, your hand is scanned for the presence of this ink. Additionally, each voter is to be given a voter chit which is punched and rendered unusable during the voting process. Maxwell has also built in a voice detection system to allow voting for the disabled. And more! He’s apparently been working ont he project for three years now.

## Towards a Sage Problem Server

### 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.

## Bahir Dar Research, and a Return to Kenya

The math group in Bahir Dar was incredibly hospitable, and, as mentioned in the previous post, has some really interesting outreach projects going on. They have a couple-few research groups getting started, one working on fluid dynamics, and one working on lattice theory (as in posets, not $mathbb{Z}$-modules). One of the really inspiring things about the visit was that, in addition to having an awesome and enthusiastic staff, they are also receiving quite reasonable support from the University (and by extension, the government) for advancing their research and outreach projects. People involved in project work can apply to have reduced teaching loads, giving them equal pay but plenty of time to advance the projects. Meanwhile, the university is hiring more lecturers to make up the extra time; presumably this will end up looking like a much more flexible version of the research universities in the US, which have a two-tiered system of research professors and lecturers. This allows them to reward people with good ideas and plans with extra time, rather than making the decision at-or-before hiring time; it’s an interesting idea, and probably much more appropriate to the local context than the US system. It reaffirms my feeling that until African countries will continue to lag in science until the governments get serious about funding the universities for research: Here we have an example of awesome university support which is fuelling great projects. Another positive development is that Bahir Dar sounds like it’s starting to put caps on the number of courses people can teach; this keeps people from taking on unrealistic teaching loads in order to get a bigger pay-check, a real problem in Kenya. Of course, such a move also needs to be paired with decent pay for lecturers!

One of thing I heard repeatedly at Bahir Dar was that the research programs need more mentorship. They are about to start offering a PhD program in math, and only have a few PhD holders to start from. This means that there is a danger of the research programs being a bit too over-specialized, especially when combined with the fact that it’s very difficult for people to get out for conferences to share ideas. As a result there’s a real need for interaction with vagabond mathematicians like myself. I think the next time I have a few months free, I’m going to strongly consider going and giving some research-oriented course(s) for the department there. If you’re a vagabond mathematician, I think it would be really cool for you to do so, too! Ethiopia’s really lovely, and it would be an excellent way to get involved in an exciting environment.

## Bahir Dar Math Outreach Projects

I’m currently visiting Bahir Dar University, in Ethiopia.  It was a natural place to visit while Kenya is out-of-session for their elections.  Abebe Regassa, a lecturer here, came to Maseno last August for the maths camp, and will be co-facilitating the first Ethiopian maths camp this July with Berie Getie.

The math department here is very exciting to be in contact with.  The department is large (now at about 50 staff), has a mandate to get research groups going, and has given Abebe and Berie reduced teaching loads to coordinate outreach activities.  They’re actually already doing a fantastic job, by the accounts I’ve heard thus far.

One outreach project is the Outreach Program for Talented Students.  This project has run for two years, funded thus far by the Gelfand Family Charitable Trust, though it will be moving to Univesity funding soon. The project puts on a science-and-technology camp for 450 elite students.  This year, there will be 300 students from schools around Bahir Dar, and 150 from all over the country. The camp runs for 40 days(!) and uses a team-teaching model (one university lecturer, one secondary teacher, and a lab assistant for each class of 30 students). After 15 days of common curriculum, the camp is split into two streams, one focused on general science topics, and the other focused on ICT and electronics. At the end, 45 students are selected from the 450 to continue working with the Bahir Dar university staff on interesting projects.  (There’s a 62-page report on the program here.)

## Amagoro Library Visit

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.

## Video Workflow

Mike Zabrocki asked for some kind of run-down of how I’m building the videos for the algebraic structures notes. So here’s a quick run-down! There are currently two finished and five more in the pipe.

## 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.

## Looking Forward

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.

## Online Problem Solving – Problem Statement

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?

## Pi+Sage

After a great deal of effort, I’ve finally finished compiling Sage 5.5 on the Raspberry Pi.  It seems to be basically functional; it starts and adds 2+2 successfully.  (So already it’s doing better than Trurl’s Machine.)  I’m currently running the full test suite, which could very well take a few days.  We’ll see when it gets there.  For now, here’s a link to a binary; drop me a line if you have trouble with it.  To get started, extract it with:

`tar -xvpf sage-5.5-pi.tar.bz2`

Then cd into the resulting directory and run “./sage” from the command line, or set up a link which runs “[full-path-to-sage]/sage -notebook()]”, which will automatically open a sage notebook in a browser.

If you’re curious about building sage yourself, there are details after the jump.  It requires a bit of blood and something like 3 days of processor time, with somewhere south of 3 days of additional time used by the swap memory.