tuned
authorChristian Urban <urbanc@in.tum.de>
Thu, 13 Sep 2012 00:41:16 +0100
changeset 143 e779f42c6fa8
parent 142 cbe1b90ddc96
child 144 ee348904117f
tuned
bsc-projects-12.html
--- a/bsc-projects-12.html	Wed Sep 12 16:49:06 2012 +0200
+++ b/bsc-projects-12.html	Thu Sep 13 00:41:16 2012 +0100
@@ -35,7 +35,7 @@
 a short description about your programming skills and Computer Science background in your first email. 
 I will also need your King's username in order to book the project for you. Thanks.</H4> 
 
-<H4>Note that besides being a lecturer in the theory of Computer Science, I am also a passionate
+<H4>Note that besides being a lecturer at the theoretical end of Computer Science, I am also a passionate
     <A HREF="http://en.wikipedia.org/wiki/Hacker_(programmer_subculture)">hacker</A> &hellip;
     defined as &ldquo;a person who enjoys exploring the details of programmable systems and 
     stretching their capabilities, as opposed to most users, who prefer to learn only the minimum 
@@ -44,7 +44,8 @@
 <ul class="striped">
 <li> <H4>[CU1] Automata Minimisation</H4>
 
-  <p><B>Description:</b>  
+  <p>
+  <B>Description:</b>  
   <A HREF="http://en.wikipedia.org/wiki/Deterministic_finite_automaton">Deterministic finite automata</A> 
   have many uses in Computer Science, for example for lexing
   program code. In order to improve their run-time, automata need to be minimised, that 
@@ -102,7 +103,8 @@
 
 <li> <H4>[CU2] Equivalence Checking of Regular Expressions</H4>
 
-  <p><B>Description:</b>  
+  <p>
+  <B>Description:</b>  
   Solving the problem of deciding the equivalence of regular expressions can be used
   to decide a number of problems in automated reasoning. Recently, 
   <A HREF="http://www.cs.unibo.it/~asperti/">Andreas Asperti</A>
@@ -139,7 +141,8 @@
 
 <li> <H4>[CU3] Machine Code Generation for a Simple Compiler</H4>
 
-  <p><b>Description:</b> 
+  <p>
+  <b>Description:</b> 
   Compilers translate high-level programs that humans can read and write into
   efficient machine code that can be run on a CPU or virtual machine.
   I recently implemented a very simple compiler for a very simple functional
@@ -180,10 +183,12 @@
   An interesting twist of this project is to not generate code for a CPU, but
   for the intermediate language of the <A HREF="http://llvm.org">LLVM</A> compiler
   (also described <A HREF="https://wiki.aalto.fi/display/t1065450/LLVM+IR">here</A> and
-  <A HREF="http://llvm.org/docs/LangRef.html">here</A>).
+  <A HREF="http://llvm.org/docs/LangRef.html">here</A>). If you want to see
+  what machine code looks like you can compile your C-program using gcc -S.
   </p>
 
-  <p><B>Skills:</B> 
+  <p>
+  <B>Skills:</B> 
   This is a project for a student with a deep interest in programming languages and
   compilers. Since my compiler is implemented in <A HREF="http://www.scala-lang.org/">Scala</A>,
   it would make sense to continue this project in this language. I can be
@@ -194,7 +199,8 @@
 
 <li> <H4>[CU4] Implementation of Register Spilling Algorithms</H4>
   
-  <p><b>Description:</b> 
+  <p>
+  <b>Description:</b> 
   This project is similar to [CU3]. The emphasis here, however, is on the
   implementation and comparison of register spilling algorithms, also often called register allocation 
   algorithms. They are part of any respectable compiler.  As said
@@ -231,11 +237,13 @@
   about register allocation algorithms with further pointers.
   </p>
 
-  <p><B>Skills:</B> 
+  <p>
+  <B>Skills:</B> 
   Same skills as [CU3].
   </p>
 
 <li> <H4>[CU5] A Student Polling System</H4>
+
   <p>
   <B>Description:</B>
   One of the more annoying aspects of giving a lecture is to ask a question
@@ -287,7 +295,9 @@
   The project requires fluency in a web-programming language (for example 
   <A HREF="http://en.wikipedia.org/wiki/JavaScript">Javascript</A>,
   <A HREF="http://en.wikipedia.org/wiki/PHP">PHP</A>, 
-  Java, <A HREF="http://www.python.org">Python</A>, <A HREF="http://en.wikipedia.org/wiki/Go_(programming_language)">Go</A>, <A HREF="http://www.scala-lang.org/">Scala</A>,
+  Java, <A HREF="http://www.python.org">Python</A>, 
+  <A HREF="http://en.wikipedia.org/wiki/Go_(programming_language)">Go</A>, 
+  <A HREF="http://www.scala-lang.org/">Scala</A>,
   <A HREF="http://en.wikipedia.org/wiki/Ruby_(programming_language)">Ruby</A>) 
   and possibly a cloud application platform (for example
   <A HREF="https://developers.google.com/appengine/">Google App Engine</a> or 
@@ -302,7 +312,8 @@
   <A HREF="http://www.youtube.com/watch?v=NZtgT4jgnE8">youtube</A> video.
   </p>
 
-  <p><B>Skills:</B> 
+  <p>
+  <B>Skills:</B> 
   In order to provide convenience for the lecturer, this project needs very good web-programming skills. A 
   <A HREF="http://en.wikipedia.org/wiki/Hacker_(programmer_subculture)">hacker mentality</A>
   (see above) is probably very beneficial: web-programming is an area that only emerged recently and
@@ -311,12 +322,15 @@
   </p>
 
 <li> <H4>[CU6] Implementation of a Distributed Clock-Synchronisation Algorithm developed at NASA</H4>
+  
   <p>
   <B>Description:</B>
   There are many algorithms for synchronising clocks. This
   <A HREF="http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/20120000054_2011025573.pdf">paper</A> 
   describes a new algorithm for clocks that communicate by exchanging
   messages and thereby reach a state in which (within some bound) all clocks are synchronised.
+  A slightly longer and more detailed paper about the algorithm is 
+  <A HREF="http://hdl.handle.net/2060/20110020812">here</A>.
   The point of this project is to implement this algorithm and simulate networks of clocks.
   </p>
 
@@ -328,7 +342,8 @@
   are given also <A HREF="http://en.wikipedia.org/wiki/Clock_synchronization">here</A>.
   </p>
 
-  <p><B>Skills:</B> 
+  <p>
+  <B>Skills:</B> 
   In order to implement a simulation of a network of clocks, you need to tackle
   concurrency. You can do this for example in the programming language
   <A HREF="http://www.scala-lang.org/">Scala</A> with the help of the 
@@ -342,9 +357,10 @@
 </TR>
 </TABLE>
 
-<P><!-- Created: Tue Mar  4 00:23:25 GMT 1997 -->
+<P>
+<!-- Created: Tue Mar  4 00:23:25 GMT 1997 -->
 <!-- hhmts start -->
-Last modified: Wed Jan 11 16:30:03 GMT 2012
+Last modified: Wed Sep 12 16:30:03 GMT 2012
 <!-- hhmts end -->
 <a href="http://validator.w3.org/check/referer">[Validate this page.]</a>
 </BODY>