This document contains a bunch of resources for CodeJam 2019. Feel free to look through and get yourself adjusted to the content before the hackathon.
If this is your first time at a hackathon or coding past ECSE 202 or COMP 202, it's probably best that you learn some concepts that'll help ramp you up before!
- Learn Git Branching - Interactive tutorial to learn Git, the most popular version control system for collaborative programming.
- What's an API? - Learn how to use external services in your projects.
- A Beginnerβs Guide to HTTP and REST - A more in-depth guide on how to use REST APIs.
- Automate the Boring Stuff with Python - An in-depth series of tutorials to learn how to code in Python. If you don't know what language to use, Python is a good start!
- Roadmap to Fullstack Web Development - Web projects are some of the easiest to make during a hackathon. Learn more about different technologies that are commonly used!
- Google Machine Learning Crash Course - If you want to ramp up quick on machine learning.
- Titanic: Machine Learning from Disaster - A beginner-friendly prediction competition.
These are some recommended tools for general hackathon success:
- Visual Studio Code - Your favorite programmer's favorite text editor.
- GitHub Desktop - Easy-to-use Git GUI interface so you don't need to use the command line.
- Jupyter Notebooks - Powerful Python tool hosted as a web app useful for writing and organizing Machine Learning code. Very visually appealing and great for running code snippets.
- Postman - REST API testing tool.
Boilerplate code is your best friend for a hackathon! As these are time-limited events, you don't want to spend half your time setting up your project.
Here are a few examples:
If these don't suit your usecase, feel free to look up other boilerplates online!
Here are a few libraries that might prove to be useful during the competition! If the official library isn't written in your favorite language, try finding wrappers/bindings for it online!
- brain.js
- CoreNLP
- Keras
- Leaflet
- Natural for node.js
- NLTK
- Numpy
- Octave
- OpenCV
- PyTorch
- scikit-learn
- Tensorflow
- Tensorflow JS
- TextBlob
- tracking.js
Here are a few APIs that might prove to be useful during the competition! These are a software engineer's best friend. These will do the heavy lifting for you, so you can focus on working on your product.
- ArcGIS for Developers
- AWS Transcribe
- Clarifai
- Dialogflow
- GIS Cloud JavaScript API
- Google Cloud Vision
- IBM Watson Speech to Text
- IBM Watson Text to Speech
- IBM Watson Visual Recognition
- Microsoft Azure Cognitive Services
- Microsoft LUIS
Without data, how are you going to recognize patterns? Here are some resources you can use to quickly find data sets!
- 36th Parliament of Canada Debates Dataset
- Amazon Q&A Dataset
- Australian Government Data
- Cat Images Dataset (purrrfect)
- Flickr Thematic Image Datasets
- Food Images Dataset
- Geographic Datasets
- Google Data Set Search
- Home Depot Search Queries Dataset
- IMDB Dataset
- Kaggle Datasets
- Microsoft Building Footprint Data
- Microsoft GPS Trajectories Dataset
- Microsoft T-Drive Dataset: Taxi One-Week Trajectories
- Open NYC Data
- Reddit Comments DataSet
- Stanford Car Images Dataset
- Stanford House Numbers Dataset
- Wikipedia Toxic Comment Classification Challenge
- Yelp Dataset (businesses, reviews, and user data)
If you want to avoid training your own models, you can also find pretrained models online!
Cloud computing is especially useful when you need to do heavy computations (read: Machine Learning). There are a few providers. If this is your first time using them, they usually provide a bunch of free credits for students.
It's not a requirement to host your final submission anywhere (you can demo your project locally), but you can easily host your project on the cloud so you can show it off to anyone with a link.
The content from the Geospatial Analysis, Computer Vision, and NLP workshops is now online. Check out the /workshops/
folder in this repository for more details.