I agree with most of the points everyone's making here, and just wanted to
add some from my experiences as I both teach and use notebooks
professionally and have taught with spyder. (+ pro / - con)
I tried to at least address the same topics as in Joel Grus' talk.

Teaching [Undergraduate and Graduate python-based courses using
Notebooks/Spyder]
- the hidden stateness always trips up students (and sometimes me) as Joel
points out
- the hidden stateness is hard to teach; I have to use a lesson on REPL vs
standard interpreter to get the idea across.
- file saving/loading is a bit clunky and confuses students vs spyder's
approach they grok better (similar to Word or Powerpoint...)
- starting/stopping an instance is confusing to students because the server
is separate from the GUI
+ students find the label-code-output serialization easy to follow, much
more-so than spyder with numbered files and slides
+ the faster students like being able to easily scroll ahead until they
don't know something, then work on their own. With spyder I would lose some
of the faster students.
+ one file / one lesson
(All the cons are teachable, and they do get it in the end, but it's just
more cognitive hurdles.)
(Also, I think some of this may be solved using the Jupyter NB IDE that
ships with Anaconda? I've seen screecaps of something nifty-looking out
there)

Git
- NB plays poorly with git due to in-file binary blobs
+ I do it anyway
+ Once it's online, you can use nbviewer - it's like an informal
publication with comments, code, and results!

Professionally
+ NBs are good for prototyping or trying things out because they let me
quickly scaffold code in a messy fast way
+ Unit testing is straightforward "make a new cell to test stuff"
+ NB to final production is easy: With the smallest bit of care, the
multi-cell NB I've made I download as *.py and immediately can import it
like a module in my production code and use it as a library! This also
addresses Joel's final comments on how to hide messy stuff from
decision-makers.
+ Vim-like code and cell navigation and manipulation is so nice!
+ There are kernels for everything under the sun, making teaching and
exploration with a consistent user experience very nice.

Never Experienced as NB issue
* encouraging bad habits and discouraging good habits: I like that it
encourages comment cells. The resulting *.py module plays nicely with git.
* NB tooltips are bad vs IDE: I teach students to look up documentation, or
use the help(), and the dir/file completion is really nice.
* copy and paste between different media is hard: copying from web with
mangled quotes for example always bites students no matter what.

 - Jory

------------------------------------------
The Carpentries: discuss
Permalink: 
https://carpentries.topicbox.com/groups/discuss/T1505f74d7f6e32f8-M6993446724073d387014c5a3
Delivery options: https://carpentries.topicbox.com/groups/discuss/subscription

Reply via email to