Hi, thanks for the experience, although this is maybe better off in
the slightly related "sage-edu" mailing list than here, but anyways.
Teaching a class is certainly a core feature SMC should support.
I've also some experience in working with students, teaching Linux,
etc. My impression is, that there is either a clear understanding that
computers & software are a very powerful combination that need a lot
of work to get used to and make it useful -- or a complete lack of
that insight. I assume that has to do with how good user interface
have become and also, that a few help a lot of others to cope with
their computer problems.
I don't know if there is a good solution or how education could tackle
that problem. Your comments indicate to me, that there is lack of
deeper understanding and maybe more diverse examples are necessary to
"expand the narrow mind".
* linux terminal: basic terminal commands; create a bash script with a
for loop; etc.
* and after these low-level exercises step up to the higher level
where the notebook sits (which is essentially also a form of such a
REPL interface)
* finally, write a short python program, which reads some data from a
file and does some computations (sums in a CSV file)
> * Using _ for "last result" was a bit flakey...
I wouldn't suggest using that, it's better to make things explicit.
I.e. they need to have a mental model, what a variable is and how they
work.
> There would simply be no output.
In the settings, the restart worksheet server could be helpful. The
components of the SMC system are also not running as smooth as they
could. Massive expansion of server resources and tweaking/bugfixing
will hopefully reduce that problem significantly.
> * The students are very excited to ignore my simple instructions and go off
> and do some
> symbolic math. They all love to see integrals and derivatives done for them.
Although I wrote about that more formal introduction above, I think
it's important to just let them play around. They cannot destroy
anything and testing the limits of anything new is always exiting.
Just don't forget to show them the different types of plots, like
matrix_plot, implicit_plot and complex_plot.
>
> * inserting * in terms like 5x (needs to be 5*x) was a continual problems.
AFAIK there are "half-half" solutions - but in my eyes, it's better to
have that inconvenience for the long term. Scientific computing
implies some programming ... and there this level of explicitly is
almost always the case.
> 1) auto declare a-z to be variables, like var('a,b,c,d,e......z') could be
> done as the worksheet starts.
I'm for x,y and z, but e.g. "r" is a really bad idea. If you would sit
in an undergrad course for statistics, that's the "R" software ;)
Said that, there is a pretty good default declaration mode for SymPy.
I think they have nice defaults and that might fit your needs more?
i.e.
"""
from __future__ import division
import sympy as sym
from sympy import *
x, y, z = symbols("x y z")
k, m, n = symbols("k m n", integer=True)
f, g, h = map(Function, 'fgh')
"""
and then
http://nbviewer.ipython.org/urls/raw.github.com/jrjohansson/scientific-python-lectures/master/Lecture-5-Sympy.ipynb
It's maybe super confusing to start off with something completely
different ... OTOH maybe it's also even more fun to compare two
systems head to head since they work slightly differently and offer
even more to explore and play around.
>
> 2) Suppress those nasty red error messages.
Treating syntax and semantic errors differently, well, that could be
useful for everyone. Yes.
> * I believe the students see computer use as an unnecessary diversion. I
> gave them an intro. about how scientists don't really use calculators
> anymore, and how much nicer the computer is vs. the TI83, etc. but every
> time I do a computer activity like this with undergrads, I get this odd
> feeling of ire from them, like it would have been even better if I just let
> them out early or did another homework problem, etc. I think we've (those
> of us in higher-ed) have all done a bad job at convincing students of the
> value the computer has in solving problems...they just don't see it as a
> tool for doing such.
Maybe you have to show them examples which are way too complicated,
but on the other hand they immediately understand it, because it's
more tangible?
E.g. a plot of a FFT of a sound wave, or a statistical analysis of
some data round them? I don't know ...
What I mean is that a simple list of low level building blocks is not
convincing enough. The true power comes with the combination of many
smaller tools and that's where there real interest starts. Teaching
this is a hard task, yes ;)
> I'll
> report back on how these sessions went.
>
> Thanks, hope other find this experience useful.
Thanks again, and in any case, please let us know what happens. Most
of your problems are a bit out of scope and much broader, but I am
sure there are others who are also interested!
Harald