updated
authorChristian Urban <christian dot urban at kcl dot ac dot uk>
Wed, 04 Jun 2014 11:34:01 +0100
changeset 278 7e056bb8c9ab
parent 277 96f9be2b8188
child 279 e8a72f132c2f
updated
bsc-projects-13.html
msc-projects-13.html
teaching.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 @@
   <A HREF="http://en.wikipedia.org/wiki/CoffeeScript">Coffeescript</A> is a similar project
   except that it is already quite <A HREF="http://coffeescript.org">mature</A>. And finally not to
   forget <A HREF="http://www.typescriptlang.org">TypeScript</A> 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 <A HREF="http://asmjs.org">asm.js</A> and 
   <A HREF="https://github.com/kripken/emscripten/wiki">emscripten</A>.
 </p>
@@ -322,8 +322,8 @@
   <p>
   <B>Description:</B>
   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 
   <A HREF="http://www.udacity.com">Udacity</A> made an art out of
   asking questions during lectures (see for example the
   <A HREF="http://www.udacity.com/overview/Course/cs253/CourseRev/apr2012">Web Application Engineering</A> 
@@ -332,7 +332,7 @@
   click on the appropriate answer. This works very well in the online world. 
   For  &ldquo;real-world&rdquo; lectures, the department has some 
   <A HREF="http://en.wikipedia.org/wiki/Audience_response">clickers</A>
-  (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 @@
  <A HREF="http://isabelle.in.tum.de">Isabelle</A>. This theorem prover
  has been used to establish the correctness of some quite large
  programs (for example an <A HREF="http://ertos.nicta.com.au/research/l4.verified/">operating system</A>).
- 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
+ <A HREF="http://en.wikipedia.org/wiki/Priority_inheritance">Priority Inheritance</A>,
+ for real time operating systems. This scheduling algorithm is part of the operating
+ system that drives, for example, the 
+ <A HREF="http://en.wikipedia.org/wiki/Mars_Exploration_Rover">Mars rovers</A>.
+ 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 <A HREF="http://www.youtube.com/watch?v=lyx7kARrGeM">here</A>
+ 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
+ <A HREF="http://www.inf.kcl.ac.uk/staff/urbanc/Publications/pip.pdf">paper</A>.
+ </p>
+
+ <p>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).
 </p>
 
+  <p>
+  <B>Skills:</B> 
+  This project is for a very good student with a knack for theory and formal reasoning.
+  </p>
+
 <li> <H4>Earlier Projects</H4>
 
  I am also open to project suggestions from you. You might find some inspiration from my earlier projects:
@@ -553,7 +574,7 @@
 </TABLE>
 
 <P>
-<!-- hhmts start --> Last modified: Thu Nov 21 14:26:03 GMT 2013 <!-- hhmts end -->
+<!-- hhmts start --> Last modified: Wed Jun  4 11:33:30 BST 2014 <!-- hhmts end -->
 <a href="http://validator.w3.org/check/referer">[Validate this page.]</a>
 </BODY>
 </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 @@
   <A HREF="http://en.wikipedia.org/wiki/CoffeeScript">Coffeescript</A> is a similar project
   except that it is already quite <A HREF="http://coffeescript.org">mature</A>. And finally not to
   forget <A HREF="http://www.typescriptlang.org">TypeScript</A> 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 <A HREF="http://asmjs.org">asm.js</A> and 
   <A HREF="https://github.com/kripken/emscripten/wiki">emscripten</A>.
   </p>
@@ -568,7 +568,7 @@
 </TABLE>
 
 <P>
-<!-- hhmts start --> Last modified: Tue May 27 13:19:42 BST 2014 <!-- hhmts end -->
+<!-- hhmts start --> Last modified: Wed Jun  4 11:33:39 BST 2014 <!-- hhmts end -->
 <a href="http://validator.w3.org/check/referer">[Validate this page.]</a>
 </BODY>
 </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</li>
 <li>Jian Jiang (MSc 2011-2012, King's) Suffix Array Sorting, 
 received the prize of the best MSc thesis in 2012</li>
-<li>Mateusz Bieniek (BSc 2012-2013, King's, mark: 80%, works as developer at RedBite in Cambridge) X86-Code Generator for a small Compiler</li>
+<li>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</li>
 <li>Daniel Zurawski (BSc 2012-2013, King's, mark: 75%, works now at MailOne) Lisp to JavaScript Translator in Clojure</li>
 <li>Biljana Naumova (BSc 2012-2013, King's) Regular Expression Equivalence Checking using Asperti's Algorithm</li>
 <li>Spencer Jevon (BSc 2012-2013, King's) Automata Minimisation using Brzozowski's Algorithm</li>
@@ -433,7 +434,7 @@
 
 </TABLE>
 <P>
-<!-- hhmts start --> Last modified: Mon Jun  2 14:42:16 BST 2014 <!-- hhmts end -->
+<!-- hhmts start --> Last modified: Tue Jun  3 20:41:57 BST 2014 <!-- hhmts end -->
 <a href="http://validator.w3.org/check/referer">[Validate this page.]</a>
 </BODY>
 </HTML>