QuinnPhys / PythonWorkshop-science

6 stars 1 forks source link

Logistical Action Items #1

Open QuinnPhys opened 8 years ago

QuinnPhys commented 8 years ago
ysanders commented 8 years ago

Here's a proposed topics list.

  1. overview of python interpreter
  2. basics (string manipulation, math operations, file IO)
  3. data structures (tuples, lists, dictionaries, numpy arrays)
  4. programming styles (imperative, object-oriented, functional)
  5. SciPy
  6. optimization strategies (timing methods, vectorization, parallelization, cython/f2py, thread handling)
crazy4pi314 commented 8 years ago

I presume we'll ask people to install Python ahead of time, probably with Anaconda?

See the detailed outline here the last section on installing which will be done tutorial style with people wandering around to help.

I presume we'll focus on Python 3 to avoid confusion. It seems like most important packages can handle Python 3 nowadays.

2 v. 3 will be talked about in the second lecture as if you are doing QuTiP on windows you cant do 3 (the primary restriction that motivates the discussion of 2 v. 3)

Re: topics list

I think most of these are addressed in the modules outlined in the repo, but esp 6 there probably wont be time for.

cgranade commented 8 years ago

I presume we'll ask people to install Python ahead of time, probably with Anaconda?

See the detailed outline here the last section on installing which will be done tutorial style with people wandering around to help.

To elaborate on this, though it should in principle be straightforward to install Anaconda, I think there's two issues with asking that before hand. First, in principle and in practice are two very different things — I've seen enough random crap go wrong, I'd like to be able to help address confusion in the context of a tutorial. Second, I think given that I've gotten a late start on this, we're not likely to be able to get a lot of luck with pre-installations.

I presume we'll focus on Python 3 to avoid confusion. It seems like most important packages can handle Python 3 nowadays.

2 v. 3 will be talked about in the second lecture as if you are doing QuTiP on windows you cant do 3 (the primary restriction that motivates the discussion of 2 v. 3)

Unfortunately, @crazy4pi314 is very much right on this: the big sticking point still is compiler support on Py3 + Windows. Because QuTiP generates and compiles code at run time (through Cython), it is harder to get it to work with different compiler toolchains. At the moment, QuTiP works only with gcc, which is available on Windows through MinGW, but this is made difficult by Python 3.5's use of the Universal CRT. Though UCRT solves other pressing issues with Windows toolchains, it is a massive complication for us here, so we need to maintain Py2 compat in our tutorials if we want Windows users to participate.

Re: topics list

I think most of these are addressed in the modules outlined in the repo, but esp 6 there probably wont be time for.

There's enough cool topics we won't be able to get to in this workshop, I think it's worth keeping a list of ideas we don't wind up using this time for possible future workshops.

Travis-S commented 8 years ago

Workshops based on material from the Software Carpentry foundation often have pre-installation instructions for the command line, git, and Python. See here for a list of such workshops. Maybe sending out some of that material beforehand, with a "in case you wanted to try this on your own" disclaimer, could be useful?

👍 for this workshop! Some of us at CQuIC are looking to do something similar, and would love to hear how your experience goes.

cgranade commented 8 years ago

In order to keep this issue focused on logistics and such, I've opened up #3 and will respond there to discussions of lecture contents. Thanks for your help!