MATFeb2014 » History » Version 11

Chris Cannam, 2014-03-31 03:00 PM

1 1 Chris Cannam
h1. Software Carpentry workshop for MAT at QMUL, Feb 2014
2 1 Chris Cannam
3 1 Chris Cannam
h2. Teaching material and supplementary links
4 1 Chris Cannam
5 3 Chris Cannam
h3. Day 1
6 3 Chris Cannam
7 1 Chris Cannam
* *Introduction to Shell* -- "Tutorial script":/documents/73 -- "Crib sheet on Unix shell commands":/documents/74
8 1 Chris Cannam
* *Version control* -- "Introductory slides":/documents/75 -- "Tutorial script":/projects/easyhg/wiki/SC2012BootcampPlan
9 1 Chris Cannam
10 6 Chris Cannam
h3. Day 2
11 6 Chris Cannam
12 6 Chris Cannam
* *Introduction to Python* -- "Tutorial script":/documents/71 -- "Repository with code":/projects/swc-python-intro
13 10 Chris Cannam
* "Software Carpentry Python lessons":http://software-carpentry.org/4_0/python/index.html
14 11 Chris Cannam
* "Software Carpentry Matplotlib and NumPy lesson":http://software-carpentry.org/blog/2012/05/an-exercise-with-matplotlib-and-numpy.html
15 11 Chris Cannam
* "Software Carpentry quick romp through NumPy":http://software-carpentry.org/blog/2012/06/NumpyLesson.pdf
16 6 Chris Cannam
17 6 Chris Cannam
Other subjects not covered on the day, that may be of interest:
18 6 Chris Cannam
19 6 Chris Cannam
* *Audio in Python* -- "Repository with code (includes example of plotting in Python)":/projects/swc-python-audio
20 6 Chris Cannam
* *Data management* -- "Slides from Feb 2013":/documents/72
21 6 Chris Cannam
* *Unit testing* -- "Tutorial script from Feb 2013":/projects/ssw-swc-2013/wiki/SWC2013TDD
22 6 Chris Cannam
* *What We Know* -- "Slides":/documents/70 about software-development working practices
23 6 Chris Cannam
24 1 Chris Cannam
h2. Other material from us
25 1 Chris Cannam
26 1 Chris Cannam
* We offer "a number of one-page info sheets":http://soundsoftware.ac.uk/handouts-guides on topics related to this workshop
27 1 Chris Cannam
* This very site, "code.soundsoftware.ac.uk":http://code.soundsoftware.ac.uk, is a code hosting site for projects by UK-based audio and music researchers. If you're interested in audio and music, please do register and make use of it! Repository hosting uses Mercurial, and your projects can be public or private.
28 1 Chris Cannam
29 1 Chris Cannam
h2. Links about the software in the workshop
30 1 Chris Cannam
31 9 Chris Cannam
* In day 1 we used "Mercurial":http://mercurial.selenic.com/ and "EasyMercurial":http://easyhg.org/
32 9 Chris Cannam
33 9 Chris Cannam
* In day 2 we used "Python":http://python.org, "SciPy":http://www.scipy.org/, "Matplotlib":http://matplotlib.org
34 9 Chris Cannam
35 9 Chris Cannam
* We did not use (but could have used!) "Nose":https://nose.readthedocs.org/en/latest/, "scikits.audiolab":http://pypi.python.org/pypi/scikits.audiolab/
36 9 Chris Cannam
37 9 Chris Cannam
* The "SciPy Superpack":http://fonnesbeck.github.com/ScipySuperpack/ is a good way to get Python packages installed on OS/X
38 9 Chris Cannam
39 9 Chris Cannam
* There are at least two bundled distributions of Python with scientific libraries and visualisation modules, which you can use to install a complete working Python system: "Anaconda":https://store.continuum.io/cshop/anaconda/ and "Canopy":https://www.enthought.com/products/canopy/. These come from different companies but they are both distributions of the same (open source) libraries, and are completely compatible when it comes to running your own code.
40 1 Chris Cannam
41 1 Chris Cannam
h2. Topical links
42 1 Chris Cannam
43 1 Chris Cannam
h3. Unix and shell
44 1 Chris Cannam
45 1 Chris Cannam
* "Mac OS X man pages online":https://developer.apple.com/library/mac/#documentation/darwin/reference/manpages/index.html
46 1 Chris Cannam
* "Software Carpentry lessons":http://software-carpentry.org/4_0/shell/index.html
47 1 Chris Cannam
* "ELE595 - Software Tools For Engineers":http://www.eecs.qmul.ac.uk/~simond/teaching/ele595/index.html -- Undergraduate module at QMUL. Weeks 5-10 covered Unix
48 1 Chris Cannam
* "Unix tutorial @ University of Surrey":http://www.ee.surrey.ac.uk/Teaching/Unix/
49 1 Chris Cannam
50 1 Chris Cannam
To use Unix commands on a Windows machine, you will need to install additional software (e.g. "MinGW":http://www.mingw.org/ or "Cygwin":http://www.cygwin.com/).
51 1 Chris Cannam
NB: Cygwin doesn't install nano, Python or Mercurial by default - they need to be selected in the setup.
52 1 Chris Cannam
53 1 Chris Cannam
The Windows command prompt and powershell provide similar facilities to the Unix shell, but with different commands and syntax! Of the two, the command prompt is very similar to the basic Unix tools we introduced, but Powershell is more powerful.
54 1 Chris Cannam
55 1 Chris Cannam
* Some Windows command prompt "tutorials":http://www.7tutorials.com/ode-command-prompt-most-powerful-and-least-used-windows-tool
56 1 Chris Cannam
* Official Microsoft "Windows Powershell Owners Manual":http://technet.microsoft.com/en-us/library/ee221100.aspx
57 1 Chris Cannam
58 1 Chris Cannam
If you own an android tablet or phone, then that is a Unix device. It doesn't come with a command prompt by default, but you can "install one":https://play.google.com/store/apps/details?id=jackpal.androidterm&hl=en. NB: this may be dangerous for your device!
59 1 Chris Cannam
60 1 Chris Cannam
If you want to try a full Unix system, then "VirtualBox":http://www.virtualbox.org/ can be used to create a "virtual machine" - a fake computer that runs inside your normal session. You can then install a Linux distribution on that virtual machine.
61 10 Chris Cannam
62 10 Chris Cannam
h3. Python
63 10 Chris Cannam
64 10 Chris Cannam
Lots of code editors will do syntax highlighting for python.
65 10 Chris Cannam
66 10 Chris Cannam
 * "Spyder":http://packages.python.org/spyder/ -- "Matlab-like" interface
67 10 Chris Cannam
 * "PyCharm":http://www.jetbrains.com/pycharm/ -- cross-platform, 30 day free trial, ca. £25 for academic licence
68 10 Chris Cannam
 * Lots more "here":http://wiki.python.org/moin/IntegratedDevelopmentEnvironments
69 10 Chris Cannam
70 10 Chris Cannam
 * "Software Carpentry Python lessons":http://software-carpentry.org/4_0/python/index.html
71 1 Chris Cannam
72 1 Chris Cannam
h3. Version Control
73 1 Chris Cannam
74 1 Chris Cannam
On Windows, "TortoiseHg":http://tortoisehg.bitbucket.org/ provides an alternative interface to Mercurial - you can right-click files in Windows Explorer. It's more techy than EasyMercurial!
75 1 Chris Cannam
76 1 Chris Cannam
 * "Software Carpentry version control lessons":http://software-carpentry.org/4_0/vc/index.html
77 7 Chris Cannam
78 8 Chris Cannam
h1. Schedules etc
79 7 Chris Cannam
80 7 Chris Cannam
h2. Dates/Where
81 7 Chris Cannam
82 7 Chris Cannam
*  Day 1: Afternoon of 12th February 2014 -- MAT lab
83 7 Chris Cannam
*  Day 2: Afternoon of 26th March 2014 -- MAT lab
84 7 Chris Cannam
85 7 Chris Cannam
h2. Schedule
86 7 Chris Cannam
87 7 Chris Cannam
h3. Day 1
88 7 Chris Cannam
89 7 Chris Cannam
This is the actual schedule, i.e. with timings as they were on the day.
90 7 Chris Cannam
91 7 Chris Cannam
Official slot 13.00-17.00.
92 7 Chris Cannam
93 7 Chris Cannam
Attendance 18/22.
94 7 Chris Cannam
95 7 Chris Cannam
* Start - 13.05
96 7 Chris Cannam
* Short intro - Chris - 13.05 to 13.10
97 7 Chris Cannam
* *Shell* - Steve - 13.10 to 14.40
98 7 Chris Cannam
* Break - 14.40 to 15.10
99 7 Chris Cannam
* *Version control* - Chris - 15.10 to 16.50
100 7 Chris Cannam
* End - 16.50
101 7 Chris Cannam
102 7 Chris Cannam
h3. Day 2
103 7 Chris Cannam
104 7 Chris Cannam
Provisional schedule.
105 7 Chris Cannam
106 7 Chris Cannam
Official slot 13.00-17.00.
107 7 Chris Cannam
108 7 Chris Cannam
* Start - 13.05
109 7 Chris Cannam
* *Python* - Bogdan - 13.05 to 14.40
110 7 Chris Cannam
* Break - 14.45 to 15.15
111 7 Chris Cannam
* *Python and NumPy* - Bogdan - 15.20 to 16.30
112 7 Chris Cannam
* End - 16.30