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.


Tcl is a scripting language invented by John Ousterhout in 1988. It was originally designed mostly to help the author accomplish simple tasks, but it now used in many server-side web applications and to make simple GUIs. Like most scripting languages, Tcl is designed primarily with usability in mind, so programming in it is meant to be easy and simple. You will often see Tcl mentioned in the context of Tcl/Tk, which refers to the Tk graphical toolkit (for making window boxes and the like).

Useful Links


We will use Tcl/Tk version 8.6.

Everything you need is already installed on CS department lab machines.

To install on your virtual machine, follow these steps:

  1. Run sudo apt install -y tcl tk
  2. That's it!

How I will run your code

The programs you submit should be in a single file called proj.tcl, 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:

tclsh proj.tcl

Phase 1 Requirements

For this language, you need to implement modifications A,B,C,E,F,G, and H. 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 tcl:

  1. Compiler
  2. Make
  3. Image Creator
  4. Game Scheduler
  5. Hangman
  6. TODO list
  7. Vending Machine
  8. Game with hidden agenda
  9. Find the missing digits
  10. Sports Ticker
  11. Rock, Paper, Scissors
  12. ??? (you choose!)