bjc-edc / bjc-r

The Beauty and Joy of Computing public resource repository.
http://bjc.edc.org/
12 stars 19 forks source link

2.4, 3.4, 3.5 Add Jens' Data Science Ideas #36

Open maryfries opened 5 years ago

maryfries commented 5 years ago

Here's what I propose we do:

So, the proposal is: replace U3L4 and most of U3L5 with Jens' stuff, salvaging the existing quizlets, and in U2 make a new "mathy" lab with the two math tools pages and a light KEEP-only intro to data processing.

I'm inclined to not use the "billionaires" dataset but to choose one to highlight social issues (e.g., education, food, global development, labor) and maybe even offer some discussion prompts on those topics.

https://www.youtube.com/watch?v=6H8vK8Q5KeY

https://think.cs.vt.edu/corgis/csv/index.html

maryfries commented 5 years ago

From Paul: To me, that sounds just perfect.

We still need to craft the lessons, of course, so that kids can do the stuff themselves, but this satisfies many of our criteria for BJC: replacing poor labs that only nominally satisfied the intent of the standards, great handling of the deep ideas (and the standards) on data, meaningful (and intelligible) use of HOFs, functional programming, and projects that can be personalized by students (e.g., but not only, by choosing different data sets).

I wonder about the craft. Here is a place where I would not be at all averse to a super-short version of Jens’s talk, a video showing a few successive stages in building one inquiry, and also giving students something (possibly different) that they can use, then modify, before we ask them to create. I don’t think any of the ideas he shows are beyond students’ ability to understand and reproduce creatively, but the more he does, the more steps there are. So a bit of opportunity to experiment is useful. Not broken down into “now select column 5”—too arbitrary and specific (and only one event for practice)—but perhaps like “create expressions to select two or three columns you want to investigate further. Build each expression into a reporter block suitably named so that the name tells you what the block reports (rather than ‘column 5’ of some table).” In fact, there might be a few intermediary steps. Since map is required for selecting a column from a table, and the column must be specified in the appropriate place in item embedded in map, perhaps a first block to create would be column %n of table %data. From that, one produces billionaire wealth with no inputs because it must know both the table and the column in order to function. Etc. That would serve the additional purpose of making a habit of abstraction and good naming. It would also reduce what I think could be the greatest difficulty of this whole enterprise, the level of embedding.

Speaking of which, what do y’all think about pipe? In a much simpler context, I asked Cindy which she thought her students would find clearer: embedded n x 10 ÷ 2 or pipe n -> () x 10 -> () ÷ 2, and I was very neutral (because I honestly didn’t know) in presenting. When she definitively chose pipe, I argued for the simplicity of the two-block embedding, but she didn’t buy it. I’m still not sure, and think we should play a bit, but it sounded like Jens was also suggesting that pipe might be a simpler way to see (or write) the process by seeing it as a process (still discrete steps) rather than requiring that students already see it as an atom, a single multilayered object.

maryfries commented 4 years ago

Much of the above is now done except:

Also the efficacy of PIPE in 2.4.1 is up for debate. Thoughts?