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.
Topics related to HIPERFIT
Please see the HIPERFIT student projects page for project suggestions related to functional high-performance computational finance.
Topics related to Standard ML
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. Possible topics include reactive programming with SMLtoJs, GPGPU programming in the browser with shaders and SMLtoJs, game programming in SMLtoJs, advanced features in the SMLonline IDE (intellicense, and error feedback), and collaborative programming in a browser IDE.
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).
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