For context: I write a computer-based assessment system called Numbas, and it’s focused on assessing mathematics. A big part of that assessment involves asking the student to enter …

]]>For context: I write a computer-based assessment system called Numbas, and it’s focused on assessing mathematics. A big part of that assessment involves asking the student to enter an algebraic expression as the answer to a question. How do you decide whether to mark the student’s answer as correct or not? Historically, there have been two approaches, given a representative “correct” expression written by the teacher:

- Put the student’s answer and the correct answer into a canonical form. If their syntax trees are exactly the same, then the student’s answer is the same as the teacher’s. This is the model used by, for example, STACK.
- Identify the variables used in the student’s answer and the teacher’s. Pick a few random numbers as values for those variables, and evaluate both expressions. If they come out to the same number, then the student’s answer is the same as the teacher’s. This is the model used by systems in the CALM line.

The second method looks like a hack: it’s possible to get a false-positive result by luck, and it tells you nothing about the form of the student’s answer. When you’re asking questions about basic algebra, the form is very important: has the student really factorised that quadratic, or have they just retyped the $ax^2+bx+c$ they were given?

By comparison, the first method seems more intellectually honest – it looks deterministic, and it treats the expressions semantically instead of boiling them down to a single number. But it’s really hard to implement: a canonical form that works for *every* equivalent version of an expression is both technically impossible to write, and hard to get a good approximation to. Additionally, while you can inspect the canonicalised version of the student’s expression to see if, for example, the $x^2$ term is present, you will inevitably lose important information about the form of the student’s original answer.

I’ve come to the opinion that the questions *“is the student’s answer equivalent to mine?”* and *“what form is the student’s answer?”* should be considered separately. The first one is almost always enough to decide whether the student’s answer is “correct”, and then the answer to the second can be used to give feedback when the student’s answer isn’t what you expected.

So, since its inception, Numbas has followed the CALM model of using the second method – evaluating over a random selection of points – to mark algebraic expressions. But it hasn’t been able to say anything about the form of the student’s answer, and that’s a big gap. The reason it can’t do that is that I don’t think rearranging into a canonical form is the way to go, because of the drawbacks I described above.

Numbas does have a simplification algorithm hiding inside it, however: since its first release, Numbas has used a very weak pattern-matching algorithm to implement its simplification rules for displayed maths. A pattern is an expression in one or more variables, and a candidate expression matches that pattern if its syntax tree overlaps with that of the pattern, with variable capturing any subtree. For example, the expression `sqrt(3*x)*sqrt(2)`

matches the pattern `sqrt(x)*sqrt(y)`

, with `x=3*x`

and `y=2`

. That’s just about good enough for basic simplification rules, which head towards a canonical form but don’t necessarily get there, but if you want to interpret the meaning of the expression you need something more powerful.

I’ve always thought it would be nice to have an analogue of regular expression pattern matching for syntax trees, to explicitly describe the shapes of trees you’ll accept, and name capturing groups. When marking algebraic expressions, you could get all sorts of information about the form of the student’s answer as it is, instead of trusting to a black-box “simplification” algorithm. I had a bit of a brainwave yesterday, and I’ve got something that looks quite good.

Let’s state what I want from a pattern-matching algorithm:

- The ability to capture named groups from the expression, so I can do things like “get the coefficient of $x^3$, or even “get all the $x$ terms”.
- Take into account the laws of commutativity and associativity, so $x+1$ matches the same things as $1+x$, without any extra effort on my part.
- A “choice” operation, the equivalent of | in a regular expression, so I can say “match either
*this*or*that*“. - A syntax that isn’t completely torturous to write.

I suppose at some point I’ll want some control over whether to use greedy matching, or things like that, but this’ll do for now.

The reason you can’t use string-based regular expressions is that mathematical notation isn’t a regular language: the first hurdle is nested brackets, and on top of that there are the laws of commutativity and associativity to deal with. I’ve come up with an algorithm that looks at expressions as syntax *trees*, and whenever it comes across a commutative operation in the pattern it does the following:

- Find the commuting terms in the pattern, and in the candidate expression, by traversing the tree for as long as you see the commuting operation, and take every subtree underneath those you visited. (Or: suppose the operation is $+$; chop out the contiguous tree of $+$ nodes starting from the root, then each connected component in the remainder is a term of the sum)
- For each term in the candidate expression, compare it with the terms in the pattern that haven’t already been matched. If it matches, capture it in that position.
- If any of the terms in the pattern haven’t been matched, the candidate doesn’t match the pattern.
- For terms in the pattern that capture more than one term in the candidate, collect together all those terms.
- Work out which named capturing groups the captured terms belong to, and return a dictionary of those groups. Each group name should correspond with a single expression tree made up of the terms that matched it, joined together with the commuting operation.

I’ve mentioned named capturing groups but haven’t said how you define them: there’s a new operation `expr;g`

which says that expressions matching `expr`

should be captured in the group named `g`

.

Just adding commutativity and explicitly named capturing groups to my existing pattern-matching algorithm was very useful, but it quickly became clear that I needed more control over what gets matched. I’ll list the commands I’ve added so far, then give a few motivating examples.

`?`

- Match anything
`??`

- Match anything or nothing (optional term)
`expr;g`

- Capture
`expr`

in the group named`g`

. `m_any(expr1,expr2,...)`

- Match any of the expressions
`exprN`

`m_all(expr)`

- Capture all terms matching
`expr`

`m_pm(expr)`

- Capture
`expr`

or`-(expr)`

. `m_not(expr)`

- Match anything
*except*`expr`

`m_uses(name1,name2,...)`

- Match any expression which uses the named variables
`m_commute(expr)`

- Match the terms in
`expr`

in any order, following the laws of commutativity. (Use if you only want to use commutativity in certain places) `m_nothing`

- Match nothing. Useful as an empty term to set up a sum where you want all terms to match one pattern.

(Yes, the `m_whatever(expr)`

syntax is pretty long-winded. I’m quickly running out of sensible symbols to use as operators in JME syntax, so my solution was to invent some new function names which match expressions in different ways. Suggestions for better ways of doing it welcome.)

By the way, there’s an online demo of this system for you to play with.

Suppose you want to get each of the terms in a polynomial. Something like

`m_all(x^?);xs+m_nothing`

is a reasonable start. Except you’d never write `x^1`

, so you need to replace `x^?`

with `m_any(x,x^?)`

to catch either form. And we also need to capture the coefficients, so we need to add a factor of `m_all(??)`

to the $x$ terms. And finally, the coefficients can be either positive or negative, so wrap the whole lot in `m_pm( )`

, and we end up with

`m_all(m_pm(m_all(??)*m_any(x,x^?)));xs+m_nothing`

This ends up matching all terms with a factor of a power of $x$ somewhere in them, i.e. things like this:

`x - x + 2x - x*2 + (a+1)x + x^2 + 2x^3 + (1+2)x^(n+1)`

You could then consider each of those terms separately and get the coefficients and degrees:

`m_pm(m_all(??);coefficient * m_any(x,x^?;degree))`

The next example is really simple but it’s sort of what prompted this whole thing. Capture either side of an equation separately:

`?;left = ?;right`

If this matches, that confirms the student wrote an equation, but it doesn’t say any more than that. Testing that the equation holds (under whatever assumptions you give) is not a job for pattern-matching, but you might want to ask some more questions about the form of the answer. For instance: are all the $x$ terms collected on one side?

`m_uses(x);xside = m_not(m_uses(x));otherside`

The `m_uses(x)`

command matches anything which has a variable `x`

inside it. And `m_not( )`

ensures that there are no $x$s on the other side. Because equality is a commutative relation, this pattern matches no matter which side the $x$ terms are on.

Something that Numbas/CALM has always struggled with is quadratics. For a question like “factorise the quadratic $ax^2+bx+c$, the form of the student’s answer is obviously a lot more important than the function it describes. CALM’s hacky solution was to add restrictions on the student’s answer considered as a string, for example by requiring brackets and forbidding the exponentiation operator. It should be immediately obvious that that doesn’t really do the job: `(a*x*x+b*x+c)`

passes those criteria. So, here’s a pattern that matches a factorised quadratic:

`(m_pm(??*x);a+?;b) * (m_pm(??*x);c+?;d)`

Here you want to be fairly restrictive about the form of the expression, but there are still quite a few “correct” answers – the student could swap the signs in both factors, or swap the orders of the $x$ terms and the constants. You might want to also insist that the coefficients are numbers:

`(m_pm(m_number*x);a+m_number;b)*(m_pm(m_number*x);c+m_number;d)`

I’ve made it so `m_number*x`

*does* match `x`

, for convenience.

My last example captures terms of the form $a \cdot x^ny^m$:

`m_all( m_any( ??x, ??y, ??x^??, ??y^??, m_any(x,x^??)*m_any(y,y^??)*?? ) );terms + m_all(??;rest)`

There are a few ways it could be made more or less restrictive – you could capture any number of factors, or require the coefficients to be numbers. Like traditional regular expressions, pattern expressions can get very fiddly and long-winded indeed when you take them seriously.

This stuff should make its way into Numbas fairly soon, once I’ve tested it a bit more and settled on a good syntax. I’m still not hugely happy with the lengthy `m_any(..)`

syntax.

It was a …

]]>It was a bit awkward, since I couldn’t see who was watching, and it wasn’t very clear how to interact with the audience apart from them submitting questions, but some people seem to have found it worthwhile.

For your entertainment, here’s the recording:

Peter wants to run more of these Q&As in the future. I’ll make sure to attend!

]]>The pieces he delivered were all constructed from layers of cut card laid on top of each other, with the idea that patterns appear as you change your viewing angle. It took a frankly ridiculous amount of time to get the pieces out of UK customs after Edmund shipped them from the US, and then they sat in our building manager’s office for a month or so while the university estates people got their act together.

Anyway, I really like the pieces. Now they’re finally up on the walls, I’ve taken some pictures and put them on Flickr.

]]>**Update 19/09/2013: **Following a suggestion by Peter Krautzberger, I’ve updated the bookmarklet to do the image replacement differently, so the images don’t disappear while MathJax is working. I’ve also made it work on Wikipedia.

I found a rather interesting mechanical calculator in Tynemouth market. It’s called a *Correntator*, and it adds up old-fashioned money. …

I found a rather interesting mechanical calculator in Tynemouth market. It’s called a *Correntator*, and it adds up old-fashioned money. You add amounts by sticking a stylus in one of the tracks and dragging it down. Little hooks at the ends of the track do the carrying-over for you. It’s rather sweet, in a limitedly-useful way.

I also brought in my 1811 arithmetic textbook to provide a source of problems for people to solve.

We talked for a bit about how much harder things were with old units, meaning people had to spend more time remembering rules for doing simple things and never got on to more advanced and fun topics. Someone said, “Use of the correct concepts helps.” Apart from the switch to metric, someone pointed out that thinking of the trig rules in terms of complex numbers makes a whole load of problems way easier.

Ji pointed out that the Chinese version of the Correntator is the abacus.

I mentioned that I had been unable to track down a copy of the paper “An April Fool’s Hoax” by Stan Wagon, purportedly published in *Mathematica in Education and Research*. It’s widely cited, but the links on the journal’s old website are all broken, and Springer-Verlag denies all knowledge of the journal. I can’t work out whether the article about a hoax is itself a hoax. Anyway, it’s supposed to be about the hoax Martin Gardner famously perpetrated in his *Mathematical Games* column where he claimed that Ramanujan’s constant is an integer.

I mentioned that I had started factorising the number of my Metro carriage on the way into work each morning as a way to pass the time. It took me a long time to factor 4051, because it’s a prime! I’ve written down, “Is there a better method than the sieve of Eratosthenes for primality testing/factoring?” Yes.

Steven brought in yet more weird puzzle cubes…

… and David finally solved the puzzle he started in April.

We talked about the rather silly random walk on slides that some Carnegie Mellon students did. We thought it was perfect Big MathsJam fodder, and thought that each local MathsJam could prepare one slide for a presentation to be given at the annual conference in November. Let’s make it happen!

Cheltenham posted this puzzle on Twitter:

\begin{array}{} 1 & 3 & 5 & 7 & 9 & \cdots \\ 2 & 6 & 10 & 14 & 18 \\ 4 & 12 & 20 & 28 & 36 \\ 8 & 24 & 40 & 56 & 72 \\ \vdots & & & & & \ddots \end{array}

Show that every number appears in this grid exactly once.

After thinking about it for a bit, click here to see the solution.

John told us about this identity for $\pi$:

\[ \pi = 4 \left( 1 - \frac{1}{3} + \frac{1}{5} - \frac{1}{7} + \dots \right) \]

A quick googling tells me that it’s called the Gregory series, and it converges really, *really* slowly. John told us that even if you sum up the first 5 million terms in the series, it’s wrong in the 7th and 21st (and more) digits. He asked if there was an integer sequence for the number of terms you need to calculate to get $n$ digits correct. (Or he asserted that fact but couldn’t give a reference. I can’t remember.)

It’s sequence A126809, and there’s bad news: you don’t get the 7th digit correct until you’ve worked out 18,660,270 terms of the series sum!

David arrived quite late. He said that he had passed up dinner with 70s megaband Journey to come to MathsJam. And he wasn’t lying! He left after a while claiming he was bored. David’s too showbiz for us now

I forgot to bring Simon the snake! He had been in my back pocket for a month until the morning of MathsJam, but then I took him out and put him on my desk and now I don’t know where he is. Poor Simon.

John brought a couple of games he’d bought from nestorgames. Specifically, he brought *Feed the Ducks *and *Coffee*. The game of Feed the Ducks took absolutely ages to play, and eventually I think everyone just gave up.

We talked about the bad hexadecimal numbers. I can’t remember how we found them, but the idea is this: instead of using $A,B,C,D,E,F$ as digits in base-16, write $10,11,12,13,14,15$. So $27$ in base 10 is $1 \times 16+11$, which you’d normally write $1B$, but instead we write it as $111$.

Equally appalling is dismal arithmetic. The idea this time is to respond to complaints that students learning to do addition and multiplication on paper can’t do carrying-over by making sure that it never happens. You follow the same algorithms as for normal addition and multiplication, but now whenever you add two digits you just take the largest one, and when you multiply two digits you take the smallest one. It works, as long as you don’t mind about associativity or distributivity or anything like that. I finally satisfied myself that 19 is a prime in dismal arithmetic.

We played a few rounds of Mad Abel. Enthusiasm was down on last time we played it. I still think it’s great, anyway.

Edinburgh tweeted about the wobbly garden table problem, which we’ve discussed before. There is a similar problem: can you always find somewhere to land a lunar module with 3 legs so that it’s level? Apparently this is known as Knaster’s problem.

I talked about my quest to find art to decorate Newcastle University’s maths department. Andrew has written down the name Radmila Sazdanovic.

Finally, someone mentioned a device which can calculate the area of a shape after you trundle it around the boundary, using either Green’s theorem or Stokes’ theorem (we weren’t sure which). As far as I can tell, it’s called a planimeter. Pretty clever!

Phew! Done with 30 minutes to spare. Just enough time to saunter down to the Charles Grey pub in the sunshine and get myself a drink.

]]>The first thing I have written down in my notebook for March’s Newcastle MathsJam is a scribbled-upon sketch of what looks like some paths on a …

]]>The first thing I have written down in my notebook for March’s Newcastle MathsJam is a scribbled-upon sketch of what looks like some paths on a torus. I think I might’ve been explaining the definition of the fundamental group of a surface to someone.

Stephen brought in a whole collection of exotic Rubikish shapes. David decided to do art with them.

John brought *The Mathematical Coloring Book*:

Not sure if this was posted on Twitter or brought up by someone at Newcastle. Here’s a solution:

- Let $n := k!$.
- Then $n! = n \cdot (n-1)!$
- i.e. $(k!)! = k! \cdot (k!-1)!$.
- Quod erat to show.

Underneath that, I have couple of interesting identities:

\begin{align} 8!+7!+1! &= 45361 \\ 871 &= 4!+5!+3!+6!+1! \end{align}

That was tweeted by Jim Wilder, and is related to a very short integer sequence.

We must’ve been talking about nice number facts in general at this point, because I’ve written down my favourite number,

\[ 3435 = 3^3 + 4^4 + 3^3 + 5^5 \]

Numbers like this are called *Münchausen numbers* and belong to an exactly as tiny sequence as the factorions mentioned above. The paper “On a curious property of 3435” by Daan van Berkel will tell you all about them.

Easter happened in March, so Manchester MathsJam’s Katie and I researched ways of drawing mathematically-correct eggs beforehand. It doesn’t look like I kept any of our drawings, so you’ll just have to reconstruct them yourselves. All the literature we found on the subject (*eggsegesis*, if you will, and I hope you do) came from Germany. Jürgen Köller’s page on egg curves is comprehensive, while Herbert Möller’s paper, “Das 2:3-Ei – ein praktikables Eimodell“, gives a more rigorous treatment.

Inspired by our eggs, John reminded us of this problem that Ji had posed previously:

Given a circle and one point on it, draw an inscribed square with just a compass.

Difficult! I didn’t write down the answer!

I talked a bit about my friend Stacey’s problems with maximal oriented Wicks forms. Stacey copied out part of a proof she was studying on our office blackboard, and it was so attractive I took a picture and sent it in to the *What’s on my blackboard?* blog.

Next in my notebook is the word “Sarahdohedron”. Sarah made an unusual origami shape and needed a name for it.

We had a go at the jumping frogs puzzle, which the nice people at NRICH have recently made a nice version of. The lengths of solutions to the jumping frogs puzzle form yet another integer sequence, A005563.

We sort of had a conversation with Cardiff MathsJam through our respective Enigma machines. They were using a Pringles paper tube Enigma machine, but we cheated and used the Android app.

David presented us with a tricky problem of the utmost importance:

Simon the snake is very sleepy. He might fall asleep at any moment, in any position. What’s the smallest blanket can we use to be sure that we’ll entirely cover him, no matter what position he falls asleep in?

There was quite a lot of discussion about this. We started with a semicircle, which David reckoned you could cut a smaller arc out of the top of. I had some crazy cockahoop scheme involving variational methods that I won’t try to remember. Later on, we found out that Simon is the latest in a long line of sleepy slitherers which began with Moser’s worm. The paper “A smaller sleeping bag for a baby snake” by Svante Linusson, and Johan Wästlund has both a charming title and a much better solution than any of us came up with.

Recorded for posterity, here are our efforts:

Simon got a bit frayed towards the end of the night, so John offered to take him home and give him a bit of TLC. He reappeared in April with a neat heat-shrunk head. I assumed custody after that but I’m ashamed to say I have no idea where he is now. Hopefully, he’s having a little kip in the bottom of my backpack. I am a terrible snake-stepfather.

The last note I have is, “Is 10% the same thing as 0.1?”, prompted I think by an argument I was having with someone on Twitter. I’ll say that we agreed it is, because that way I win the argument.

I’d hoped the main feature of April’s MathsJam would be the *PAPAC-00*, a cardboard computer I had assembled based on instructions I found on the internet. It didn’t really work though, so I just had to point to the bits that should’ve been moving when I pulled the control lever. Cereal box is not a precision medium. John said he thought it would work if the bits were made on a laser cutter. I expect to be surprised at May’s meeting.

The idea is that you set each of the two *registers* to store either **1** or **0**, and then waggle the control lever back and forth. Each waggle of the lever adds the current register to the *adder* at the bottom. The *counter* at the top dictates which register is read, and alternates with each waggle. Roughly 13% of those things happened when I tried it.

We talked a bit about colourblindness, because I had just found the most marvellous app for my phone, which both simulates and corrects for colourblind vision through the phone’s camera. Everyone else learned how rubbish my view of the world is, and I learned a lot about what colours things are.

I had brought along the *Big, Big, Big Book of Brainteasers*, a book which made its first appearance at the third Newcastle MathsJam back in 2011. We tried a few puzzles – I’ve written down numbers 201 and 202 – before deciding they were either too easy, too hard, or too ambiguous to bother with. Eamonn had brought Erwin Brecher’s *Puzzles, Brainteasers & Mathematical Diversions*, which seemed to be a much better book. I’ve written down number 174, which I think might be a puzzle from Brechner’s book that we enjoyed. Any idea what it was, anyone?

Here’s one:

A circle is inscribed in a quadrilateral. The ratio of the quadrilateral’s perimeter to the circle’s circumference is

3:2. What’s the ratio of the quadrilateral’s area to the circle’s?

And another:

Given a circle and a point outside it, construct the point’s tangents using only a ruler.

The solution to that one is so hard to find that I commented that many of these puzzles seem to arise when someone chances upon an interesting fact, then phrases it as a question. Asking peopel to do the inverse of that isn’t much fun, in my opinion. (#soreloser, I know)

Well-known interesting fact: $\frac{1}{1} + \frac{1}{2} + \frac{1}{3} + \dots$ doesn’t converge.

Little-known fascinating fact: the same sum but excluding numbers containing a 9 **does** converge!

In fact, you can pick any string of digits instead of “9″, even a really long one, and the fact is still true. It’s explained in the paper “Summing curious, slowly convergent, harmonic subseries” by Thomas Schmelzer and Robert Baillie.

Finally in my notebook, just this little bit:

$12^2 + 33^2 = 1233$. Others?

To be precise: we want two numbers such that, when you add their squares, you get their concatenation. Turns out Stephen’s done a lot of work on this since it was posed to him as part of an undergrad course (or problem sheet or something). He’s calculated an enormous number of solutions and put them on his website. He explained his method to us – maybe that’ll appear online too one day.

That’s a snapshot of two months’ worth of Newcastle MathsJams. I’ve missed quite a bit because I didn’t take very good notes, as usual. You’ll have noticed that we’re getting a bit hardcore again, without the influence of many non-academic mathmos. Since I get more than my fill of crazy super maths as a result of having to spend every working day with Cushing, and soon also Ji, I’m very keen to do some stress-free fun maths. So if you have any ideas how we can encourage more varied kinds of people to come to MathsJam, please tell me!

The next Newcastle MathsJam will be on Tuesday the 21st of May. If you’re one of the many people from outside Newcastle who read this blog, the MathsJam website lists over 30 cities round the world where MathsJams take place.

]]>My art teacher from school appeared in my office at uni one day saying he had a maths problem. He didn’t know I work here, so it was a shock to us both! His problem was:

Can you draw the same asymmetrical figure on all six faces of a cube, so that there’s no symmetry around any edge or vertex?

(He didn’t use exactly those words) Here’s what I mean, in pictures:

So on adjacent faces you can’t have the figure the same way up, or pointing in opposite directions, and you can’t have rotational symmetry around a vertex.

The answer to the question is no, but my proof is just an exhaustion of cases. It’s fun to work out, anyway. Thanks to the MathsJam Rubik’s cube and some arrows drawn on post-it notes, I think everyone eventually agreed it’s impossible, though there were some complaints that I kept “adding rules” whenever someone thought they’d come up with a counterexample.

Then we discussed a problem posted by Tanya Khovanova on her blog as an example of a coffin problem from the Moscow State University entrance exams:

Given four points on a square, reconstruct the square with straightedge and compass.

I can’t remember if we got the solution. It’s possible John showed us the solution he’d been shown, but I’m not sure.

John then showed us a little gizmo he’d made.

It has a number display and a button. The display starts at 1000, and every time you press the button it changes to a random lower number, until it gets to 1. You might want to watch this video I recorded of it in action. John asked us,

What’s the probability that it shows the number 2 before it gets to 1?

We all played with it for a bit (it’s quite compulsive), until after a while I realised I’d answered this problem before. The gizmo is doing the same thing as the seating passengers on a plane puzzle we solved last April. Top memory, CP! I also have written down that we considered the probability that every number is prime (or has some property *X*), but we must have just thought it up at the end.

Someone told us about this trick a lecturer had performed during a probability class, or something like that:

He asked everyone if they fancy the person sat next to them. It would be cruel to ask people to reveal that information in public, so he got everyone to flip two coins, and tell the truth only if they got two heads. How did he work out how many people fancy the person next to them?

I told everyone about David’s first sequence in the OEIS, sequence A189055: the primes which are the difference of consecutive eleventh powers. David had the idea, but I wrote a Sage notebook to compute the sequence. The notebook is mainly incomprehensible to me; we did some more investigating after finding the sequence but I’ve forgotten what.

I’ve written the question, “N points: how many topologies on them?” but I have absolutely no recollection of what that means.

Finally, I told everyone about my interesting times madness. I’m still suffering from it and it’s proven contagious, so I’ll spare you.

We started with a tricky puzzle I’d seen tweeted earlier in the day:

Yikes! @mathsjam “@tobiasteo: Here’s to screw your brain for the day: twitpic.com/c4ubbp“

— Christian Perfect (@christianp) February 19, 2013

Then I mentioned, for who knows what reason, Tarski’s high school algebra problem: there exist identities using only addition, multiplication and exponentiation on the positive integers that can’t be proved using the algebraic rules a typical high-school student is taught.

Eamonn showed us his odd Rubik’s cube. It’s one of these:

Stephen scrambled it and set to solving it, assuming Eamonn could put it right if he got stuck. Eamonn couldn’t, but fortunately it turned out that Stephen could.

John posed us a problem:

I have an infinite line of coins, all facing heads-up. I give you a template consisting of a finite number of arrows, which you can move along the line any number of times, flipping every coin pointed to by an arrow. Is it possible, no matter what the template is, to end up with exactly two coins facing tails-up?

Here’s an example of a template:

The proof involves the bane of my existence, generating functions. Yuck.

We discussed the coffin problems yet again. Possibly someone posed one of them not knowing where it came from. Then, there was some discussion of infinities. I wish I’d written more down!

I can very clearly remember doing some origami, but I have no written or photographic record of it. Instead, here’s one I made earlier:

It’s an icosahedron inside its dual, a dodecahedron.

For our last puzzle, I asked this unexpectedly easy question:

How many anagrams of the number $123456789$ are prime?

Finally, we talked about written versus spoken maths, after I’d discussed it on the All Squared podcast with Katie Steckles and Edmund Harriss.

Phew! I’m sure I’ve missed loads, but I’m glad I’ve finally written *something* down for the last two MathsJams.

Twitter just switched …

]]>Twitter just switched the switch to let me download my tweets archive, so I immediately did that and grepped it for my many many new business names. Here they are:

Locating premises for my new Newcastle-based cutlery steam-cleaning service, “Fog on the Tine”

Buying tiger balm for my new physiotherapy practice in Gosforth, “Knee Bother”

Buying cages for my new exotic birds shop, “Super Mario Plovers”

Buying a PRS licence for my new musical instruments shop, “If you’ve got it: flautist.”

Acquiring a PRS licence for my new cellar bar under the Newton Institute, “Fermat’s Last Beer-Room”

Hiring bar staff for my new underground opera hall, “Grotto Voce”

Scouting for locations for my new concept café with a chess board at every table, “En Croissant”.

Buying stock for my new kids’ clothing shop, Newcastle upon Tiny.

Soupremum. Simpleggs. Identitea. All on the menu at my new mathematical bistrho.

Trying to get Fearne Cotton to endorse my new back scratcher design. I’ll call it the Fearne Itcher.

In Chinatown looking for premises for my new laser hair removal business, Singe-A-Pore

seeking funders for my new-Romantic fireworks show, “Sturm und Bang”.

now taking orders for my new range of Provençal crockery, S’il te Plate.

looking for investors in my new chain of kosher Argentinian steakhouses, “Gaucho Marx”

Lost a favourite mallard recently? Then come down to my new duck cloning service, Quacksimile!

Drawing up a health and safety plan for my new plush toy cleaning service, Teddy Gross Felt

Flying to Wyoming to scout locations for my new convalescence home for introverts, Cheyenne Retiring

Buying leather and painting everything black for my new wedding parlour for goths, “Doom and Groom”.

Finalising the tasting menu at my new restaurant focused on taboo meats, “Horses, Four Courses”

Well, *I* like them.

I’ve written a few posts here in the past about the Grzegorczyk hierarchy, computable groups, and so on, but I think this might be the first time I’ve presented my work to real people (apart from an impromptu hour-long braindump when one of the real seminar speakers cancelled and I decided to test my memory).

As usual, I wrote my slides using my deck.js template, which I’ve finally got round to putting on GitHub. I’ve uploaded the slides – you can see them here – but I thought I’d have a go at using my laptop to record the audio of the talk as well. Amazingly, the little built-in microphone picked up my voice quite clearly, and you can even just about hear the questions people asked.

We had a few discursions about tangential topics; maybe it’s good that the recording only picked up my attempts to draw everyone back to the maths.

At some point I’ll gather up the energy to have another go at finishing off the paper. For now, it’s in my phd-notes repository on github. Here’s a direct link to the PDF of the paper in progress.

**Update 13/02/2013: **The seminar organisers have set up a page with the schedule of talks.

I was thinking about that this morning, so I decided to go through and play a few of my old games. I feel just as much a need to show them off now as I did when I made them, so I’ve recorded a few screencasts. Camtasia broke for Unknown Reasons and it turns out Jing is sort of terrible at recording games, so they’re really jerky and the volume’s quite low, but I’m not going to not share them now I’ve made them.

Here they are:

I’m quite disappointed that a few of my favourites didn’t run. I’m sure if I recompiled them they’d work. All of my code is in a repository on github, and compiled versions of everything are on my original homepage, somethingorotherwhatever.com. Here’s a list of links to the ones that work at least a little bit:

Trenchant, Poption, Fencing, Bubble worlds, Trader, Schroedinger’s Ghost, Beards, Rowing, Surroundemup, Clockwork Shooter, Schizophrenic Pacman, Museum, Horsey (browser version), Kleinsteroids

]]>