This project is full for spring 2018. We will likely be accepting new students for fall 2018; please check with us about that in late spring.

We're looking for UROP and MEng students to work on enhancements to Object Spreadsheets to improve its usability or suitability for particular problems. Possible areas of work range from the core data model and computational engine to the IDE and integrations with other tools. Here are some projects that would fit well with our plans as of November 2017, though the status may change by the time you start work:

Implement parts of the new UI to edit spreadsheets with custom 2D layouts.

Reimplement the data storage and computation using a database backend to improve the performance compared to the existing interpreter.

Add features to the data model and language to make application logic easier to express, such as ordered lists, multisets, and a "group by" operator.

Add interactive features to the formula editor, such as code completion and insertion of references to cells by clicking on them.

Add real access control: integrate Object Spreadsheets with an authentication provider and add simple configuration options to limit reads, writes, and procedure calls based on the current user (complex access control logic is done within the sheet itself).

Add support for centralized read access control and information flow analysis to provide stronger confidentiality assurances, like Jeeves.

Build example sheets/applications to solve problems in a given domain and make any enhancements to Object Spreadsheets that you need.

We're open to other ideas. Please get in touch with Matt to find out where we are and how you can join in.

Qualifications:

Good grade in 6.170 or equivalent experience with Web frontend and backend development.

We're looking for a student to redesign the menu system of a current model digital camera using conceptual design principles to make it easier to use, as a case study of the approach. Cameras are increasingly software dominated, but the user interfaces and underlying concepts are often imperfect. Reviewers are more frequently judging cameras by their software, so there's growing interest in the interaction design of cameras, and a great opportunity to figure out how to improve camera design in general.