bsc-projects-12.html
changeset 133 b7f55c8b5744
parent 132 f8220e81d0f2
child 134 6e9c0d53ea69
equal deleted inserted replaced
132:f8220e81d0f2 133:b7f55c8b5744
    65   larger number of states, completely contrary to the idea of minimising the
    65   larger number of states, completely contrary to the idea of minimising the
    66   number of states. The task of this project is to implement this method, check that
    66   number of states. The task of this project is to implement this method, check that
    67   it actually works with some examples and
    67   it actually works with some examples and
    68   compare it with more traditional methods for automata minimisation
    68   compare it with more traditional methods for automata minimisation
    69   (in terms of run-time, code complexity, etc). Examples can be 
    69   (in terms of run-time, code complexity, etc). Examples can be 
    70   obtained by translating regular expressions into automata.
    70   obtained by translating regular expressions into automata. A natural extension
       
    71   of the project is therefore to implement a recogniser for regular expressions
       
    72   following, for example, this <A HREF="http://www.cl.cam.ac.uk/~so294/documents/jfp09.pdf">paper</A>. 
    71   </p>
    73   </p>
    72 
    74 
    73   <p>
    75   <p>
    74   <B>Literature:</B> 
    76   <B>Literature:</B> 
    75   A good place to start with this project are the wikipedia articles 
    77   A good place to start with this project are the wikipedia articles 
   105   to decide a number of problems in automated reasoning. Recently, 
   107   to decide a number of problems in automated reasoning. Recently, 
   106   <A HREF="http://www.cs.unibo.it/~asperti/">Andreas Asperti</A>
   108   <A HREF="http://www.cs.unibo.it/~asperti/">Andreas Asperti</A>
   107   proposed a simple method for deciding regular expression equivalence described
   109   proposed a simple method for deciding regular expression equivalence described
   108   <A HREF="http://www.cs.unibo.it/~asperti/PAPERS/compact.pdf">here</A>. 
   110   <A HREF="http://www.cs.unibo.it/~asperti/PAPERS/compact.pdf">here</A>. 
   109   The task is to implement this method and test it on examples.
   111   The task is to implement this method and test it on examples.
   110   It would be also interesting to see whether Asperti's method also applies to
   112   It would be also interesting to see whether Asperti's method applies to
   111   extended regular expressions, described
   113   extended regular expressions, described
   112   <A HREF="http://ww2.cs.mu.oz.au/~sulzmann/manuscript/reg-exp-partial-derivatives.pdf">here</A>.
   114   <A HREF="http://ww2.cs.mu.oz.au/~sulzmann/manuscript/reg-exp-partial-derivatives.pdf">here</A>.
   113   </p>
   115   </p>
   114 
   116 
   115   <p>
   117   <p>
   153 
   155 
   154   <p>
   156   <p>
   155   While the hard work has been done (understanding the two papers above),
   157   While the hard work has been done (understanding the two papers above),
   156   my compiler only produces some idealised machine code. For example I
   158   my compiler only produces some idealised machine code. For example I
   157   assume there are infinitely many registers. The goal of this
   159   assume there are infinitely many registers. The goal of this
   158   project is to generate machine code which is more realistic and can
   160   project is to generate machine code that is more realistic and can
   159   run on a CPU, like x86, or run on a virtual machine, say JVM. 
   161   run on a CPU, like x86, or run on a virtual machine, say the JVM. 
   160   This gives probably a speedup of thousand times in comparison to
   162   This gives probably a speedup of thousand times in comparison to
   161   my naive machine code and virtual machine. The project
   163   my naive machine code and virtual machine. The project
   162   requires to dig into the literature about real CPUs and generating 
   164   requires to dig into the literature about real CPUs and generating 
   163   real machine code. 
   165   real machine code. 
   164   </p>
   166   </p>
   271   The problem of student polling is not as hard as 
   273   The problem of student polling is not as hard as 
   272   <A HREF="http://en.wikipedia.org/wiki/Electronic_voting">electronic voting</A>, 
   274   <A HREF="http://en.wikipedia.org/wiki/Electronic_voting">electronic voting</A>, 
   273   which essentially is still an unsolved problem in Computer Science. The
   275   which essentially is still an unsolved problem in Computer Science. The
   274   students only need to be prevented from answering question more than once thus skewing
   276   students only need to be prevented from answering question more than once thus skewing
   275   any statistics. Unlike electronic voting, no audit trail needs to be kept
   277   any statistics. Unlike electronic voting, no audit trail needs to be kept
   276   for student polling. Restricting the number of questions can probably be solved 
   278   for student polling. Restricting the number of answers can probably be solved 
   277   by setting appropriate cookies on the students
   279   by setting appropriate cookies on the students
   278   computers or smart phones.
   280   computers or smart phones.
   279   </p>
   281   </p>
   280 
   282 
   281   <p>
   283   <p>
   290   <A HREF="http://www.heroku.com">Heroku</A>).
   292   <A HREF="http://www.heroku.com">Heroku</A>).
   291   For web-programming the 
   293   For web-programming the 
   292   <A HREF="http://www.udacity.com/overview/Course/cs253/CourseRev/apr2012">Web Application Engineering</A>
   294   <A HREF="http://www.udacity.com/overview/Course/cs253/CourseRev/apr2012">Web Application Engineering</A>
   293   course at <A HREF="http://www.udacity.com">Udacity</A> is a good starting point 
   295   course at <A HREF="http://www.udacity.com">Udacity</A> is a good starting point 
   294   to be aware of the issues involved. This course uses <A HREF="http://www.python.org">Python</A>.
   296   to be aware of the issues involved. This course uses <A HREF="http://www.python.org">Python</A>.
   295   
   297   To evaluate the answers from the student, Google's 
       
   298   <A HREF="https://developers.google.com/chart/image/docs/making_charts">Chart Tools</A>
       
   299   might be useful, which ar also described in this 
       
   300   <A HREF="http://www.youtube.com/watch?v=NZtgT4jgnE8">youtube</A> video.
   296   </p>
   301   </p>
   297 
   302 
   298   <p><B>Skills:</B> 
   303   <p><B>Skills:</B> 
   299   In order to provide convenience for the lecturer, this project needs very good web-programming skills. A 
   304   In order to provide convenience for the lecturer, this project needs very good web-programming skills. A 
   300   <A HREF="http://en.wikipedia.org/wiki/Hacker_(programmer_subculture)">hacker mentality</A>
   305   <A HREF="http://en.wikipedia.org/wiki/Hacker_(programmer_subculture)">hacker mentality</A>