Author(s):
Instructor: Michael Johnson michael.b.johnson@mail.sprint.com
The scope of the
project is to allow Teach for
The Teach for
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.
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.