msc-projects-15.html
changeset 386 15ef47beeef1
parent 385 046a49edbeb8
child 387 37afaead31dd
equal deleted inserted replaced
385:046a49edbeb8 386:15ef47beeef1
   214   An online book about the Art of Assembly Language is
   214   An online book about the Art of Assembly Language is
   215   <A HREF="http://flint.cs.yale.edu/cs422/doc/art-of-asm/pdf/">here</A>.
   215   <A HREF="http://flint.cs.yale.edu/cs422/doc/art-of-asm/pdf/">here</A>.
   216   An introduction into x86 machine code is <A HREF="http://ianseyler.github.com/easy_x86-64/">here</A>.
   216   An introduction into x86 machine code is <A HREF="http://ianseyler.github.com/easy_x86-64/">here</A>.
   217   Intel's official manual for the x86 instruction is 
   217   Intel's official manual for the x86 instruction is 
   218   <A HREF="http://download.intel.com/design/intarch/manuals/24319101.pdf">here</A>. 
   218   <A HREF="http://download.intel.com/design/intarch/manuals/24319101.pdf">here</A>. 
   219   A simple assembler for the JVM is described <A HREF="http://jasmin.sourceforge.net">here</A>.
   219   Two assemblers for the JVM are described <A HREF="http://jasmin.sourceforge.net">here</A>
       
   220   <A HREF="https://github.com/Storyyeller/Krakatau">here</A>.
   220   An interesting twist of this project is to not generate code for a CPU, but
   221   An interesting twist of this project is to not generate code for a CPU, but
   221   for the intermediate language of the <A HREF="http://llvm.org">LLVM</A> compiler
   222   for the intermediate language of the <A HREF="http://llvm.org">LLVM</A> compiler
   222   (also described <A HREF="http://llvm.org/docs/LangRef.html">here</A>). If you want to see
   223   (also described <A HREF="http://llvm.org/docs/LangRef.html">here</A>). If you want to see
   223   what machine code looks like you can compile your C-program using gcc -S.
   224   what machine code looks like you can compile your C-program using gcc -S.
   224   </p>
   225   </p>
   225   <p>
   226   <p>
   226   If JavaScript is chosen as a target instead, then there are plenty of <A HREF="http://www.w3schools.com/js/">tutorials</A> on the Web.
   227   If JavaScript is chosen as a target instead, then there are plenty of <A HREF="http://www.w3schools.com/js/">tutorials</A> on the Web.
   227   <A HREF="http://jsbooks.revolunet.com">Here</A> is a list of free books on JavaScript.
   228   <A HREF="http://jsbooks.revolunet.com">Here</A> is a list of free books on JavaScript.
   228   A project from which you can draw inspiration is this
   229   A project from which you can draw inspiration is this
   229   <A HREF="http://jlongster.com/2012/01/04/outlet-my-lisp-to-javascript-experiment.html">List-to-JavaScript</A>
   230   <A HREF="http://jlongster.com/Outlet--My-Lisp-to-Javascript-Experiment">Lisp-to-JavaScript</A>
   230   translator. <A HREF="https://bitbucket.org/ktg/parenjs/overview">Here</A> is another such project.
   231   translator. <A HREF="https://bitbucket.org/ktg/parenjs/overview">Here</A> is another such project.
   231   And <A HREF="https://github.com/viclib/liscript">another</A> in less than 100 lines of code.
   232   And <A HREF="https://github.com/viclib/liscript">another</A> in less than 100 lines of code.
   232   <A HREF="http://en.wikipedia.org/wiki/CoffeeScript">Coffeescript</A> is a similar project
   233   <A HREF="http://en.wikipedia.org/wiki/CoffeeScript">Coffeescript</A> is a similar project
   233   except that it is already quite <A HREF="http://coffeescript.org">mature</A>. And finally not to
   234   except that it is already quite <A HREF="http://coffeescript.org">mature</A>. And finally not to
   234   forget <A HREF="http://www.typescriptlang.org">TypeScript</A> developed by Microsoft. The main
   235   forget <A HREF="http://www.typescriptlang.org">TypeScript</A> developed by Microsoft. The main
   275   </p>
   276   </p>
   276 
   277 
   277   <p>
   278   <p>
   278   It seems HTML and JavaScript are much better suited for generating
   279   It seems HTML and JavaScript are much better suited for generating
   279   such animated slides. This <A HREF="http://www.impressivewebs.com/html-slidedeck-toolkits/">page</A>
   280   such animated slides. This <A HREF="http://www.impressivewebs.com/html-slidedeck-toolkits/">page</A>
   280   links to 22 slide-generating programs using this combination of technologies. 
   281   links to slide-generating programs using this combination of technologies. 
   281   However, the problem with all of these project is that they depend heavily on the users being
   282   However, the problem with all of these project is that they depend heavily on the users being
   282   able to write JavaScript, CCS or HTML...not something one would like to depend on given that
   283   able to write JavaScript, CCS or HTML...not something one would like to depend on given that
   283   &ldquo;normal&rdquo; users likely only have a LaTeX background. The aim of this project is to invent a
   284   &ldquo;normal&rdquo; users likely only have a LaTeX background. The aim of this project is to invent a
   284   very simple language that is inspired by LaTeX and then generate from code written in this language
   285   very simple language that is inspired by LaTeX and then generate from code written in this language
   285   slides that can be displayed in a web-browser.
   286   slides that can be displayed in a web-browser.
   401   <B>Description:</B>
   402   <B>Description:</B>
   402   This project is for true hackers! <A HREF="http://en.wikipedia.org/wiki/Raspberry_Pi">Raspberry Pi's</A>
   403   This project is for true hackers! <A HREF="http://en.wikipedia.org/wiki/Raspberry_Pi">Raspberry Pi's</A>
   403   are small Linux computers the size of a credit-card and only cost &pound;26 (see picture on the left below). They were introduced
   404   are small Linux computers the size of a credit-card and only cost &pound;26 (see picture on the left below). They were introduced
   404   in 2012 and people went crazy...well some of them. There is a
   405   in 2012 and people went crazy...well some of them. There is a
   405   <A HREF="https://plus.google.com/communities/113390432655174294208?hl=en">Google+</A> community about Raspberry Pi's that has more
   406   <A HREF="https://plus.google.com/communities/113390432655174294208?hl=en">Google+</A> community about Raspberry Pi's that has more
   406   than 177k of followers. It is hard to keep up with what people do with these small computers. The possibilities
   407   than 197k of followers. It is hard to keep up with what people do with these small computers. The possibilities
   407   seem to be limitless. The main resource for Raspberry Pi's is <A HREF="http://www.raspberrypi.org">here</A>.
   408   seem to be limitless. The main resource for Raspberry Pi's is <A HREF="http://www.raspberrypi.org">here</A>.
   408   There are <A HREF="https://www.raspberrypi.org/magpi/">magazines</A> dedicated to them and tons of
   409   There are <A HREF="https://www.raspberrypi.org/magpi/">magazines</A> dedicated to them and tons of
   409   <A HREF="http://www.raspberrypi.org/phpBB3/viewforum.php?f=39">books</A> (not to mention
   410   <A HREF="http://www.raspberrypi.org/phpBB3/viewforum.php?f=39">books</A> (not to mention
   410   floods of <A HREF="https://www.google.co.uk/search?q=raspberry+pi">online</A> material,
   411   floods of <A HREF="https://www.google.co.uk/search?q=raspberry+pi">online</A> material,
   411   such as the <A HREF="https://www.raspberrypi.org/magpi-issues/Projects_Book_v1.pdf">RPi projects book</A>).
   412   such as the <A HREF="https://www.raspberrypi.org/magpi-issues/Projects_Book_v1.pdf">RPi projects book</A>).
   577 If you have your own project that is related to security (must be
   578 If you have your own project that is related to security (must be
   578 something interesting), please propose it. We can then have a look
   579 something interesting), please propose it. We can then have a look
   579 whether it would be suitable for a project.
   580 whether it would be suitable for a project.
   580 </p>
   581 </p>
   581 
   582 
   582 <li> <H4>[CU10]  A Graphics Framework for JavaScript</H4>
   583 <li> <H4>[CU10] Anything Interesting in the Areas</H4>
   583 
       
   584 <li> <H4>[CU11] Anything Interesting in the Areas</H4>
       
   585   
   584   
   586 <p>
   585 <p>
   587 <ul>
   586 <ul>
   588 <li><A HREF="http://elm-lang.org">Elm</A> (a reactive functional language for animating webpages; have a look at the cool examples, or <A HREF="http://pragmaticstudio.com/blog/2014/12/19/getting-started-with-elm">here</A> for an introduction)
   587 <li><A HREF="http://elm-lang.org">Elm</A> (a reactive functional language for animating webpages; have a look at the cool examples, or <A HREF="http://pragmaticstudio.com/blog/2014/12/19/getting-started-with-elm">here</A> for an introduction)
   589 <li><A HREF="http://www.smlserver.org/smltojs/">SMLtoJS</A> (a ML compiler to JavaScript; or anything else related to
   588 <li><A HREF="http://www.smlserver.org/smltojs/">SMLtoJS</A> (a ML compiler to JavaScript; or anything else related to
   590   sane languages that compile to JavaScript)
   589   sane languages that compile to JavaScript)
   591 <li>Any statistical data related to Bitcoins (in the spirit of this
   590 <li>Any statistical data related to Bitcoins (in the spirit of this
   592 <A HREF="http://people.csail.mit.edu/spillai/data/papers/ bitcoin-transaction-graph-analysis.pdf">paper</A> or
   591 <A HREF="http://people.csail.mit.edu/spillai/data/papers/bitcoin-transaction-graph-analysis.pdf">paper</A> or
   593   this <A HREF="https://eprint.iacr.org/2012/584.pdf">one</A>; this will probably require some extensive C knowledge or any
   592   this <A HREF="https://eprint.iacr.org/2012/584.pdf">one</A>; this will probably require some extensive C knowledge or any
   594   other heavy-duty programming language)
   593   other heavy-duty programming language)
   595 <li>Anything related to programming languages and formal methods (like
   594 <li>Anything related to programming languages and formal methods (like
   596   <A HREF="http://matt.might.net/articles/intro-static-analysis/">static program analysis</A>)  
   595   <A HREF="http://matt.might.net/articles/intro-static-analysis/">static program analysis</A>)  
   597 <li>Anything related to low-cost, hands-on hardware like Raspberry Pi, Arduino,
   596 <li>Anything related to low-cost, hands-on hardware like Raspberry Pi, Arduino,
   598   <A HREF="http://en.wikipedia.org/wiki/Cubieboard">Cubieboard</A>
   597   <A HREF="http://en.wikipedia.org/wiki/Cubieboard">Cubieboard</A>
   599 <li>Anything related to microkernel operating systems, like
   598 <li>Anything related to unkernel operating systems, like
   600   <A HREF="http://www.xenproject.org">Xen</A> or
   599   <A HREF="http://www.xenproject.org">Xen</A> or
   601   <A HREF="http://www.openmirage.org">Mirage OS</A>
   600   <A HREF="http://www.openmirage.org">Mirage OS</A>
   602 <li>Any kind of applied hacking, for example the Arduino-based keylogger described
   601 <li>Any kind of applied hacking, for example the Arduino-based keylogger described
   603    <A HREF="http://samy.pl/keysweeper/">here</A>
   602    <A HREF="http://samy.pl/keysweeper/">here</A>
   604 </ul>
   603 </ul>
   618 </TD>
   617 </TD>
   619 </TR>
   618 </TR>
   620 </TABLE>
   619 </TABLE>
   621 
   620 
   622 <P>
   621 <P>
   623 <!-- hhmts start --> Last modified: Sat Nov 21 12:24:03 GMT 2015 <!-- hhmts end -->
   622 <!-- hhmts start --> Last modified: Sat Nov 21 13:08:54 GMT 2015 <!-- hhmts end -->
   624 <a href="http://validator.w3.org/check/referer">[Validate this page.]</a>
   623 <a href="http://validator.w3.org/check/referer">[Validate this page.]</a>
   625 </BODY>
   624 </BODY>
   626 </HTML>
   625 </HTML>