Project Proposals

These project proposals are written by KindSoftware researchers and may be chosen by advanced undergraduates for undergraduate theses, M.Sc. students for theses (at ITU and elsewhere), and visiting undergraduate and postgraduate Summer internship students.

Note that all of these projects actually fall under multiple categories but are only listed under their dominant category.

Projects in an emphasised font are no longer available as someone is working on the problem at this time.

Choose the links at right for more information about past and long-term projects.

(November 2011) ITU BSc and MSc students looking for an independent study or thesis project: please have a look at the below brief summary of projects that I'm current interested in supervising.

Each project has a name, a "Hollywood" pitch, a precondition that stipulates what you need to know to attempt the project, and a postcondition that summarizes what you will learn if you succeed in the goals of the project. Also included in each description is its "secret sauce," which is the primary ingredient that makes the project special. All of these projects have a proper research sub-component and all are potential fonts for a peer-reviewed published paper.

  • Flatland - Abbott's Flatland using Artificial Life
    requires Visual Studio, C#, interest in AI and ALife, basic understanding of physics
    ensures core concepts, technologies, and algorithms of AI and ALife; 2D physics
    secret sauce 21st century AI and artificial life research + Farseer physics engine + Joe's past work in Distributed Artificial Life (published in USA Today and Wired around 10 years ago)
  • Walking with Dinosaurs - evolve dinosaurs that can move on their own accord
    requires C or C++, interest in AI and ALife, basic understanding of physics, familiarity with 3D graphics engines use
    ensures core concepts, technologies, and algorithms of AI and ALife; 3D physics; dinosaurs
    secret sauce real dinosaur data + the Havoc physics engine + Karl Sims's Evolved Virtual Creatures
  • BON for C# - connect BON to C#
    requires Visual Studio, C#, Code Contracts, BON
    ensures compilers, refinement theory, static checkers
    secret sauce Beetlz meets Code Contracts
  • Google+Mozilla - Chrome+Firefox + V8/SpiderMonkey
    requires compilers, C++, JavaScript
    ensures compilers, optimization, static analysis
    secret sauce Joe knows Brian Rakowski, the project manager of Chrome, Kevin Milliken, the one of the main guys responsible for V8, and Brenden Eich, the inventor of JavaScript and CTO of the Mozilla Foundation, and they all want to figure out a way to work together with us. The three sub-projects that I am interested in are: (1) experiment with basic and advanced standard compiler optimizations in V8, particularly those that come from historic dynamic languages, (2) experiment with static analysis of gradually typed JavaScript with an aim toward performance optimization or correctness, and (3) profile V8 for a large body of example code for a particular popular tool/framework (e.g., Node) with an aim toward identifying hot-paths, possible architectural changes, and optimizations to improve performance or correctness.
  • B/VDM/Z - old-school system specification and reasoning meets Open Source Software
    requires basic concepts of formal specification and reasoning, Visual Studio+C# or Eclipse/IntelliJ+Java
    ensures deep knowledge of at least one of B, VDM, or Z
    secret sauce Joe is good friends with the creators and main proponents of these three specification languages and all have new Open Source toolkits available (Rodin, Overture, and the CZT). Potential projects in this domain include: (a) integrating the lightweight ProverEditor plugin for Eclipse with VDM's HOL proof generation and Eclipse integration, (b) develop a new SMT-LIB backend for the VDM tool suite.
  • AutoGrader for Visual Studio - automatic grading of analysis, design, architecture, validation and verification for C#
    requires Visual Studio (and add-ins), C#, Code Contracts
    ensures Visual Studio add-in development, MSTest, ReSharper, NUnit, StyleCop, FxCop, etc.
    secret sauce reuse architecture from our Eclipse AutoGrader and systems from the Microsoft world
  • CLOPS generation of Eclipse plugins - use a Domain Specific Language for the specification and generation of advanced command-line argument processing to automatically generate an Eclipse plugin/feature that wraps the corresponding command-line tool
    requires Eclipse, parsers
    ensures Eclipse plugin/feature development, automatic software engineering via code generation
    secret sauce CLOPS is already shipped and being used in many projects
  • java.util.logging and log4j facade for IDebug - help developers plugin/adopt an advanced logging infrastructure by migrating from existing popular APIs
    requires Java, Eclipse, JML, Javadoc, patterns
    ensures patterns, logging APIs
    secret sauce patterns for fun and profit
  • rigorous development, validation, and verification of DiVS - complete the implementation and V&V of what might be the next system used in Denmark to determine the outcome of national elections
    requires Java, JML, BON, design by contract, software architecture
    ensures automated unit test generation, semantic static analysis, rigorous scenario-based testing
    secret sauce DiVS is the result of a top MSc thesis at ITU and is ready to move to the next level
  • OpenJML - contribute to the modern JML tool suite for Java 1.7
    requires Java, Eclipse, parsers, compilers
    ensures typing and type checking, runtime assertion checking, code generation, extended static checking, automated theorem proving
    secret sauce large community of users, developers, and scientists desperate for a new major release
  • an Open Source Digital Voter List system - design and develop an Open Source replacement for the proprietary, expensive Digital Voter List system developed and supported by KMD, used to generate and check voter cards in the 2011 national elections
    requires software engineering
    ensures networking, security, cryptography
    secret sauce the government would use an Open Source solution in lieu of the proprietary one if it were of high quality and supported by volunteer Danish citizen-activist-geeks
  • an Open Source NemID - design and develop an Open Source replacement for the proprietary, expensive NemID system developed and supported by DanID
    requires OO software engineering, Open Source principles
    ensures rigorous software engineering, cryptography foundations and rigorous crypto protocol design
    secret sauce huge impact if executed properly, technical Danes and the press are calling out for a solution, the government is under pressure about NemID's security and transparency
  • Eiffel to Java VM - extend and complete the Java back-end of the premiere Eiffel compiler
    requires OO software engineering, basic compilers
    ensures compilers, Eiffel, Java VM bytecode
    secret sauce a first version of the back-end for the EiffelStudio compiler was developed at ETHZ for an MSc thesis, a full .Net back-end already exists
  • textual BON in EiffelStudio - integrate the textual BON language and the capabilities of BONc into EiffelStudio
    requires OO software engineering, BON
    ensures compilers, Eiffel, formal refinement
    secret sauce a detailed draft refinement from BON to Eiffel already exists and the BONc and Beetlz tools show how this can be done for the Java programming language in Eclipse
  • visualizing program reasoning - intuitive graphical representations of core concepts of program reasoning
    requires novel GUI design and development, logic, an interest in program reasoning
    ensures axiomatic reasoning about programs, semantics, logic, novel interactive UIs
    secret sauce apply Apple's and Tufte's design principles to logical artifacts-as-data
  • the self-playing pinball machine - my Mac knows how to make combos!
    dedicated to Prof. Ted Baker on the occasion of his semi-retirement
    requires webcam, basic fast image processing, basics of AI and physics, Java, comfortable with electricity and a solder gun
    ensures realtime Java, expert systems, automatic risk analysis, moderate Newtonian physics, basic electronic engineering
    secret sauce realtime systems programming, encode pin-specific rulesets in an expert system with risk analysis, expert pinball player and hacker as supervisor, one of Ted's students, Hong-Hee Ko, did a variant on this project back in 1991 (report)
  • experiments in verified electronic voting systems - advanced programming languages and environments for critical systems
    requires good knowledge of OO programming and logic
    ensures Eiffel or SPARK/Ada or PerfectDeveloper or Z or VDM++ or Event-B or VeriFast
    secret sauce rare, broad experience with advanced specification and programming languages and IDEs are available to write verified critical systems