What are engaging sources of data with which students can explore, develop questions, analyze, and draw conclusions in an intro CS course? I'm looking for flat files like XLSX or CSV, or relational databases in an environment that permits selection and export of a flat file.

Kelly Powers asked (nearly) this question in the CSTA-members listserv in May 2017 and got 14 answers in a couple of days, which I'll consolidate and extend in an answer here.


5 Answers 5


I'm going to clean this up later, but am posting the verbatim work of the CSTA members so others can chime in with additional bullets. I'm aiming to have one resource per bullet: Resources name, link, annotation, example ideas for projects

Here are some additional links from my bookmarks

  • The KDD Cup is an ~annual competition for the public, aimed at grad students and professionals. Past year's competitions are on the website, usually with the data, and middle schoolers could use the data for easier tasks than the KDD Cup challenge posed.
  • Kaggle is akin to and overlapping the KDD Cup.
  • Teenagers like music. The Million Song Data set could be used to compare song length by artist, for example.
  • An image makes for a nice large data set and motivates students to understand nested loops, conditionals, the accumulator pattern, and the best-so-far pattern. I have students pick their own image and decide upon their own task for data analysis (e.g., range of brightness or number of pixels that meet a color criterion) and manipulation (e.g. change brightish yellows to magenta.)

  • CODAP, the Common Online Data Analysis Platform. A project of the Concord Consortium, led by the person who led development of Fathom, a stats software for K-12.

  • I wish there was a women's basketball version of this set of links:

  • The Social Security Administration offers CSV files of name frequencies by birth gender and year. State-level files are also available by gender and year.
  • The UC Irvine Center for Machine Learning and Intelligent Systems has the Motherlode Machine learning repository of datasets. You can search by domain (e.g. life science), by the data set size, or by the type of task students would typically do with that data.
  • GapMinder has raw data files of World Health Organization data as well as an online tool for exploring the data along with interesting examples.

  • Exoplanets databases

  • The Current Population Survey (CPS) asks 60,000 U.S. households each month about income and employment. You can download CPS data tables and can create your own table with the CPS table creator

  • A similar question on Quora

  • Earthquakes From USGS, https://earthquake.usgs.gov/earthquakes/map/ allows the user to filter earthquakes by location, date, and magnitude and download a CSV. The website has built-in geographic visualization. (Contributed to PLTW CS Principles course by Nathan Nolte)


I've been a big fan of Twitter for this type of project since 2014. You could use an API to pull some news feeds and turn them into a flat file for use with students. My students have found researching politicians interesting - especially to see if the subjects of their tweets match the issues they claim to care most about. I use the Twitter 4J API for this. http://twitter4j.org/en/


I'd like to expand on one source in an answer offered above: The Collection of Really Great, Interesting, Situated Datasets, or simply CORGIS.

From their About page:

The CORGIS project aims to transform early computer science projects by introducing real-world data via simple-to-use client libraries. Data Science offers an authentic context for your students to solve real-world problems with programming. The CORGIS project has over 40 libraries for subjects such as politics, education, literature, construction, and more!

CORGIS offers full support for Java, Python, and Racket, in addition to making its data files available in common data formats like JSON and CSV. Some datasets are also available through our unique Visualizer platform, which enables data science exploration directly within the browser!

The topics available for analysis are incredibly wide-ranging (as exemplified in the list above). I plan on showing this to my students next year for the AP CS Principles Create Task. My students are comfortable by that point with Python, so this is right at their ability level and will allow for some interesting, innovating, and original project ideas. The accessibility level is just right a student finishing the first year of a high school level CS course.


The National Oceanic and Atmospheric Administration (NOAA) has plenty of climate data sets (https://www.ncdc.noaa.gov/cdo-web/datasets). I've used them with students to predict how many school days we may miss in February based on historical data. Recently, I heard that the latest named tropical storm in the Atlantic is a three-letter name so I started wondering about hurricane names. I might use a hurricane name data set for an assignment this coming school year. Weather seems to hold my students interest.

  • $\begingroup$ Yes, thanks, fantastic for middle school! Also reminds me of earthquakes. I've noted anecdotally that kids with extreme interest in weather and earthquakes are disproportionately boys. A book about CS at CMU (Kicking Butt in CS) claims that CMU's success in getting gender balance was orthogonqal to such gender difference observations, but it makes me wonder what the result would be of greater engagement with weather measurements for K-2 girls. $\endgroup$ Commented Jul 30, 2017 at 15:18

There are a few Stack Exchange sites you might want to check out:

  • Open Data: Open Data Stack Exchange is a question and answer site for developers and researchers interested in open data.

  • Data Science: Data Science Stack Exchange is a question and answer site for Data science professionals, Machine Learning specialists, and those interested in learning more about the field.

  • Cross Validated: Cross Validated is a question and answer site for people interested in statistics, machine learning, data analysis, data mining, and data visualization.

But taking a step back, you might want to teach the meta-lesson of finding data in the real world. There are a ton of APIs and open-source data repos out there, and finding them is a very important skill by itself- plus it give students a way to actually use their skills after the class ends.

So instead of just giving your students a flat file, have them come up with their own. Maybe they use an API from a product they use, like Twitter, Spotify, or YouTube. If that's too advanced for the students to do, then maybe you spend a class coming up with the dataset together, with you writing the code and the students talking about what would be interesting to see.

Or just searching for "XYZ datasets" returns a ton of results. Have the students come up with datasets related to stuff they're interested in.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.