Christian Steinruecken
Welcome!
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.
About me
I am a computer scientist
at King's College,
University of Cambridge,
currently doing a PhD in Machine Learning / Artificial Intelligence.
My undergraduate
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.
Contact
The best way of contacting me is via email:
christian . steinruecken [at] gmail . com
and
tcs27
[at] cam
. ac
. uk
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:
Christian Steinruecken
797 King's College
CB2 1ST Cambridge
UNITED KINGDOM
Current Location
I was most recently seen in:
Kyōto, Japan
Teaching
I have been teaching various undergraduate courses at Cambridge University,
including:
Probability Theory,
Quantum Computation,
Types,
Artificial Intelligence,
Computation Theory,
Prolog, Java, ML,
Foundations of Computer Science and Functional Programming.
I also supervised a few undergraduate
B.A. dissertations.
Lectures and seminars
In 2006 I gave two talks for the
Inference Group,
Cavendish Laboratory,
Cambridge University; one on
Uncertainty Logic,
and another on
Graphical Combinator Programming.
In 2005 I gave a lecture series on
Computer Typesetting for Linguists
at Lund's Centre for Languages
and Literature.
I have also gave technical introductions to Virtual Reality
with my newly developed VR 3D Engine cubewalk, which runs at
RE-Flex,
the Virtual Reality Laboratory at the IKDC, Lund (and soon New Zealand).
In 2004, I gave a
seminar
on Formal and Natural Languages
at the Department of Linguistics,
University of Lund in Sweden.
I also gave a
talk on
Quantum Programming at
the Department of Computer Science
of Lund University.
Fun stuff
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
http://cstein.kings.cam.ac.uk/.
Miscellaneous
Stationary Paper
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
stationery collection
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
things.
Sudoku Sheets
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!)
Minesweeper Puzzles
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.
Emotiles
My background tiles for an infinitely
tiling crossword pattern.
Instant Browsers
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...!
Inexplicable
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.
Tautology Checker
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.
Cubewalk
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.
CVS Tools
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).
Unicode Material
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.
Read more
(or just download the floppy image).
Other tools
A simple tool for splitting MPO files (e.g. stereo-photos)
into their component images mposplit.