bsc-projects-13.html
changeset 278 7e056bb8c9ab
parent 258 cb7f2f627278
child 300 bd70a062ebb2
--- 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>