Open dhuppenkothen opened 4 years ago
I think this is a great idea! It's a tall order to create a coherent story across the entire lesson but doing it incrementally with small PRs for each episode should be workable.. other thoughts from the community are welcome!
@swcarpentry/python-novice-gapminder-maintainers
I recently taught the second half of this and had the same issue. I changed the examples to be more or less relevant to the data storyline. For example:
I'd be happy to take a pass at some of this, or just share the examples I used.
Would it make more sense to start doing this one bit at a time, as @alee suggested above, or plan it out first?
I think a coherent plan / outline would be a great way to start, my incremental suggestion was more for creating separate, small PRs to implement these changes.
@ageorgou I think I could very much use some help for this! :) I'm busy today, but I can sit down tomorrow and start an outline in a shared document that is open to editing? We could iterate there for a bit and then propose an outline here, along with how to break it down into smaller PRs?
@dhuppenkothen Happy to help with that!
Great idea!
All right, I've started a document to start working out a story line and structure here: https://docs.google.com/document/d/1FVuhO6e7oOmzXQao7wHlUnp6jTe6kbaQOL-PWuGWbHI/edit?usp=sharing
Feel free to edit and comment! I'm travelling next week, but after that, I'll try to put some more time and effort into this.
I've had a quick look but haven't been able to make comments yet, sorry. Will do so this week!
I think this is a great idea and I'm surprised there have been no PR's issued to support it. Is this idea still under consideration?
(I think many of the other issues in this repo become irrelevant once this is implemented, so it's important to know if these changes are planned)
@eldobbins Last year was a bit chaotic on my end (aside from the obvious, I also moved continents and institutions), which is why there hasn't been any progress from my side. I'd love to jump back into this, though, and will try to make some time for this over the next couple of weeks.
One thing I'm a bit fuzzy on is how to approach this in practice: because this touches on so much of this lesson, I don't know whether we can do this one PR per episode, or do one giant restructuring in one go. If anyone has thoughts or advice, I'd be grateful.
@dhuppenkothen if and when you have agreement from the Maintainers on the outline you created in the document you linked above, I would recommend a single pull request (PR) per episode, made to a development branch other than gh-pages
(e.g. narrative
). Once all the episodes have been adjusted and every PR has been merged to that separate branch, the narrative
branch can then be merged with gh-pages
in one big PR.
This approach has the advantage that it keeps the new versions of each episode separate from the default version of the lesson until they are all ready, rather than episodes changing one-by-one in a way that could make the default version of the lesson disjointed for those teaching it (e.g. when half the lesson has a narrative but the other half doesn't). The advantage of individual PRs per-episode is that the diffs are much easier to review, and you will get more opportunities for feedback from the lesson Maintainers/community as you are going through the process. The disadvantage is that you won't see the new version of the pages being built each time your PRs are merged.
If you think it would be important to be able to see those updates in the online version of the lesson, I would recommend creating a fork and merging your per-episode PRs to the gh-pages
branch there, before creating one big PR back to this repository from your fork when you're finished. But for this fork approach to work, you will need to ask the Maintainers of this lesson to review your changes as you're making them on your fork.
That answer got pretty long! I hope it made sense. Happy to provide clarification if needed.
I was also unable to think about this much in the end, but would still like to help. It still makes sense to first revisit @dhuppenkothen's list for individual episodes and elaborate on that, so that there is a more settled plan to discuss?
I was going over the Google Doc, and it occurred to me that once you get past a certain point, it really helps to have a specific product you are building towards.
For instance, when I think of Gapminder, the image that appears in by head is https://www.gapminder.org/downloads/updated-gapminder-world-poster-2015/. So I wondered if it was possible to build towards that figure, or even animating it over the years with loops. But I think that is maybe too complex because it is illustrating 3 variables: population, life expectancy, and GDP.
On the other hand, Gapminder also offers this: https://www.gapminder.org/tools/#$chart-type=linechart. Something like that would be much more reasonable and would support the inquiry set-up by the article.
Another thing I think would help is some preprocessing of the datasets by us so that it is easier to produce the plots. For instance, with the current datasets, Episode 9 Plotting requires stripping the string 'gdpPercap_' to get the years. That should have been done by us beforehand so that the episode can concentrate on plotting.
Hi,
I would also like to work on this. Is there a position from the maintainers regarding the Google Document? If there is green light, it would be nice to have a narrative
branch in the original repository, and possibly a repository milestone or project. This way, it is possible to track PRs associated with this proposal. I would be glad to start implementing changes as suggested in the document and along this thread.
Best, V
https://github.com/swcarpentry/python-novice-gapminder/tree/narrative has been created - please issue pull requests related to this issue against the narrative branch..
Thanks!
Hi, I started work on this with #549 and I've also added a few comments to the Google Docs.
Best, Vini
I think it is a good ideal to learn with examples. maybe we can analysis a simple data as an examples to combine all code together. for example, if we want to analysis data.csv file , first, we need to read the data from csv, in this first step we can introduce pandas, how to install pandas, how to read csv file, how to read other type of files. and then introduce how to save different type of files. after read data, we need to know the shape of data, the first several rows of data. etc. so we can put these code into our stories.
I've taught this lesson for the first time last week. Thank you so much for the materials. I very much appreciate the care and work that goes into building and maintaining these lessons.
My class was almost entirely programming novices, and one thing I stumbled over as an instructor was motivating many of the concepts I taught in a coherent way. As is, they are kind of presented in isolation as a list of things that exist and that one could do, but many of the examples don't really relate to one another (sometimes we're talking about
atom_name
, then aboutpressures
, then we're importing GDPs). From my own experiences, I often have trouble relating these concepts to things that would actually be useful in my daily research routine, and I got the impression many of my learners were wondering, for example, why they were learning about lists when they'd already learned about DataFrames. One thing that I've been wondering about is whether there's a way to build a coherent story around a problem or a question that would lead learners through the material, and as the question being asked becomes more complex, that motivates introducing more complex programming concepts.I'm thinking of something like this: "Yesterday, you read in the newspaper that the per capita GDP of Iceland is 20,381* in 2019, an increase of 2 percentage points over the past year. You're curious how much that is in dollars: fear not, we can use Python to help you calculate the answer." One can move from there to variables (e.g.
iceland2019
andiceland2018
), and maybe build a story around how this person finds more data points, which they then want to store in lists, and plot, and convert to Euros (where one could introduce loops), and compare with other countries (where DataFrames come in).Would that be helpful? I'd be very happy to try and work on something like this if the maintainers think this would improve the lesson.
*Note: I just invented that number. :)