What is an AP computer science student supposed to do after they take the AP exam? Traditionally, we finish the year with a spattering of topics including data structures and algorithms… This year, in cooperation with Mr. Rodney Snyder, his two AP computer science classes, and Loudoun Valley High School, we premiered two weeks of curriculum entitled “Working With Data”, where the students learned to parse CSV files, read JSON data from live web services, and design relational database schemas and SQL queries!
Starting with CSV files that include data about the 50 states and over 42,000 cities in the U.S., the students were asked to read in this data and answer several questions about the number and sizes of cities, the State’s population density, and even information about the State’s official birds and flowers. Students were then givrn data sources like http://catalog.data.gov and asked to explore and find their own ‘interesting information’. One student combined that data along with data about each State’s GDP, position in the U.S., and information about its side in the Civil War, if any, to mine for ways reparations affected their long-term GDP.
Next, we looked at pulling data from web services via JSON. We parsed that into data contiained in Java data structures. We looked up current weather and forecast information by zip code, looked up information about musical recordings (album, track duration, etc), and then spent a day researching various available data sources online. Students researched things like Marvel comic book data, a pokemon database, available medical records, and all kinds of related information. For two years our students have been learning to code, and finally, they were able to reach out and ‘touch’ real-time data!
Finally, we spent several days using SQLite to build a database, develop a schema to hold information, and write queries in SQL. Students could see that a program that took a page to write in Java became a single declarative line in a language like SQL.
At Loudoun Valley, seniors have the option of doing a Capstone Project during their last month of school; they can do a career or public-service oriented project and present it at an end-of-year event. These students have spent two years learning to program in Java, and now they can use that skill to ‘slice and dice’ publically available datasets; they were already starting to talk about how they could use this for their Capstones.
We are currently taking the lessons learned from this pilot and refining the lesson plan. This curriculum will be available on github under a creative commons license. If you’re a teacher or parent interested in using this in your classroom (Loudoun or otherwise), keep an eye on our github page.