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:
Cambridge, United Kingdom
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.
AI music tracks
There is currently no plan to release any of these secret tracks*.
*) This is an outright lie -- one track has apparently made it out there. Caution is advised.
CRH Reference Handler
I coded up a simple and lightweight
citation and reference management system,
for use in academic writing and publishing. It can be used on its own
or in conjunction with BibTEX, but all references are stored in
Unicode (rather than BibTEX format), which makes it much easier to
export citations to other formats, e.g. HTML, plain text or RIS.
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.
Logic Minimizer / Tautology Checker
My small OBDD-based logic minimizer for propositional logic
and uncertainty logic.
It can be used online as a Java Applet.
Alternatively, it can be run locally by
downloading logic.jar and
running java -jar logic.jar from your OS command line.
(An optional alternative for
Unix/Linux-based systems: shell script
rlogic.sh, which fetches
and runs the latest version of the software straight from the
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).
3D photography tools
A simple tool for splitting MPO files (e.g. stereo-photos)
into their component images mposplit.