Giter Club home page Giter Club logo

penandpaper's Introduction

Pen and Paper

Pen and Paper uses the transportation algorithm to assign alumni to prospective students based on their compatibility and attributes of the student. These alumni encourage their assigned prospective students to attend university with written letters. Read a report about how and why we completed this project here. The main functional changes that were added since this report was written are:

  • The geographic proximity characteristic is determined by the distance between zip codes and not just the first two digits of the zip codes.
  • The use of .csv files intead of .txt files.
  • Better user-friendly design of the input and output data.

To Run

  1. Download and unzip this Github repository.

alt text

  1. Install Java.
  2. Install GLPK which contains GLPSOL.
  3. Create a survey in this style and send to alumni volunteers. Once the volunteers have submitted their answers, download their responses as a .csv file, rename that file to Alumni Data.csv, and place it in the confidential_data folder. Be sure to remove all duplicates and unfinished forms from this file.

alt text

alt text

  1. If applicable, edit Majors List.csv and Scholarship List.csv in open_data.
  2. Insert correctly formatted Student Data.csv in confidential_data. Here is what each column should contain:
Ref Gender 1st Gen Region Scholarship Level Conversion Predictor Postal Academic Interest Extracurricular Interest
unique identifier M or F for gender identity (for gendered sports matching) 1 or blank for 1st generation student status string of student's location (TX if in state status) items in Scholarship List.csv predicted enrollment (1 is more likely and 6 is less likely) zip code comma separated list of items in Majors List.csv comma separated strings

Here is an example of the format of Student Data.csv:

alt text

To change a .xlsx file to a .csv file, open Excel, go to File, Save As, then save with the "CSV UTF-8 (Comma delimited)(*.csv)" extension.

alt text

  1. With a Windows operating system, double-click Start.bat and follow the instruction prompts. Other operating systems will require the user to manually execute OperationPenAndPaper.jar in the command line.
  2. Retrieve results in the results folder.

Interpreting Results

This program creates four output files to interpret.

  • Category Analysis.csv: Provides statistics on the matchings that this program made.
  • Final Output.csv: Provides the matchings between students and alumni. Each matching is listed with the reason that matching was made and, if applicable, the student and alumni information that attributed to that matching.
  • Match Scores.csv: A matrix showing all match scores between each alumnus and student. A match score is the value of an assignment of an alumnus to student.
  • Students Lacking Letters.csv: A list of all students who did not receive letters, sorted by their average match score.

Acknowledgements

Pen and Paper was developed for the Fall 2018 Operations Research course and Spring 2019 Operations Research in Practive independent study at Southwestern Univeristy. Dr. Barbara Anthony's advised this project. This project was completed with help from Daniel Maldonaldo, Katie Dyo, Alexander Hoffman, and Greg O'brien.

penandpaper's People

Contributors

devonfulcher avatar

Stargazers

 avatar

Watchers

 avatar  avatar

penandpaper's Issues

Add threads

In my Computer Systems class, we are talking about threads. Right now the program executes in about 30 seconds. Implementing threads would be a useful exercise and applicable to this program as it reads in a lot of files. This read in process could be parallelized as well as other parts of the program.

Create detailed README.md

This should be neatly formatted with Markdown. Anybody should have enough information from our README to install all software and run our program. View-access links should be provided to our final report and survey. We should also document changes that have taken place since we wrote our final report. Our README will also have information on our motives. Finally, our README should mention how and why we are achieving our goals.

Change .txt files to .csv files

I believe many of our input .txt files could actually be .csv files with minimal change to our code. This will decrease the amount of effort required from our users. Instead of changing input files from .xlsx to .csv then from .csv to .txt, our users could simply change their .xlsx files to .csv files.

Reorganize/Refactor code

The majority of our code is in the Main.java file which is currently 827 lines long. We can break up this code into multiple files. This will make our code easier to understand and maintain.

Make our program easier to use

This will allow the admissions office to use our program without our help, hopefully for many years. There are various possible ways that we could accomplish this. We should create a way that our program can be run without installing Eclipse. This could possibly be done by forming our final program into a .jar file that is executable by a .bat file. There may be other ways to allow our program to be run without Eclipse. Also, we could make a graphical user interface to make it easier for our users.

JUnit tests

Our code has been largely untested. We should change this with JUnit tests.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.