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

C# is a sort-of extension of C and C++ that was designed by Microsoft as part of its .NET framework, and released within the last 10 years. It is designed to be "multi-paradigm", meaning you can do functional, or object-oriented, or procedural, or whatever other kind of programming style you want in the language. (But for this project, we'll be mostly sticking with object-oriented.) The language, the development environments (IDEs), and the windowing toolkit are all closely related, and you will use them all together for this project.

Useful Links

How I will run your code

Your entire program should be in a single file called proj.cs. I will compile and run it in the MI 316 CS Linux environment as follows:

dmcs proj.cs -pkg:gtk-sharp-2.0
mono proj.exe

Even if you write your program using an IDE such as MonoDevelop, remember that I will run your code as described above, so make sure you test that it works that way from the command line!

Phase 1 Requirements

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

  1. Make (It should involve some graphical indicator of what files are being remade as it happens.)
  2. Image Creator
  3. Hangman (You would have to make it nice and fancy.)
  4. TODO list
  5. Vending Machine
  6. Game with hidden agenda
  7. Sports Ticker
  8. Rock, Paper, Scissors
  9. ??? (you choose!)