Monday, November 05, 2018

Programming Projects Should Be Personal

I’m always looking for new projects. I find them in the strangest places. Facebook for one. And some not so strange places. The AP CS Principles curriculum from code.org has lead me to several. Most recently, the unit on data and privacy took my class and me to the Data Privacy Lab at Harvard

imageThe site has two sections, one looks at your browser history and the other looks at some of your demographic data to see how identifiable you are. One enters imagetheir zip code, birthday, and  gender. The system looks at census data. and shows you how identifiable you are from that limited data set.


Well that is interest but where is the project you hint at in the title of the post. Ah, good question. Since this is a tool based at Harvard you can also see how unique you would be at Harvard. This suggested to me that looking at data from the school were I teach might be more interesting to my students. I asked my Director of IT (have I bragged about how awesome tech support is at my school lately) and a short time later I had a nice comma separated list of gender, birthday, and zip code for all of the students. No more personally identifiable information than that. image

A little bit of coding and I had my own data tool.

That’s when I decided that I had a possible assignment for my students.

I think that students are more interested in projects that are personal to them. Looking at data from Harvard, as fascinating as that could be, is probably not as appealing to a student as data from their own school. They should be able to find themselves in the data. I hope they’ll want to see what they have in common with others in the school.

Now I could assign all of my students the same project. That is what I usually do. I’ve been wanting more variety though. I don’t want one student to solve the project and just share it with their neighbors. A little help, a few pointers, that’s ok but not the whole thing.

For this exercise I decided to try something new (to me at least) and offer a lot of options. They’re all the same basic logic and require the same basic “tools” but there are enough different to confuse a student who copies without understanding. At least I hope that is the case. So I gave options:

  • How many males is a particular zip code
  • How many females in a particular zip code
  • How many males born is a specific month
  • How many females born in a specific month
  • How many males born is a specific year
  • How many females born in a specific month
  • How many people from a specific zip code were born in a specific month
  • How many people from a specific zip code were born is a specific year
  • How many people were born on a specific day (same exact day, month, and year)
  • What percentage of students are male and female
  • Which zip code has the most people (this is a tougher one for people who like a challenge)

None of this is hard (although one of my students insists I am not allowed to say anything is easy) but I just want them to have a little practice problem solving with arrays before we move on to a new topic. I am not allowing students who sit together to do the same exercise. Eventually I want to assign everyone their own unique variation. IF this works out I will start trying to think of similar little exercises that can be just different enough for each student that they have to think on their own.

Anyone else do this sort of thing? Does it work for you? Does it just sound crazy? Yeah, grading will be interesting. Any other concerns?

No comments: