team lovelace group formation project. objective our project is designed to take a large group of...

27
TEAM LOVELACE GROUP FORMATION PROJECT

Upload: dominick-lewis

Post on 13-Jan-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TEAM LOVELACE GROUP FORMATION PROJECT. OBJECTIVE Our project is designed to take a large group of people and divided them into teams based on  Time Availability

TEAM LOVELACEGROUP FORMATION PROJECT

Page 2: TEAM LOVELACE GROUP FORMATION PROJECT. OBJECTIVE Our project is designed to take a large group of people and divided them into teams based on  Time Availability

OBJECTIVE

Our project is designed to take a large group of people and divided them into teams based on

Time Availability Skills Grades Gender

Page 3: TEAM LOVELACE GROUP FORMATION PROJECT. OBJECTIVE Our project is designed to take a large group of people and divided them into teams based on  Time Availability

SOLUTION

Best way to account for all four of those criteria?

Page 4: TEAM LOVELACE GROUP FORMATION PROJECT. OBJECTIVE Our project is designed to take a large group of people and divided them into teams based on  Time Availability

SOLUTION

Best way to account for all four of those criteria?

Genetic Algorithm

Page 5: TEAM LOVELACE GROUP FORMATION PROJECT. OBJECTIVE Our project is designed to take a large group of people and divided them into teams based on  Time Availability

SOLUTION

Randomly assign every student to a team

Score each team

Switch two members between the worst team and any other team

Done!

Are they all good enough?

Did their scores improve?

Yes

No

Yes

No

Page 6: TEAM LOVELACE GROUP FORMATION PROJECT. OBJECTIVE Our project is designed to take a large group of people and divided them into teams based on  Time Availability

MODULAR LAYOUT

Driver

FormulasRNG

AVL Tree

Input file

Output file

Page 7: TEAM LOVELACE GROUP FORMATION PROJECT. OBJECTIVE Our project is designed to take a large group of people and divided them into teams based on  Time Availability

DRIVER

Main Module :

- Receives input file and name of output file.

- Parses input into usable data

- Outputs the calculated groups to the output file.

- Signature: team-creator

- team-creator is the function the user will call to initiate the program.

Page 8: TEAM LOVELACE GROUP FORMATION PROJECT. OBJECTIVE Our project is designed to take a large group of people and divided them into teams based on  Time Availability

AVL - TREE

Data Structure :

- AVL-Tree ( AVL-Tree) we use an inner and outer tree

- Uses the Formula module to score the teams

- Uses the RNG module to generate random numbers to switch members

-Signature: form-initial-tree

- forms initial tree and begins the process of scoring and switching

Page 9: TEAM LOVELACE GROUP FORMATION PROJECT. OBJECTIVE Our project is designed to take a large group of people and divided them into teams based on  Time Availability

FORMULAS

- Contains functions which calculate scores of each team

- Functions:

- Gender- GPA- Schedule - Skill sets

- Signature: calculate-team-score

- Takes the flatten AVL tree of an individual team and calculates it score

Score = gender-score + grade-score + schedule-score + skill-set-score

Page 10: TEAM LOVELACE GROUP FORMATION PROJECT. OBJECTIVE Our project is designed to take a large group of people and divided them into teams based on  Time Availability

RNG

- Contains a linear congruential generator

- Is used primarily to pick a non-worst team to switch with

- Signature: get-random-number-mod-max

- Returns a random number less than a given maximum

Page 11: TEAM LOVELACE GROUP FORMATION PROJECT. OBJECTIVE Our project is designed to take a large group of people and divided them into teams based on  Time Availability

PROBE ESTIMATE - Driver

I/O: 290 lines

Calc: 439 lines

Total = 729 lines

- Randomizer

I/O: 0 lines

Calc: 298 lines

Total = 298 lines

- AVL Tree

I/O: 0 lines

Calc: 175 lines

Total = 175 lines

- Formulas

I/O: 0 lines

Calc: 357 lines

Total = 357 lines

TOTAL LINES OF CODE = 1559

ACTUAL LINES OF CODE = 2342

Page 12: TEAM LOVELACE GROUP FORMATION PROJECT. OBJECTIVE Our project is designed to take a large group of people and divided them into teams based on  Time Availability

INPUT FILESD wg | wa | wr | ws | , S1: , , ... , ; , S2: , , ... , ; …; , Sm: , ... ,

where D: number of teams

wg: weight of grade criterion wg 0

wa: weight of schedule criterion wa 0

wr: weight of gender criterion wr 0

ws: “skill set total weight” ws 0

Si : name of skill set i (e.g. Programming skills)

Sij: skill j of skill set i

m: number of skill sets

wi: weight of skill set i i [1, n]

Example of the specification line:

5 | 30 | 20 | 20 | 30 | 50, Programming Skills: C/C++, Java, Haskell, Python, ACL2; 50, Team Interaction Skills: Communication and Negotiation, Analytic and Creative, Organization

Page 13: TEAM LOVELACE GROUP FORMATION PROJECT. OBJECTIVE Our project is designed to take a large group of people and divided them into teams based on  Time Availability

INPUT FILES

Student Input format

ID# | FirstName LastName | Gender | GPA | Skills in skillset1; Skills in skillset2 | Schedule

Ex.

111111117 | Christina DeMont | F | 4.00 | Java, C/C++; Analytic and Creative, Communication and Negotiation | M 7:00pm~9:00 pm; F 6:00pm~9:00 pm

111111111 | Alex Bond | M | 3.25 | C/C++, ACL2; Communication and Negotiation, Organization | U 5:00am~7:00 pm; M 10:00am~11:00 am, 3:30pm~5:00 pm

Page 14: TEAM LOVELACE GROUP FORMATION PROJECT. OBJECTIVE Our project is designed to take a large group of people and divided them into teams based on  Time Availability

OUTPUT FILES Team Set Criteria:

Criteria i (wi)

 

Suggested Team Set:

Team i: Team member i | Common time availability

E.g.

Team Set Criteria:

Grade (0.2)

Skill sets (0.4)

Time availability (0.2)

Gender (0.2)

Suggested Team Set:

Team 1: 1 Calvin Nelms, 3 Matt Rainwater

Team 2: 2 Ashley Nanni, 4 Nha Hoang

Page 15: TEAM LOVELACE GROUP FORMATION PROJECT. OBJECTIVE Our project is designed to take a large group of people and divided them into teams based on  Time Availability

IMPLEMENTATION PROBLEMS & SOLUTIONS

Hyphens and dashes

‐ ‒ – — ―

Needed to parse:7:30am-8:30am

4:30pm-7:00pm

etc.

Page 16: TEAM LOVELACE GROUP FORMATION PROJECT. OBJECTIVE Our project is designed to take a large group of people and divided them into teams based on  Time Availability

IMPLEMENTATION PROBLEMS & SOLUTIONS

Hyphens and dashes

‐ ‒ – — ―

Tilde

~

Now we parse:7:30am~8:30am

4:30pm~7:00pm

etc.

Page 17: TEAM LOVELACE GROUP FORMATION PROJECT. OBJECTIVE Our project is designed to take a large group of people and divided them into teams based on  Time Availability

IMPLEMENTATION PROBLEMS & SOLUTIONSProblem:

Set default sub-weights of considered skill sets for “Skill Sets” criterion when user does not input any sub-weights, or inputs only some sub-weight

Example:Input:", java, c/c++, haskell, acl2; team interaction skills: communication and negotiation, analytic and creative, organization“

Output:(("SKILL SET" 1/2 ("java" "c/c++" "haskell" "acl2"))("team interaction skills“ 1/2 ("communication and negotiation" "analytic and creative" "organization")))

Input:"java, c/c++, haskell, acl2;30, team interaction skills: communication and negotiation, analytic and creative, organization“

Output:((" team interaction skills " 1 (" communication and negotiation " " analytic and creative " "organization")))

Page 18: TEAM LOVELACE GROUP FORMATION PROJECT. OBJECTIVE Our project is designed to take a large group of people and divided them into teams based on  Time Availability

IMPLEMENTATION PROBLEMS & SOLUTIONSSolution:

Divided input into 4 cases:• With sub-weight and with name• With sub-weight and without name• Without sub-weight and with name• Without sub-weight and without name

Page 19: TEAM LOVELACE GROUP FORMATION PROJECT. OBJECTIVE Our project is designed to take a large group of people and divided them into teams based on  Time Availability

IMPLEMENTATION PROBLEMS & SOLUTIONSProblem:

Convert student’s skills to lists of 0’s and 1’s according to which skill set they belong to

Example:

Considered skill sets:(("java" "c/c++" "haskell" "acl2")("communication and negotiation" "analytic and creative“

"organization"))

Student skills", organization, ddfaa, communication and negotiation;

gaad, acl2, java"Output:((1 0 0 1) (1 0 1))

Page 20: TEAM LOVELACE GROUP FORMATION PROJECT. OBJECTIVE Our project is designed to take a large group of people and divided them into teams based on  Time Availability

IMPLEMENTATION PROBLEMS & SOLUTIONSSolution:

tough ACL2

Page 21: TEAM LOVELACE GROUP FORMATION PROJECT. OBJECTIVE Our project is designed to take a large group of people and divided them into teams based on  Time Availability

DEFECT PREVENTION

Used Google Code as our issue repository

Followed a simple bug report format:

What you were doing

What happened

What should have happened

Page 22: TEAM LOVELACE GROUP FORMATION PROJECT. OBJECTIVE Our project is designed to take a large group of people and divided them into teams based on  Time Availability

DEFECT PREVENTION

Used Google Code as our issue repository

Design change reports were similar:

What the new design says

What the old design said

Why we needed the change

Page 23: TEAM LOVELACE GROUP FORMATION PROJECT. OBJECTIVE Our project is designed to take a large group of people and divided them into teams based on  Time Availability

PROJECTED SCHEDULE Jan31

Feb7

Feb14

Feb21

Feb28

Mar6

Mar13

Mar20

Mar27

Apr3

Apr10

Design

Code

Code Review

Testing

Re-Design

Re- Test

Final Design

Page 24: TEAM LOVELACE GROUP FORMATION PROJECT. OBJECTIVE Our project is designed to take a large group of people and divided them into teams based on  Time Availability

ACTUAL SCHEDULE

Page 25: TEAM LOVELACE GROUP FORMATION PROJECT. OBJECTIVE Our project is designed to take a large group of people and divided them into teams based on  Time Availability

REMAINING IMPLEMENTATION PROBLEMS

Input errors aren’t dealt with very well

If the user puts in information incorrectly, currently it just crashes for the most part

Page 26: TEAM LOVELACE GROUP FORMATION PROJECT. OBJECTIVE Our project is designed to take a large group of people and divided them into teams based on  Time Availability

POTENTIAL ENHANCEMENTS

Output “meeting times” for each group

Est LoC – 200, based on LoC required to input schedules

Currently the schedule of each student is stored as a bit array. (Length is 48 * 7 = 336, representing each 30 minute block of time in a week) A 0 means the person is free and a 1 means they are busy.

Essentially this would require a function that maps several bit arrays to a string output representing the best time for that team to meet up.

Page 27: TEAM LOVELACE GROUP FORMATION PROJECT. OBJECTIVE Our project is designed to take a large group of people and divided them into teams based on  Time Availability

POTENTIAL ENHANCEMENTSAdd a feature that would disallow two people from being in the same group

Est LoC – 300, based on size of current formulas and file input functions

Could add a new heuristic to judge a team by that severely punishes a team for having two disallowed people on it.

Or could use some manual manipulation to switch disallowed people.

Either way, functions in the driver module would have to be added to deal with new the input.