Guidelines for holding A Hackathon (draft)

The following guidelines and resources were created to aid the planning of a development hackathon as part of the hackathon programme initiative of the IAU Office of Astronomy for Development under the “Knowledge and Skills from Astronomy” flagship in collaboration with IDIA and DARA Big Data, who are all partners of the Hack4dev project. These guidelines have resulted from experience gained in running hackathon events as part of this programme since 2020. Other hackathon events may take different formats; these are simply guidelines which can be adapted accordingly.

These are the sections covered below: (the reader can jump to any section)

  1. What is a development hackathon?
  2. What is required to hold a development hackathon event?
  3. A checklist of actions required to implement a development hackathon event. 
  4. A detailed guide for the organising team
  5. Resources that aid the running of a development hackathon

What is a development hackathon?

A development hackathon aims to provide exposure to data science and machine learning in a friendly and supportive environment. Participants at the hackathon work on interesting real-world problems which are data-driven. The hackathons are usually aimed at final-year undergraduate students, postgraduate students, as well as young professionals in Science, Technology, Engineering & Mathematics (STEM) fields who have a keen interest in data science and machine learning and who would benefit from further exposure and hands-on experience. There is a diverse range of projects (“hacks”) which are available for hackathons, some related to development, e.g. flood detection using satellite images, and others related to academia, industry and commercial applications. New projects are always in the pipeline as well.

Traditionally, a hackathon is an event at which experienced computer programmers, and sometimes others involved in software development, come together to innovate and problem-solve over a short period- typically two to three days. This conventional hackathon also involves competing against other teams in an intense, high-pressure environment. The focus of a development hackathon, however, is on learning rather than competing. The desired outcome is to pique or deepen interest in the field of data science and machine learning and boost participants’ confidence in their ability to enter this field. This wider outlook regarding their study and/or career options could then be a stepping stone to allow for access to greater and better job/internship opportunities in the future. 

Summary of the objectives of a development hackathon:

  • Provide exposure to data science and machine learning techniques through hands-on experience working with real-world projects.
  • Encourage peer learning
  • Development of skills such as leadership, teamwork and presentation skills
  • Encourage further participation of females in the field of data science
Below is a useful overview, in the form of a checklist, of the actions required to implement a development hackathon event.
NB: A list of detailed guidelines follows.
  • Establish a team of organisers and tutors for the event
  • Determine your target audience and objectives for the event
  • Based on your objectives, determine the duration of your event, i.e. a 3-day hackathon or a 5-day school/workshop.
  • Prepare a list of budget items and secure any necessary funding. NB: A minimal budget, i.e. making provision for just catering and prizes, can be used in cases where funding is limited.
  • Secure a venue for the event: e.g. A school, tertiary institution or a private venue potentially offered by a local partner/funder.
  • Determine which hackathon project/s (hacks) you will be running at your event and ensure that participants will have access to the necessary computing resources required for the project/s.
  • Confirm tutors for the hackathon
  • Secure catering for the event (lunch and tea breaks)
  • Send out a call for applications at least 6 weeks prior to the start of the event
  • Reach out to potential speakers: Speakers could give an overview of data science, machine learning, or applications of these in industry/academia.
  • Notify successful applicants at least two weeks before the event and send out any necessary preparatory resources
  • Conduct tutor training two weeks prior to the event
  • Secure prizes for the top 2 or 3 teams
  • Assemble a judging panel 
  • Finalise the event programme at least one week prior to the event and send out to all invited speakers and participants.
  • Send out a feedback survey to assist in the analysis of the impact of the event and aid in the planning of future events

A detailed guide for the organising team:

Organisers

Establish a team dedicated to planning and implementing the development hackathon. You may require a team of a few individuals, each prepared to carry out various kinds of tasks, i.e.

  • Administrative – Creating an event advert and application form
  • Technical – Sourcing speakers and tutors
  • Logistical – Securing a venue with access to a reliable internet connection
Participants
  • Determine the individuals who would benefit from the planned event, i.e. would the school/workshop/hackathon be targeted at students (if so, at what level), educators, working individuals who would benefit from upskilling, or a combination thereof?
  • Participants should have some level of Python programming experience. In cases where the target audience does not meet this requirement, please see the links to learning resources for Python in the “Additional Resources” section below which can be shared with participants ahead of time.
  • If necessary the following selection criteria: participants are selected based on the following:
    • Their level of interest in data science and machine learning
    • A strong motivation for attending the event
    • What they hope to learn/gain by attending the event, i.e. to ensure that what they hope to learn/gain is in line with what is being covered in the introductory talks or the hackathon projects.
Tutors
  • In order to run a development hackathon where participants receive ample guidance, tutors are required to assist participants with the hackathon tutorials and the hackathon task. A ratio of one tutor for every two hackathon teams (consisting of 4-5 participants) is favourable to ensure that tutors are not overloaded and that participants receive assistance timeously.
  • Tutors should be familiar with Jupyter Notebooks, have ample Python programming experience and some prior experience in the application of machine learning techniques (if it is used in the chosen project/s).
  • Tutors must be willing to commit ~ 3-5 hours of preparation before the event to go through the hackathon tutorials and ~ 8-10 hours per day during the hackathon. The nature of the hackathon is such that it demands a lot of work from participants in a short space of time; a similar demand will therefore also be experienced by the tutors should the participants need assistance.
  • Tutors should work through project tutorials and respective training videos from ~2 weeks prior to the event to ensure that they understand the content and are able to run the tutorials successfully.
  • Tutors should familiarise themselves with the computing platform on which the hackathon project/s will be run and ensure that they are able to successfully run all tutorials.
  • In the case of virtual events, tutors are encouraged to use platforms such as Slack, Zoom, Discord and WhatsApp groups in order to aid participants.
  • Due to hackathon time constraints, it is recommended that tutors assist participants in understanding the purpose/function of the code in the tutorials, rather than focusing on syntax.
  • Tutors should also urge their teams to complete the project tutorials in the time allotted according to the event programme so that sufficient time remains to work on the hackathon task.
  • Tutors may need to keep an eye on teams throughout the event to ensure that they are working well together and to encourage team members who are not contributing as much, which may stem from a lack of confidence.
Judges

The judging panel may comprise members of the organising team, the event tutors, the invited speakers for the event or even specially invited guest judges from the institution at which the hackathon is hosted.
Judging criteria: These criteria should be determined by the judging panel and shared with the hackathon teams prior to preparing their presentations. Possible criteria include:

  • Creativity
  • Teamwork
  • Presentation skills
  • Clarity of slides and graphs
  • A demonstration of an understanding of the techniques used
Speakers

If suitable, a few presentations can be given at the opening of the event. These are usually introductory/overview talks on data science and machine learning, or the application thereof in academia and/or industry. Whether given by fellow students, academic staff or industry experts in the field, the talks contribute to the participant’s awareness of the many applications of data science and machine learning.

The number and duration of talks should be limited such that they do not eat into one of the most important resources in a hackathon – time! Participants will require sufficient time to work through their tutorials and tackle the hackathon task.

Tech Support

Ensure that you have technical staff on standby should there be any technical issues related to the computers, Wi-Fi, projector setup etc. 

Hackathon Projects (“Hacks”):

The projects that have been created for development hackathons (or for anyone who wishes to use them for learning/teaching purposes!) are available on the  “HACKS” page. They are based on interesting real-world problems and make use of real data. They cover a diverse range of topics relating to development, scientific research, or commercial/industry applications. They also vary in their level of difficulty and computing requirements, i.e. some may suit high schoolers while others require better knowledge of programming and machine learning. These details can be found in each of the project descriptions.

Technical Requirements:

Computers

Hackathon teams should ideally be given access to a computer lab for the event or asked to bring in their own devices. Even though the participants work through the tutorials and tasks in teams, it is most beneficial for each participant to have access to a computer/laptop so that each participant has the ability to run and manipulate the code first-hand and enhance their learning.

Internet

In the case of virtual hackathons, or in-person hackathons where the code will be run on a cloud computing platform, participants should have access to a reliable internet connection with speeds of at least 4 Mbps

Cloud computing

Should the chosen hackathon project indicate that additional computing power is recommended, participants may make use of the Google Colab computing platform. Colab is a free Jupyter notebook environment that runs entirely in the cloud. It does not require any prior setup and the notebooks that you create can be simultaneously edited by others. Colab supports many machine learning libraries which can be easily loaded in the Jupyter notebook.

Organisers may also contact the Inter-university Institute for Data Intensive Astronomy (IDIA – hack4dev@idia.ac.za) for possible computing support through the use of their research cloud facility. It is this cloud computing technology that was used to support the schools and the hackathons of this programme. Virtual machines on the Ilifu cloud are made available for the hackathons to fulfil their computing needs and participants work on the hackathon project on a Jupyter notebook interface.

Projector and screen

This equipment, along with the necessary audio-visual setup may be necessary for any introductory talks included in the event, as well as for the team presentations session.

Format:

  • Hackathons can be run over a minimum of two days, however, three days is preferable if participants have minimal prior experience in Python programming. The hackathon may also be held as part of a larger event, such as a conference, workshop, or school at which lessons and/or talks related to data science and machine learning are delivered. Hackathons are intense by nature, in that participants will cover a lot of content and problem-solving in a short space of time. It is therefore important to follow a well-structured programme. See an example programme here
  • At the hackathon participants will work through tutorials that have been created for each project, before tackling the project ‘task’, while receiving support from tutors who are familiar with the material and concepts.
  • Nearing the end of the event, teams may prepare short presentations (~5 – 10 minutes for each team) summarising their hackathon project task, the data they worked with, their methods, results and conclusions.
  • Presentation guidelines: the expectations with regard to the team presentations should be clearly outlined before the teams begin their preparations. In addition to discussing solutions, showing their understanding of the techniques used, or demonstrating the accuracy of their solutions, it is also useful for teams to discuss the challenges faced and possible ways to tackle these going forward.
  • The judging panel may each score the teams or identify their top three choices. After deliberation, a winning and runner-up team is identified and certificates and prizes may then be awarded where possible.
  • It is often useful to allow for time at the end of the official hackathon for an “Ask Me Anything” session at which participants, organisers, tutors and invited speakers and judges can have discussions around the field of data science and machine learning, the hackathon itself, or perhaps just general career advice.

Administration:

  • A detailed application form has been created to ensure that all necessary information is captured for each applicant. This includes personal information, e.g. academic background/field or work, information regarding their existing knowledge/experience and, most importantly, their level of interest in data science and machine learning, motivation for attending such an event and what they hope to learn/gain. An example registration form can be found here 
  • Impact analysis and feedback surveys may be used to determine the following:
    • The areas of data science and machine learning in which participants have gained experience or knowledge
    • Aspects of the event that worked well and those that did not
    • Whether or not the event has impacted the participants’ view of their study and/or career options

Example surveys can be found here

Development Hackathon Resources:

  • Tutor training videos have been created for each hackathon project. These are “walkthrough” videos which provide an overview of the project and highlight any “pressure points” of the project and how to aid participants in tackling these. 
  • Recorded talks on topics in data science and machine learning are available on the Hack4dev website and may be utilised at the event for the benefit of the participants.
  • Participant preparatory resources: these resources may aid participants in their preparation ahead of the hackathon and may be circulated to all participants approximately two weeks prior to the event. The resources cover aspects of Python programming, as well as a basic introduction to certain machine learning concepts.
  • There is a multitude of free Python programming and other Data Science learning resources available online. We have listed some of these resources here. These can be shared before or after the hackathon in order for participants to develop their Python skills or to enable and encourage participants to continue their journey into data science and machine learning.