Implementation Feasibility Document

Teach For America Prototype

 

Sunday, April 14, 2002

 

Author(s):

 

Instructor: Michael Johnson                 michael.b.johnson@mail.sprint.com

 

 

Introduction

 

The scope of the project is to allow Teach for America placement personnel to efficiently maximize the placement of the available teaching applicants based on their location preferences. The prototype creates a more productive environment for TFA users to place all of the applicants across the seventeen different regions.

 

 

Functional Summary 

 

The Teach for America prototype’s main function is finding the optimal placement of all the applicants across the various regions.  It will also allow the user to add, delete, modify, and query information in various ways. The applicants’ record will contain basic information: SSN, first name, last name, address, email, phone number, etc. The TFA user will be able to query the applicants by region based on their preferences.  For example, Preference #3 and LA will produce all applicants whose number three preference is Los Angeles.  The TFA user will also be able to run several types of reports including listing all applicants by last name or SSN as well as a report that lists all the regions and applicants assigned. 

 

Integration of the TFA Prototype

 

This project, unlike others, does not really have any “integration” to speak of other than the simple requirement of Access 97 or later.  This application is designed to run on a single workstation running Windows 95 or higher, it is not designed to be a client server application which usually has several integrations issues to be addressed.  Again though, since this is application is designed to run on a single PC, there are no network integration issues to discuss with this project.

Feasibility

 

            This project may on the surface seem quite simple, but once we began to dive into the complexities of how to solve this classic “assignment” problem, we were completely overwhelmed.  We thought we could find some good examples that compare with this TFA situation of placing n applicants to n jobs across x regions, but after searching the entire Internet with every search engine that is out there, we came up completely empty handed.  Frustrated, we tried to solve the problem in a linear approach, but realized after numerous tests that it would never scale to what Teach for America would need since it translated to 1000! (factorial) or 4.0238 x 10 2567 which would take several life times and the fastest computers to simply calculate all the different combinations, not to mention the “optimal” assignment.  We then resumed our search and found something discussing an algorithm called the “Hungarian Algorithm”.  The only examples we could even find dealing with the “Hungarian Algorithm” were theoretical, but absolutely no code.  Since we were unable to find any kind of code samples that used the algorithm, we decided write our own from scratch using VBA 5.0.  We knew that it was possible to write the code in C++, but due to time constraints and all the problems we had dealt with following the linear approach, we decided to keep things simple and use VBA.  VBA is truly the best language for manipulating and dealing directly with data in an Access database.  With the short amount of time left to complete this project, we have had to limit some of the functionality for the TFA user so that our placement algorithm can more easily calculate the optimal placement across the different regions.  Instead of the TFA user simply keying in the number of positions at all the different locations, it will be necessary for the TFA user to key in all the positions that need to be filled as separate records, not just simply a number.  Also the TFA user will have to select which positions and which applicants will be used by the placement algorithm with a simple check box.  Although, this may be a bit more complicated, it also allows for flexibility if a single applicant decides not to participate for another semester or two, their data can still remain within the database and the algorithm will still function.  There will be a test before running the placement algorithm to assure that the number of positions to be filled equals the number of applicants to place, so if they do not match, the TFA placement personnel will have to make the necessary adjustments before the prototype will run.