Welcome to the private website of Christian Steinruecken!
I hope this page gives you some idea of what I do, and how you
can contact me.
I am a computer scientist
at King's College,
University of Cambridge,
currently doing a PhD in Machine Learning / Artificial Intelligence.
dissertation outlined the design and implementation of a
statically typed quantum programming language called Quantum ML,
which won an Industrial Sponsorship award.
My academic interests are (among other areas) in information
theory, artificial intelligence, logic, programming language design,
pure mathematics, theorem proving, genetics and (VLSI) hardware design.
The best way of contacting me is via email:
christian . steinruecken [at] gmail . com
If you really need to get hold of my urgently, use the telephone
or contact me on creamtea.
Physical mail is best sent to my current postal address:
797 King's College
CB2 1ST Cambridge
I was most recently seen in:
I have been teaching various undergraduate courses at Cambridge University,
Prolog, Java, ML,
Foundations of Computer Science and Functional Programming.
I also supervised a few undergraduate
Lectures and seminars
In 2006 I gave two talks for the
Cambridge University; one on
and another on
Graphical Combinator Programming.
In 2005 I gave a lecture series on
Computer Typesetting for Linguists
at Lund's Centre for Languages
I have also gave technical introductions to Virtual Reality
with my newly developed VR 3D Engine cubewalk, which runs at
the Virtual Reality Laboratory at the IKDC, Lund (and soon New Zealand).
In 2004, I gave a
on Formal and Natural Languages
at the Department of Linguistics,
University of Lund in Sweden.
I also gave a
Quantum Programming at
the Department of Computer Science
of Lund University.
There is conclusive evidence
that I do not exist.
Furthermore, here is what my initials really stand for...
Fun stuff relating to me and some of my friends can
also be found on
I made a handcrafted collection
of stationery paper for easy viewing and printing, directly
off the web. So whenever you need any kind of stationery when
stuck in the middle of nowhere (with nothing but internet and
a laserprinter, say) you should visit the
and print off what you need. You'll find almost anything
ranging from different types of graph paper to lineatures suitable
for writing, drawing, calligraphy or game playing. There are also
Patchwork Templates, useful for
home production of differently sized cardboard hexagons and such
You can download or print some sudoku sheets,
created with my "flexible human-reason modelling" sudoku generator.
Difficulties range from easy to hard.
If you need sudokus in large quantities or with
special properties, you know who to contact! :)
The Alchemy Game
The Alchemy Game, the creation of which took several years,
is available on the Alchemy Pages.
A multi-platform redesign of the game engine is underway and will
be available here soon. In particular, there'll be an
enhanced version of the original Alchemy, and an online version.
(PS. The online version is basically working, but still in stealth
mode. If you would like to have a preview before its official
release, email me.)
Amino Acid Search Engine
My amino acid and DNA codon search engine.
You can either use the online version,
or download the shell script - both
suitable for command line use, or for use on a web server (simply
copy it into your cgi-bin directory!)
Are you good at minesweeper?
I made a bunch of very small mine puzzles,
which you might enjoy. These are cute rather than serious,
but be assured that bigger versions can be added if needed.
My background tiles for an infinitely
tiling crossword pattern.
Simulations of the look of different web browsers...
Its usefulness is close to zero, but it might be fun
to play with it, or to enjoy the buttons and decorations
of browser versions long gone :)
Take a look.
King's College Nethack Levels
A King's College Nethack Patch
is available, which contains special levels of King's College
(complete with river and chapel) and Grantchester Meadows
(including The Orchard) for nethack.
Enjoy your time at King's, but do not disturb the professors
or the students. And don't step on the grass...!
Plants are evil.
Computer Science Miscellania
Combinator Logic Playground
I have written a graphical
combinator logic playground,
featuring SK-combinators which can be dragged around and
dropped on each other to perform computations. In case you didn't
know, combinators logic is a programming language with only two
instructions: S and K.
PS: Many known terms, e.g. those of other combinators or Church Numeral
arithmetic, will be detected if you build and click them.
My small theorem prover for propositional and uncertainty
logic can be used online as a Java Applet.
Alternatively, Unix/Linux systems can run the prover
also directly on the command line, e.g. with this little
shell script, or by downloading
the complete Java JAR file.
The world isn't ready for this yet. This is why the
technology, powerful and misunderstood as it is, is better kept secret
until the new age arrives.
Algebraic Structures, as ML functors
Due to frequent demand, I've put my ML definitions
of algebraic structures online. This file,
struc.ml, contains module
signatures for algebraic structures like groups, monoids, rings,
fields and lattices; it also implements functors for algebraic
constructions (such as e.g. fraction fields).
Axioms are handled by the typesystem at compile time.
There's a diagram (PDF)/(PS)
providing a graphical view of what struc.ml defines.
The language used is Ocaml.
Feedback is welcome! :-)
Other Ocaml Tools
A few people have been asking me for
sblock.ml, my library of
stringblock functions. This is a small collection of handy
tools to create, manipulate and print rectangular blocks
of characters. This is useful for printing matrices or
sudokus to a terminal or text file, e.g. side by side,
in big brackets, or in boxes.
Please submit additions or corrections, so they can be
included in the next version.
A collection of tools
for CVS checkouts and CVS repositories. Includes some useful scripts
for the offline use of CVS checkouts (e.g. when travelling with a
laptop, away from the central CVS server).
I have now added my collection
of unicode material to this website,
including the plain text code charts
and the UTF-8 sample text files.
My xterm start scripts and
multilingual keyboard maps for
various languages / character sets are also available.
GRUB boot floppy
Just for convenience, I made a universal
bootfloppy for x86 computers,
using the GRUB boot loader. This is nice to have
when things have gone wrong, and the machine doesn't start.
(or just download the floppy image).
A simple tool for splitting MPO files (e.g. stereo-photos)
into their component images mposplit.