Signature in Vivaldi

return to coursework

PROG 2200

Advanced Object-Oriented Programming

60 credit-hours

This was really more of an "advanced topics" course than it was about object-oriented programming itself, but we did use it constantly, since we were developing in C#. What we really covered was:

  • Writing a basic network chat program.
  • Writing a multi-threaded chat client.
  • Writing a simple game of our choice that used graphics (for me, Maize, see below).
  • Learning something development-related of our choice that had not been covered in any of our courses and presenting it to the class (a "Gap Analysis" – I did mine on Python, see below).

Maize

This was a good follow-up exercise to the maze-solvers we wrote for data structures. It turns out that building a maze with a stack of x/y positions bears a lot of similarity to solving a maze with a stack.

I'm very proud of the fact that my game works with Windows Forms and not in spite of it. You can minimize, maximize, resize – though I did put a lower limit on the size of the window to stop the maze from disappearing entirely. We were required to use double-buffering, too. But for layout reasons I was drawing on a panel, not directly on the form, and for some reason double-buffering isn’t something you can just turn on for panels. I followed these directions to subclass a panel.

Python

For my "Gap Analysis", I picked the Python programming language. I did so because I’d already started Zed A. Shaw's Learn Python The Hard Way tutorials.

Python is a good language to write in because the syntax is compact yet very readable - you can bang out entire classes in just a few lines! You can also have functions outside of classes, like in C++. Boilerplate stuff is kept to a minimum, and things just tend to work the way you hope they do. If you're interested in programming at all, give Python a try!

I used the Python I learned to put together a little satire called NSCiCi. You can even run it in your browser! It’s also part of the "report package" you can download that has my written report, my slides, and the code samples.

Maize Python
Maize - click to download
Download: 3 MB (ZIP) Watch on YouTube :: or download: 51 MB (Video)
Report Package: 39 MB (ZIP)