HomeAbout UsAdmissionsNewsContactPlacementStudent WorkIndustry RelationsAlumniForums
Gain access to admissions, curriculum, financial info, forums and placement.

Already Registered? Login Here.

Login

Forgot your password?

Contact Us

Software Development Portfolio Requirements

Labeling instructions:

All submissions must have your name and Guildhall application system ID number prominently displayed. Digital media should be clearly labeled on the outside and should also contain a README text file (or MS Word file) with your name, Guildhall application system ID number, and a list of the contents.

Software Development applicants must complete the following:

Note:

As a guideline, programmers who will ultimately be successful at The Guildhall at SMU should not take more than a week to complete this assignment. If this is a problem for you, please contact a student advisor.

1. Assignment:

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 The Guildhall at SMU 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. The first is a current view of the graph. Secondly, you should list 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.

2. Portfolio Examples:

Submit in digital format, or on paper, 2-5 examples of structured computer code that you have written. 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:

3. Complete The Huffman Exercise

Note:

You application will NOT be reviewed until all non-optional elements on this list have been received.