olexandr-konovalov / 2017-05-18-standrews

Software Carpentry workshop in St Andrews, 18-19 May 2017
https://alex-konovalov.github.io/2017-05-18-standrews/
Other
0 stars 0 forks source link

Make clear that Jupyter is not the only (or even standard) way to work with Python #8

Open pgmccann opened 7 years ago

pgmccann commented 7 years ago

Should make clear early in the lesson that Jupyter is the tool being used to teach Python in this lesson, and that while it might be useful outside the workshop it is not the only (or even usual) way to work with Python.

widdowquinn commented 7 years ago

Thanks Paddy - have you had a look at the issues page for the SWC lesson itself?

widdowquinn commented 7 years ago

I did think I made that clear verbally last time, but I can spend a little more more time reinforcing it, this time around if it might help.

The guide for instructors provides context for the goal of this SWC lesson, which could be paraphrased as "we're teaching programming using Python, not teaching Python":

This lesson is written as an introduction to Python, but its real purpose is to introduce the single most important idea in programming: how to solve problems by building functions, each of which can fit in a programmer's working memory. In order to teach that, we must teach people a little about the mechanics of manipulating data with lists and file I/O so that their functions can do things they actually care about. Our teaching order tries to show practical uses of every idea as soon as it is introduced; instructors should resist the temptation to explain the "other 90%" of the language as well.

(my emphasis)

and…

We do not include instructions on running the Jupyter Notebook in the tutorial because we want to focus on the language rather than the tools. Instructors should, however, walk learners through some basic operations

There's a balance to be struck between teaching the programming concepts (the point of the lesson), and heading into a discussion of the several ways to write and execute Python code, and how they differ. The technical details of that discussion are a distraction from the goal of the lesson, and can require the introduction of new concepts for many of the learners, increasing cognitive load. It could, to follow the style of having a practical example with every example, require an additional cognitive shift for the learner as they move between - say - nano and the shell, and the Jupyter notebook. The balance is in avoiding introducing those additional loads that could detract from teaching the main material.

pgmccann commented 7 years ago

We should maybe have had this discussion sooner after the last workshop, when the reason for me making a note of this was fresher in my mind. You definitely moved on to non-Jupyter stuff towards the end of the lesson; I think there were some queries about it prior to that, possibly from those who already had some programming experience.

That the point is to use Python to teach programming is an excellent one, and possibly one we should emphasise more when advertising the workshop, as well as during it.

widdowquinn commented 7 years ago

I do think that there's a natural way to lead from Jupyter to running/writing a script: by using the notebook's 'Download as', running the code that is produced, and examining it in the context of what was written in the notebook.

That's probably the way I'll look to introducing running Python code from the command-line (before pointing out/demonstrating that code can also be written in nano, and discussing how editor -> code -> run is like notebook -> run), but it's outwith the usual SWC context.

pgmccann commented 7 years ago

You're the boss here - you're the instructor with the training and experience. The issues here are suggestions - don't feel the need to accommodate them if you don't think they're appropriate.

olexandr-konovalov commented 7 years ago

For the record, recent thread in Discuss SWC list: http://lists.software-carpentry.org/pipermail/discuss/2017-May/005237.html