# HG changeset patch # User Christian Urban # Date 1401878041 -3600 # Node ID 7e056bb8c9abbbc4d3e9c975eb245d5f3852370a # Parent 96f9be2b8188c3d3ec2e29fb4ec618d04987be54 updated diff -r 96f9be2b8188 -r 7e056bb8c9ab bsc-projects-13.html --- a/bsc-projects-13.html Mon Jun 02 14:42:38 2014 +0100 +++ b/bsc-projects-13.html Wed Jun 04 11:34:01 2014 +0100 @@ -248,7 +248,7 @@ Coffeescript is a similar project except that it is already quite mature. And finally not to forget TypeScript developed by Microsoft. The main - difference between these projects and this one is that they translate int relatively high-level + difference between these projects and this one is that they translate into relatively high-level JavaScript code; none of them use the much lower levels asm.js and emscripten.

@@ -322,8 +322,8 @@

Description: One of the more annoying aspects of giving a lecture is to ask a question - to the students and no matter how easy the questions is to not - receive an answer. Recently, the online course system + to the students and no matter how easy the question is to not + receive any answer. Recently, the online course system Udacity made an art out of asking questions during lectures (see for example the Web Application Engineering @@ -332,7 +332,7 @@ click on the appropriate answer. This works very well in the online world. For “real-world” lectures, the department has some clickers - (these are little devices part of an audience response systems). However, + (these are little devices which form a part of an audience response systems). However, they are a logistic nightmare for the lecturer: they need to be distributed during the lecture and collected at the end. Nowadays, where students come with their own laptop or smartphone to lectures, this can @@ -535,12 +535,33 @@ Isabelle. This theorem prover has been used to establish the correctness of some quite large programs (for example an operating system). - On a much smaller scale, there are a few programs and underlying algorithms where it - is not really understood whether they always compute a correct result. The aim of this + Together with colleagues from Nanjing, I used this theorem prover to establish the correctness of a + scheduling algorithm, called + Priority Inheritance, + for real time operating systems. This scheduling algorithm is part of the operating + system that drives, for example, the + Mars rovers. + Actually, the very first Mars rover mission in 1997 did not have this + algorithm switched on and it almost caused a catastrophic mission failure (see + this youtube video here + for an explanation what happened). + We were able to prove the correctness of this algorithm, but were also able to + establish the correctness of some optimisations in this + paper. +

+ +

On a much smaller scale, there are a few small programs and underlying algorithms where it + is not really understood whether they always compute a correct result (for example the + regular expression matcher by Sulzmann and Lu in project [CU1]). The aim of this project is to completely specify an algorithm in Isabelle and then prove it correct (that is, it always computes the correct result).

+

+ Skills: + This project is for a very good student with a knack for theory and formal reasoning. +

+
  • Earlier Projects

    I am also open to project suggestions from you. You might find some inspiration from my earlier projects: @@ -553,7 +574,7 @@

    - Last modified: Thu Nov 21 14:26:03 GMT 2013 + Last modified: Wed Jun 4 11:33:30 BST 2014 [Validate this page.] diff -r 96f9be2b8188 -r 7e056bb8c9ab msc-projects-13.html --- a/msc-projects-13.html Mon Jun 02 14:42:38 2014 +0100 +++ b/msc-projects-13.html Wed Jun 04 11:34:01 2014 +0100 @@ -225,7 +225,7 @@ Coffeescript is a similar project except that it is already quite mature. And finally not to forget TypeScript developed by Microsoft. The main - difference between these projects and this one is that they translate int relatively high-level + difference between these projects and this one is that they translate into relatively high-level JavaScript code; none of them use the much lower levels asm.js and emscripten.

    @@ -568,7 +568,7 @@

    - Last modified: Tue May 27 13:19:42 BST 2014 + Last modified: Wed Jun 4 11:33:39 BST 2014 [Validate this page.] diff -r 96f9be2b8188 -r 7e056bb8c9ab teaching.html --- a/teaching.html Mon Jun 02 14:42:38 2014 +0100 +++ b/teaching.html Wed Jun 04 11:34:01 2014 +0100 @@ -94,7 +94,8 @@ A Compiler for System F

  • Jian Jiang (MSc 2011-2012, King's) Suffix Array Sorting, received the prize of the best MSc thesis in 2012
  • -
  • Mateusz Bieniek (BSc 2012-2013, King's, mark: 80%, works as developer at RedBite in Cambridge) X86-Code Generator for a small Compiler
  • +
  • Mateusz Bieniek (BSc 2012-2013, King's, mark: 80%, works as developer at RedBite in Cambridge and + starts a MSc in Bioinformatics at Imperial) X86-Code Generator for a small Compiler
  • Daniel Zurawski (BSc 2012-2013, King's, mark: 75%, works now at MailOne) Lisp to JavaScript Translator in Clojure
  • Biljana Naumova (BSc 2012-2013, King's) Regular Expression Equivalence Checking using Asperti's Algorithm
  • Spencer Jevon (BSc 2012-2013, King's) Automata Minimisation using Brzozowski's Algorithm
  • @@ -433,7 +434,7 @@

    - Last modified: Mon Jun 2 14:42:16 BST 2014 + Last modified: Tue Jun 3 20:41:57 BST 2014 [Validate this page.]