The 2022 KSU Hackathon for Social Good

HPCC Systems and LexisNexis Risk Solutions Group sponsored the March 2022 Hackathon for social good hosted by Kennesaw State University’s College of Computing and Software Engineering. A second hackathon will be held later in the year.

Using Technology to Create Families

This was the objective of the hackathon and prior to the start of the event, students were given some limited knowledge about the goals to be achieved.

It was certainly a challenge!  Out of the 15 teams that started the competition just 6 made it to the judges’ panel. This event was so packed with information and the cause was clearly one that struck a chord with the participants, that even students who didn’t manage to submit their code came to the judging sessions anyway to support the finalists and find out how others solved this problem.

Every year about 85,000 young adults from all over the United States age out of foster care or become homeless because they are without a mentoring family and do not have a designated guardian in their lives to provide help. This is illustrated in the data collected from Connections Homes, a nonprofit organization whose mission is to connect these young adults with families to try and prevent them from ending up living on the streets or getting themselves into bad situations.

Currently Connections Homes use a process where staff manually sort through the data to try and make the right connections. This is a large, time consuming and error prone process. Using some carefully crafted data analytics, this process can be simplified, made more efficient and provide an enduring solution to help this organisation establish stronger and more connected relationships between young adults and the families they join.

Where we come in

Using HPCC Systems, the students were able to import, clean and analyze the data providing a more automated and complete solution for the manual process currently used.

Each team tackled the problem in a slightly different way and this blog focuses on the top 3 projects, providing insights into how they analyzed the data and made the connections. The technical breakdown of the projects below was provided by Hugo Watanuki, (Senior Software Engineer, LexisNexis Risk Solutions Group), who helped mentor the teams during the competition. 

What is remarkable is how the participants in just one week learned how to solve a real-world problem using ECL to break down the data and find the best connections possible for the client. They were completely focused on their project, working diligently to find a solution to help this organisation with their real world problem. There were experts on hand to help them with their ECL language code development and thanks go to the judging panel who had the difficult job of awarding prizes to the winning teams at the end of the event.

Thank you to all the students who participated in this event and submitted completed solutions. The top three winning solutions are featured below, complete with code samples.

1st Place: Team BJW – Brian Bessemer, Darren Jones and Eric Weese

This team was judged to have developed the most complete solution for the problem and was also commended for the quality of the design perspective of their solution.

  • The overall approach they adopted involved grouping related fields from the original dataset into meaningful attributes that were later utilized to match young adults with mentors more precisely. (This is a similar approach that big data companies utilize to establish meaningful risk/fraud models).
  • The developed attributes were then utilized to compare the young adult with each mentor from the original dataset and a match index was utilized to list the best matched mentors according to the young adult input data.
  • The final implementation was made in ROXIE so end users would be able to query the data easily.

The quality of the code they wrote and their understanding of the ECL language features they used really set them apart. This team really excelled in terms of leveraging core ECL functions.

For example, they used TRANSFORM and PROJECT to shape the data as much as possible before calculating the match index and returning the query results. (This is completely in sync with the HPCC Systems developer mindset, by the way!) They also leveraged powerful ECL NLP features such as PATTERNS and PARSE functions to parse the mentors dataset according to the young adult input parameters (this was a huge plus)!

The following sample code is an illustration of their chosen approach to the challenge:

rs := RECORD
QSTRING100 line;
END;
PATTERN ws := PATTERN('[ \t\r\n]');
PATTERN Alpha := PATTERN('[A-Za-z/]');
PATTERN Word := Alpha+;
PATTERN Phrase := Word + OPT(ws) + OPT(Word) + OPT(ws) + OPT(Word) + OPT(ws) + OPT(Word);
PATTERN notComma := VALIDATE(Word, MATCHTEXT != ',');
PATTERN notCommaWord := notComma PENALTY(1);
RULE NounPhraseComponent1 := Phrase | notCommaWord;

projResult := PROJECT(Mentors, 
    TRANSFORM(Fitness,
        SELF.mentorName := LEFT.FullName;
        SELF.religion := MAP(SingleRecord.religion = 'Christian' => 
                         IF(LEFT.Religion_Christian = 0, -99, LEFT.Religion_Christian / 5),
                         SingleRecord.religion = 'Muslim' => 
                         IF(LEFT.Religion_Muslim = 0, -99, LEFT.Religion_Muslim / 5),
                         SingleRecord.religion = 'Jewish' => 
                         IF(LEFT.Religion_Jewish = 0, -99, LEFT.Religion_Jewish / 5),
                         SingleRecord.religion = 'Hindu' => 
                         IF(LEFT.Religion_Hindu = 0, -99, LEFT.Religion_Hindu / 5),
                         SingleRecord.religion = 'Buddhist' => 
                         IF(LEFT.Religion_Buddhist = 0, -99, LEFT.Religion_Buddhist / 5),
                         SingleRecord.religion = 'Other' => 
                         IF(LEFT.Religion_Other = 0, -99, LEFT.Religion_Other / 5),
                         SingleRecord.religion = 'Spiritual' => 
                         IF(LEFT.Religion_Spiritual = 0, -99, LEFT.Religion_Spiritual / 5),
                         SingleRecord.religion = 'None' => 
                         IF(LEFT.Religion_None = 0, -99, LEFT.Religion_None / 5),
                         0);
        SELF.roleoffaith := IF(SingleRecord.roleoffaith = LEFT.RoleofFaith_primary, 1, 0);
        SELF.roleoffaithSpouse := IF(SingleRecord.roleoffaith = LEFT.RoleofFaith_spouse, 1, 0);

2nd Place: CS Knights – Keyshawn Billups and Trevor Fouce

This team’s solution was commended for its completeness because of their design decision to pursue the following:

  • They adopted a ROXIE-first approach.
  • Since the beginning of the competition, they were concerned with making sure the end user would have a friendly and comprehensive interface to query ROXIE and obtain a list of matching mentors based on youth data provided as an input.  
  • They spent a lot of time working with STORED workflow services in ECL (and its several custom settings) to establish a comprehensive list of SOAP interfaces to all possible query parameters.

Here is a sample of code to illustrate their chosen approach:

//Lat and log
_Latitude := '' : STORED('Latitude', FORMAT(SEQUENCE(47)));
_Longitude := '' : STORED('Longitude', FORMAT(SEQUENCE(48)));

//data set creation
SampleDS := DATASET([{_FullName, _FirstName, _LastName, _Street, _City, _State, _ZipCode, _Region,
_Birthday, _Age, _Race_Ethnicity, _ReligionIdentity, _RoleOfFaith, _AlcoholUse, _DrugUse,
_MarijuanaUse, _CigaretteUse, _VapeUse,_JobRetentionChallenges, _DayOff, _FavoritePlace,
_Personality, _SocialStyle, _SadnessResponse, _AngerResponse, _ContinuingEducation,
_SupportsHolidays,_SupportsJob, _SupportsParenting, _SupportsMedical, _SupportsLegal,
_SupportsBudgeting,_SupportsMentalHealth,  _SupportsResources, _SupportsSocial,  _LivingSituation, 
_CriminalHistoryArrested, _CriminalHistoryJail, _CriminalHistoryCurrentProbation,
_ChildrenPregnant, _ChildrenCustody, _ChildrenKincare, _ChildrenWelfare, 
_BioRelationships, _SexualIdentity, _GenderIdentity, _Latitude, _Longitude}], 
                     Test); 

OUTPUT(SampleDS, NAMED('Youth'));

3rd Place: Team HPCC8 – Malik Naik Mohammed, Zameer Shaik and Gayathri Vellanki

This team was commended by the judges for their solution designs. Judges were impressed by their chosen approach which involved the following design decisions:

  • The importance of understanding the Mentors Dataset first, before writing their ECL code. This is considered a core concept in ECL; to understand the data first.
  • They also exercised another major ECL transformation objective which is to work only on the data you need. They focused on excluding all the mentors that lived above a maximum value of miles from the young adult.
  • They developed a very interesting ECL function that receives the mentors’ and young adult’s latitude and longitude data and computes using the Haversine formula to estimate the distance in miles between the mentor and the young adult. Since the Haversine formula is based on spherical trigonometry, this team had to leverage most of the ECL trigonometric functions such as SIN()COS(), and ASIN().

Here is some sample ECL code illustrating their chosen approach and use of the Haversine Formula:

REAL4 DISTANCE (REAL4 Lat1, REAL4 Long1, REAL4 Lat2, REAL4 Long2) := FUNCTION
    // Using Haversine Distance Formula to compute the distance.

    REAL4 PI := 22 / 7;
    REAL4 RADIANS := PI / 180;

    _Lat1 := Lat1 * RADIANS;
    _Long1 := Long1 * RADIANS;
    _Lat2 := Lat2 * RADIANS;
    _Long2 := Long2 * RADIANS;

    _Long_Diff := _Long2 - _Long1;
    _Lat_Diff := _Lat2 - _Lat1;

    _A := POWER(SIN(_Lat_Diff / 2), 2) + COS(_Lat1) * COS(_Lat2) * POWER(SIN(_Long_Diff / 2), 2);

    DIST := 2 * 3956 * ASIN(SQRT(_A));

    RETURN DIST;

Meet the ECL mentors

Three mentors from LexisNexis Risk Solutions Group attended the hackathon event to support students with their ECL queries, providing help with any questions they may have had during the weeklong competition. The mentors were impressed with how aggressively the students took to solving the challenge and the progress they made using a data analytics platform that some of them had not been exposed to before the hackathon.

Dan Camper, Enterprise / Lead Architect

Dan has been a mentor at the KSU Hackathon Event for the past 5 years. He had this to say about the participants:

“I was impressed with how many of the students attacked the problem and their final presentations were really good.  The event was a lot of fun!”

Bahareh Fardanian, Technology Evangelist

As a Hackathon mentor for the past 2 years and a volunteer for the past 3, Bahareh recognizes the dedication and effort it takes to complete these projects successfully:

“Trying to solve a challenge in few days and learning the platform at the same time is a big challenge. As always teams did a great job learning about HPCC and solving the problem. It’s very impressive to see how students overcome the problems throughout the event. I’m proud of all students who put in the effort to learn and evolve.”

Hugo Watanuki, Senior Software Engineer

Hugo has been pioneering ECL training in Brazil for the past 3 years and has over 15 years’ experience in the IT field specializing in High Performance Computing.

“This was my first time participating at the KSU Hackathon. I was really impressed with everything from the infrastructure and support from both KSU and the HPCC Systems teams, which have made it possible for the students to manage the learning curve and produce outstanding outcomes. I’m already looking forward to returning next year!”

Future Impact

Hackathons, such as this one will also help students in need over the next school year. Half of the proceeds raised at this event go to Campus Awareness, Resource and Empowerment (CARE) Services, which supports students with temporary housing, food, as well as providing other services they may need. 

Thanks to the efforts of all the participants, Connections Homes will now have the option to take a new approach when matching families and young adults and hopefully, this will allow them to streamline the process to improve the well needed and much appreciated service they provide to within the community. The participants also gained valuable experience and knowledge which will undoubtedly help further their academic journeys and potentially their future careers.

The next Hackathon will be held later this year. Stay tuned to our Community Blog for updates as more information becomes available.

Links

Other publications featuring this years Hackathon are found below: