CSCI0050 Real Data Assignment 2019
CSCI0050 Homework: Tables with Real Data

Due: Monday, July 15 at 6pm (submit through this Google form)

Late Policy: Files can come in until midnight, but we will not answer any questions after 6pm.

Assignment Goals:
  • To practice working with tables with real data

  • To practice computing statistics over tables

  • To practice testing and sanity-checking tables

This assignment combines tables, functions, and lists. Functions are a key part of this assignment. Thus, while you could do this assignment by writing few functions (and creating a lot of named expressions), your goal is to write a collection of functions that capture the computations that you need to solve the following problems. We don’t tell you exactly which functions to write (that’s part of what you are thinking about here), but as a general rule you should look to create functions for computations that you might reuse across similar problems to those here.

Collaboration Policy: Your work on this assignment must be entirely your own. Include a collaboration statement attesting that this was your own work.

Examples (to test functions) are a key part of this assignment. You should be writing examples/tests for all of the functions you write as part of this assignment, unless a question explicitly states otherwise.

Exercises: Programming with Real Table Data

Put your answers to these questions in a file named schools.arr.

For this set of problems, you will work with a real dataset about student demographics and test scores from schools across Rhode Island. The data is in a google sheet.

Problem Setup: Assume the school board is concerned about two issues: math scores and the impact of charter schools. You’ll be writing a collection of programs to help them analyze their school-performance data.

For a More Advanced Twist

[This does NOT earn additional points, but is just an option for those wishing to push their skills a bit farther.]

Have you noticed that when you use operations like filter-by you are passing a function as an argument (instead of just a number, string, etc)? Many (though not all languages) allow this, and it gives you much more flexibility in creating functions that are similar except for some inner computation (like which rows to keep in a filter-by).

For a challenge, try to add functions as arguments to collapse a couple of your helper functions together.

Frequent or Anticipated Questions
Grading and Expectations

In grading, we will look for whether you computed correct answers, tested functions adequately, and structured your code well. Concretely, we will check:

Remember to include the collaboration statement.

If you want to check whether your file has the same names as our grading scripts will look for, insert the following code at the bottom of your file. This simply looks for the names and types that we stipulated in the assignment. If one of these checks fails, fix your code, not these checks.

  check:

    is-number(math-charters-percent) is true

    (strong-matheng.length() >= 0) is true

    is-number(both-charters-percent) is true

    (poverty-strong-math.length() >= 0) is true

    is-number(charter-poverty-percent) is true

    is-function(count-by-level) is true

    strong-math-levels

  end

What/how to turn in

Submit your schools.arr file. Make sure it has this exact file name so we can run our grading program on your work.