The second book of the semester, Hackers and Painters, examines the power of programming languages in enabling the rapid development of web applications and services such as Viaweb.

The goal of the second project is for you to explore non-traditional programming languages by creating a web application or service. In addition to creating a software artifact, students must also present a TechCrunch-style startup pitch that demonstrates and highlights the features of their web artifact.


Working in groups of 2 - 3, students must create a software or hardware artifact that meets the following requirements:

  1. The artifact is written primarily in a relatively non-traditional language such as:

    Moreover, the artifact must utilize a unique feature of the language such as:

    • Functional Programming
    • Meta-programming (ie. macros)
    • Concurrency/Parallel Constructs
    • Advanced Type Facilities

    The important thing is that you stretch your mind a bit :].

  2. The artifact is a web application (interactive) or web service (provides a RESTful API).

  3. The artifact must be hosted on a cloud platform such as Amazon Web Services, Windows Azure, Google Cloud, Heroku, or Digital Ocean.

  4. The source code is stored on an online repository such as GitHub, GitLab, or Bitbucket.

  5. The project includes sufficient documentation to build, deploy, and use the artifact.

  6. The repository README.md explains the goal of the project and describes how it takes advantage of the unique features of the chosen non-traditional programming language.


Because of the short time-frame, it is not expected that your artifact be polished or feature complete. Instead, it should be more along the lines of a prototype or MVP (e.g. a cool hack).


Here is the project timeline:

Date Milestone Description
March 11 Proposal Description of proposed project.
March 18 Progress Status report of current progress.
March 25 Presentation In-class presentations and demonstrations.

More details about each of these milestones is described below.


Your group must submit a proposal document by midnight on Thursday, March 11, which provides the following information:

  1. Lists the group members and each of their proposed roles.

  2. Describe the proposed project and how it meets the project requirements.

  3. Enumerates any resources required.

Cloud Computing Resources

If you need any cloud computing resources, many platforms such as Amazon Web Services, Windows Azure, Google Cloud, Heroku, and Digital Ocean have free tiers or promotional credits.


Your group must submit a proposal slide deck (5 - 8 slides) by midnight on Thursday, March 18, which provides the following information:

  1. Addresses the questions and expections in feedback email provided regarding the project proposal.

  2. Summarizes the work done thus far, in particular the design and implementation details of your artifact.

  3. Enumerates the remaining tasks, with specifics on what you plan on accomplishing during the upcoming sprint week and what you realistically plan on accomplishing before the deadline.

  4. Itemize contributions to the project thus far and what how each member will aid in completing the tasks above.

Provide video or image evidence of your project and your progress.


Because we are aiming for a TechCrunch-style presentation, each group will be given 6 - 8 minutes to sell the class on their artifact:

To help you organize your pitch, your group must submit a project slide deck (4-6 slides) by 9:00 AM on Thursday, March 25, which provides the following information:

  1. Demonstrate the web application or service.

  2. Describe the design and architecture of the software project.

  3. Discuss how project took advantage of unique features in the chosen programming language.

This slide deck should be used as the basis for the pitch that the group will provide to the class.


The project will be graded with the following rubric:

Metric Points Description
Proposal 5 Does the proposed project meet the requirements?
Progress 5 How much work did the group do before the hackathon?
Presentation 5 How well did the group present and demonstrate their artifact?
Requirements 7.5 How well did the project meet the requirements?
Technical Challenge 7.5 How difficult was the project?
Execution 7.5 How complete was the project?
User Experience 7.5 How enjoyable was project for end users?

Peer Evaluation

The first two metrics will be graded by the instructor, but the final five metrics will be evaluated based on feedback from your fellow classmates.


Once you have organized your group, please fill out the following form:

Note, while you can always update your submission whenever you have your proposal, code repository, and presentation slides, I would recommend creating place-holder links that you fill-in later (ie. create empty slides for the proposal and presentation and then update those documents later).