bsc-projects-13.html
changeset 278 7e056bb8c9ab
parent 258 cb7f2f627278
child 300 bd70a062ebb2
equal deleted inserted replaced
277:96f9be2b8188 278:7e056bb8c9ab
   246   translator. <A HREF="https://bitbucket.org/ktg/parenjs/overview">Here</A> is another such project.
   246   translator. <A HREF="https://bitbucket.org/ktg/parenjs/overview">Here</A> is another such project.
   247   And <A HREF="https://github.com/viclib/liscript">another</A> in less than 100 lines of code.
   247   And <A HREF="https://github.com/viclib/liscript">another</A> in less than 100 lines of code.
   248   <A HREF="http://en.wikipedia.org/wiki/CoffeeScript">Coffeescript</A> is a similar project
   248   <A HREF="http://en.wikipedia.org/wiki/CoffeeScript">Coffeescript</A> is a similar project
   249   except that it is already quite <A HREF="http://coffeescript.org">mature</A>. And finally not to
   249   except that it is already quite <A HREF="http://coffeescript.org">mature</A>. And finally not to
   250   forget <A HREF="http://www.typescriptlang.org">TypeScript</A> developed by Microsoft. The main
   250   forget <A HREF="http://www.typescriptlang.org">TypeScript</A> developed by Microsoft. The main
   251   difference between these projects and this one is that they translate int relatively high-level
   251   difference between these projects and this one is that they translate into relatively high-level
   252   JavaScript code; none of them use the much lower levels <A HREF="http://asmjs.org">asm.js</A> and 
   252   JavaScript code; none of them use the much lower levels <A HREF="http://asmjs.org">asm.js</A> and 
   253   <A HREF="https://github.com/kripken/emscripten/wiki">emscripten</A>.
   253   <A HREF="https://github.com/kripken/emscripten/wiki">emscripten</A>.
   254 </p>
   254 </p>
   255 
   255 
   256 <li> <H4>[CU4] Slide-Making in the Web-Age</H4>
   256 <li> <H4>[CU4] Slide-Making in the Web-Age</H4>
   320 <li> <H4>[CU5] An Online Student Voting System</H4>
   320 <li> <H4>[CU5] An Online Student Voting System</H4>
   321 
   321 
   322   <p>
   322   <p>
   323   <B>Description:</B>
   323   <B>Description:</B>
   324   One of the more annoying aspects of giving a lecture is to ask a question
   324   One of the more annoying aspects of giving a lecture is to ask a question
   325   to the students and no matter how easy the questions is to not 
   325   to the students and no matter how easy the question is to not 
   326   receive an answer. Recently, the online course system 
   326   receive any answer. Recently, the online course system 
   327   <A HREF="http://www.udacity.com">Udacity</A> made an art out of
   327   <A HREF="http://www.udacity.com">Udacity</A> made an art out of
   328   asking questions during lectures (see for example the
   328   asking questions during lectures (see for example the
   329   <A HREF="http://www.udacity.com/overview/Course/cs253/CourseRev/apr2012">Web Application Engineering</A> 
   329   <A HREF="http://www.udacity.com/overview/Course/cs253/CourseRev/apr2012">Web Application Engineering</A> 
   330   course CS253).
   330   course CS253).
   331   The lecturer there gives multiple-choice questions as part of the lecture and the students need to 
   331   The lecturer there gives multiple-choice questions as part of the lecture and the students need to 
   332   click on the appropriate answer. This works very well in the online world. 
   332   click on the appropriate answer. This works very well in the online world. 
   333   For  &ldquo;real-world&rdquo; lectures, the department has some 
   333   For  &ldquo;real-world&rdquo; lectures, the department has some 
   334   <A HREF="http://en.wikipedia.org/wiki/Audience_response">clickers</A>
   334   <A HREF="http://en.wikipedia.org/wiki/Audience_response">clickers</A>
   335   (these are little devices part of an audience response systems). However, 
   335   (these are little devices which form a part of an audience response systems). However, 
   336   they are a logistic nightmare for the lecturer: they need to be distributed 
   336   they are a logistic nightmare for the lecturer: they need to be distributed 
   337   during the lecture and collected at the end. Nowadays, where students
   337   during the lecture and collected at the end. Nowadays, where students
   338   come with their own laptop or smartphone to lectures, this can
   338   come with their own laptop or smartphone to lectures, this can
   339   be improved.
   339   be improved.
   340   </p>
   340   </p>
   533  <p>
   533  <p>
   534  I am one of the main developers of the interactive theorem prover
   534  I am one of the main developers of the interactive theorem prover
   535  <A HREF="http://isabelle.in.tum.de">Isabelle</A>. This theorem prover
   535  <A HREF="http://isabelle.in.tum.de">Isabelle</A>. This theorem prover
   536  has been used to establish the correctness of some quite large
   536  has been used to establish the correctness of some quite large
   537  programs (for example an <A HREF="http://ertos.nicta.com.au/research/l4.verified/">operating system</A>).
   537  programs (for example an <A HREF="http://ertos.nicta.com.au/research/l4.verified/">operating system</A>).
   538  On a much smaller scale, there are a few programs and underlying algorithms where it
   538  Together with colleagues from Nanjing, I used this theorem prover to establish the correctness of a
   539  is not really understood whether they always compute a correct result. The aim of this
   539  scheduling algorithm, called
       
   540  <A HREF="http://en.wikipedia.org/wiki/Priority_inheritance">Priority Inheritance</A>,
       
   541  for real time operating systems. This scheduling algorithm is part of the operating
       
   542  system that drives, for example, the 
       
   543  <A HREF="http://en.wikipedia.org/wiki/Mars_Exploration_Rover">Mars rovers</A>.
       
   544  Actually, the very first Mars rover mission in 1997 did not have this
       
   545  algorithm switched on and it almost caused a catastrophic mission failure (see
       
   546  this youtube video <A HREF="http://www.youtube.com/watch?v=lyx7kARrGeM">here</A>
       
   547  for an explanation what happened).
       
   548  We were able to prove the correctness of this algorithm, but were also able to
       
   549  establish the correctness of some optimisations in this
       
   550  <A HREF="http://www.inf.kcl.ac.uk/staff/urbanc/Publications/pip.pdf">paper</A>.
       
   551  </p>
       
   552 
       
   553  <p>On a much smaller scale, there are a few small programs and underlying algorithms where it
       
   554  is not really understood whether they always compute a correct result (for example the
       
   555  regular expression matcher by Sulzmann and Lu in project [CU1]). The aim of this
   540  project is to completely specify an algorithm in Isabelle and then prove it correct (that is,
   556  project is to completely specify an algorithm in Isabelle and then prove it correct (that is,
   541  it always computes the correct result).
   557  it always computes the correct result).
   542 </p>
   558 </p>
       
   559 
       
   560   <p>
       
   561   <B>Skills:</B> 
       
   562   This project is for a very good student with a knack for theory and formal reasoning.
       
   563   </p>
   543 
   564 
   544 <li> <H4>Earlier Projects</H4>
   565 <li> <H4>Earlier Projects</H4>
   545 
   566 
   546  I am also open to project suggestions from you. You might find some inspiration from my earlier projects:
   567  I am also open to project suggestions from you. You might find some inspiration from my earlier projects:
   547  <A HREF="http://www.inf.kcl.ac.uk/staff/urbanc/bsc-projects-12.html">BSc 2012/13</A>, 
   568  <A HREF="http://www.inf.kcl.ac.uk/staff/urbanc/bsc-projects-12.html">BSc 2012/13</A>, 
   551 </TD>
   572 </TD>
   552 </TR>
   573 </TR>
   553 </TABLE>
   574 </TABLE>
   554 
   575 
   555 <P>
   576 <P>
   556 <!-- hhmts start --> Last modified: Thu Nov 21 14:26:03 GMT 2013 <!-- hhmts end -->
   577 <!-- hhmts start --> Last modified: Wed Jun  4 11:33:30 BST 2014 <!-- hhmts end -->
   557 <a href="http://validator.w3.org/check/referer">[Validate this page.]</a>
   578 <a href="http://validator.w3.org/check/referer">[Validate this page.]</a>
   558 </BODY>
   579 </BODY>
   559 </HTML>
   580 </HTML>