SI 413 Fall 2023 / Project

This is the archived website of SI 413 from the Fall 2023 semester. Feel free to browse around; you may also find more recent offerings at my teaching page.


Dart is a relatively new language developed by Google for "front-end" development, like making mobile or web apps. You can think of it as a sort-of answer to Apple's Swift language (for iphone apps) and Google's Go language (for backend web server programming).

Since it was released in 2011, Dart has gained considerable popularity for its ease of use and the ability to compile the same code to Javascript or to a native Android app.

Useful Links


We will use the Dart SDK version 2.13 (or later). This includes a number of tools, including a command-line interpreter dart.

Everything you need is already installed on CS department lab machines in the /courses/roche/413/bin folder, which should be in your PATH.

To install on your virtual machine, follow the instructions here (click the Linux tab).

How I will run your code

The programs you submit should be in a single file called proj.dart, for either part of the project. I will test your code by running the following commands using the software available in the lab environment or using the instructions above:

dart proj.dart

Phase 1 Requirements

For this language, you need to implement modifications A,C,D,F,G,H,I, and J. See the Phase 1 page for details on what this means.

Phase 2

See the Phase 2 Page for the list of suggested problems. Of the ones listed, I recommend the following as being most well-suited for LANGUAGE:

  1. Compiler
  2. Image Creator
  3. Hangman
  4. TODO list
  5. Vending Machine
  6. Game with hidden agenda
  7. Sports Ticker
  8. Rock, Paper, Scissors
  9. Music Maker
  10. ??? (you choose!)