SMU Guildhall Portfolio Requirements:


Your portfolio will consist of examples of code that showcase your programming talents.

If you have a portfolio showcasing past code samples, submit 2-5 examples of structured computer code that you have written. Code samples in any structured language will be accepted, though games are preferred. We prefer C++ but will review other languages as well (C#, Java, etc.) C++ skills are critical to success at the Guildhall, and doing your entrance test in C++ will help us verify that you are indeed ready.

Each example should be in a self-contained directory and should include code, documentation (indicating intent, scope, input, output, etc.), user guide/instructions, and illustrations of input and output for the program. Include a README text file explaining the contents of your submissions as follows:

  • Your name
  • Directory structure for your code samples
  • Explanation/description of each code sample
  • Date when the code was written

You will save these into a .zip file and upload into the "media" section of our online portfolio site.

If you do not have a portfolio showcasing your code, you must complete the following assignments:

Assignment 1:

Create a Resource Manager for a Real Time Strategy (RTS) game. Your program manages a "directed graph" (a system of nodes and links between them going in one direction, much like web pages and their links). On startup, your program reads a file "resource.txt" (from the current directory) which describes resources and the resources they depend on. The file resource.txt could, for example, contain (exactly 4 lines):

handgun bullets
bullets ore
bombs ore
turret bullets

The first line says that there is a link from a node called "handgun" to a node called 'bullet". This means for a handgun to be a useable, it relies on the resource bullets.


  • Your program should work with any amount of nodes and any amount of links between them (your program may be tested with a larger resource.txt made by SMU Guildhall faculty). To this end, you should represent nodes with a Node class, and the set of links for a single node using an STL container of your choice.
  • Your program should loop and display two items on the screen: (1) a current view of the graph, and (2) a list of each node and whether it is usable or not. For any current node, if any of the nodes it relies on get deleted that node becomes unusable.
  • Your program should handle two types of input. A user should be allowed to delete a node and quit at any time. If using a console program, input should be "q" for quit, or the name of a node to delete it. When you delete a node, make sure any links to it are deleted correctly too. Be certain to have correct memory management for these operations ensuring no memory leaks when the program exits.

Extra Credit
Add additional commands to insert new nodes and new links. Save the modified graph upon exiting. Create a nice graphical display. Take it as far as you can.

As a guideline, programmers who will ultimately be successful at SMU Guildhall should not take more than a week to complete this assignment.

Assignment 2:

Complete The Huffman Exercise — Download the Huffman Exercise PDF File. Complete and upload to our online portfolio site.