Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update 03-matplotlib.md #817

Open
wants to merge 1 commit into
base: gh-pages
Choose a base branch
from

Conversation

hanlei9876
Copy link

@hanlei9876 hanlei9876 commented Mar 29, 2020

In correspondence to issue #664

Add a short explanation to clarify the differences between libraries and modules

I agree with the point of clarifying the differences between the concepts of 'libraries' and 'modules'. Because if not explaining them, there might be confusions to audiences. But I feel that the main thread of this lesson is to talk about Python fundamental concepts and dealing with datasets, and the terminologies of 'libraries' and 'modules' are not that much important. So, as a tradeoff, I choose to add a quick note of clarification below the first appearance of the concept 'module', so the audience won't get confused here while still following the main thread of this lesson.

In correspondence to issue swcarpentry#664

Add a short explanation of the differences between libraries and modules

I agree with the point of introducing the concepts of 'libraries' and 'modules'. Because if not explaining them, there might be confusions to audiences. But I feel that the main thread of this lesson is to talk about Python fundamental concepts and dealing with datasets, and the terminologies of 'libraries' and 'modules' are not that much important. So, as a tradeoff, I choose to add a quick note below the first appearance of the concept 'module', so the audience won't get confused here while still following the main thread of this lesson.
@maxim-belkin
Copy link
Contributor

@maxim-belkin maxim-belkin commented Mar 29, 2020

Hi, @hanlei9876! Thank you for the pull request and congratulations on your first contribution to our lesson. 🎉 I share my opinion below but keep in mind that there are other maintainers and our opinions may differ, so this is not the final decision.

So, here is what I think:

  1. We don't need to know the differences between libraries/modules/packages/etc. to execute the import statements. The main point is that we have to import something to later use functions from it.

  2. Explaining these differences would increase the cognitive load on learners -- the amount of information learners have to put into their working memories in order to understand something.

  3. In the grand scheme of things, our goal isn't to teach learners peculiarities of Python terminology but to analyze data in Python. Deviating from the main story line to explain differences between modules and packages does not seem to be necessary.

I guess it is clear where I'm heading with all of this: I don't think we can accommodate proposed changes in our lesson. Nonetheless, I'm looking forward to learning what other maintainers (Lauren (@ldko) and Anne (@annefou)) think about it.

Again, thank you for your contribution!

@ldko
Copy link
Contributor

@ldko ldko commented Mar 29, 2020

Thanks for taking the time to submit a pull request @hanlei9876. :) It's good to have you participating.

I agree with you that focusing on the difference in terminologies of 'libraries' and 'modules' isn't that important and thus may divert from the main story line, which leads me to agree with @maxim-belkin that we won't be able to include this text in the episode. However, I think you also make a valid point that undefined terminology in the lesson can be confusing to audiences.

Since the matplotlib episode is where the term "module" is introduced, a different option than adding content to the episode is to link the first use of the term "module" to a glossary definition that we add. This way, if people want clarification, they have a way to quickly access a definition, but it does not slow the pace of the episode nor add cognitive load to new learners who aren't ready for it. Basing off of the Python's explanation of a module, perhaps a definition we might give could be:

A file containing executable statements and Python definitions. The definitions in a module, including functions and variables, may be imported into other modules, scripts, and interactive interpreters for use.

Creating and linking to a glossary entry like this would be similar to what we are working on for the term "notebooks" in pull request #816.

What do you all think of this idea @maxim-belkin @hanlei9876 ?

@hanlei9876
Copy link
Author

@hanlei9876 hanlei9876 commented Mar 30, 2020

Thank you very much for your fresh ideas, @maxim-belkin @ldko.

After carefully reading through your opinions and suggestions. Now I agree with you both on that introducing the terminologies of 'libraries' and 'modules' will increase the cognitive load to new students.

Considering the undefined terminology in the lesson can be confusing to audiences, so the suggestion by @ldko is a very good practice to link the first use of the term "module" to a revised but more efficient glossary definition by @ldko.

Once again, really appreciate the wonderful feedback by you two @maxim-belkin @ldko.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants