06 October 2014

I’m continuously soliciting project ideas from good students in the areas of functional programming, functional parallel programming, and functional high-performance computational finance.

Projects can range from purely theoretical to more practically oriented projects.

Please see the HIPERFIT student projects page for project suggestions related to functional high-performance computational finance.

I have a special interest in the Standard ML programming language, in particular through the MLKit project and the various MLKit spin-off projects, such as SMLserver, SMLtoJs, and SMLonline. If you are interested in doing any kind of work related to the above projects, please let me know. Here are some possible topics:

  • Unit-testing of SMLtoJs code with PhantomJS
  • Reactive programming with SMLtoJs
  • GPGPU programming in the browser with shaders and SMLtoJs
  • Game programming in SMLtoJs
  • Extending SMLonline with intellicense and improved error feedback

I have recently started using Smackage for maintaining Standard ML libraries; see my blog entry on Getting Started with Smackage. Smackage is a relative new invention and more infrastructure is needed for easing the daily life with Smackage, including work on library documentation tools (e.g., improvement of SigDoc) and Smackage build support. Let me know if you would be interested in work in this area.

The Project Description

The time I spend on supervision of a project is usually strongly correlated with the time and effort provided by the student(s). In the project period, I usually schedule a one-hour weekly meeting and I expect students to send an agenda for the meeting the day before the meeting. I expect the student to be aware of all the formal requirements with respect to turn-in dates and so on. I usually recommend that projects (also smaller 7.5ECTS projects) are examined using an external examiner from a neighboring university.

The first artifact to work out when preparing for a project is the project description, which needs to contain motivation for the project, a thesis statement to be tested, information about how the thesis is tested (programming, benchmark tests, formal reasoning, unit tests, …), including information about methodology, and finally, a section describing a time-line for the project (with milestones).

Still Interested?

If you find that you could envision yourself doing a project in one of the above areas, drop me an email and we can arrange for a 1/2 hour meeting for discussing the possibilities.

Examples of Supervised Projects

Here is a list of some example projects I have supervised or co-supervised:

  • Michael Budde. Compiling APL to Accelerate Through a Typed IL. Novemver 2014. Co-supervisor.

  • Casper Holmgreen. A Parallel Haskell Library for Computing Value-at-Risk. Novemver 2014. Co-supervisor.

  • Niels G. W. Serup. Kernel Fission for GPGPUs. DIKU BSc thesis project. June 2014. Co-supervisor.

  • Philip Munksgaard. SmlCL - An ML Library for Utilizing Parallel Architectures using OpenCL. DIKU BSc thesis project. June 2013. Supervisor.

  • Rasmus Borgsmidt. Functional Array Programming Compiled to a Virtual Machine. DIKU BSc thesis project. June 2013. Co-supervisor.

  • Nis Wegmann. First-class, Scoped Type Classes for Dependently Typed Languages. DIKU MSc thesis project. January 2013.

  • Esben Bistrup Halvorsen. Calculating Key Ratios for Financial Products using Automatic Differentiation and Monte Carlo Simulation. DIKU MSc student project. December 2012. Supervisor. PDF.

  • Kenneth Sjøholm. AJAX Programming in Standard ML. ITU MSc thesis project. May 2008. Supervisor.

  • Anders Bille. AJAX Applications in ML. ITU MSc thesis project. November 2007. Supervisor.

blog comments powered by Disqus