MATFeb2013 » History » Version 17

Chris Cannam, 2013-02-08 02:09 PM

1 1 Chris Cannam
h1. Software Carpentry workshops for MAT/C4DM in QMUL
2 1 Chris Cannam
3 17 Chris Cannam
h2. Post-workshop links
4 1 Chris Cannam
5 17 Chris Cannam
* [[MATFeb2013AssessedExercise|Assessed exercise]]
6 17 Chris Cannam
* [[MATFeb2013Material|Download links for workshop material]]
7 16 Chris Cannam
8 1 Chris Cannam
h2. Dates/Where
9 1 Chris Cannam
10 1 Chris Cannam
*  6th-7th February 2013 -- MAT lab
11 1 Chris Cannam
12 15 Chris Cannam
h2. Planned schedule
13 1 Chris Cannam
14 1 Chris Cannam
*Day 1 - 9.30am to 3pm*
15 1 Chris Cannam
16 1 Chris Cannam
* Day 1 - Morning
17 11 Chris Cannam
** *Introduction* - "material":/attachments/650/intro.pdf - 5 mins - *Chris*
18 11 Chris Cannam
** *Shell* - "material":/projects/jisc-training/repository/show/presentations/MAT%20SWC - 45 mins - *Steve*
19 11 Chris Cannam
** Short coffee break
20 12 Chris Cannam
** *Python* - "material":/documents/71 - 90 mins - *Luis*
21 1 Chris Cannam
22 1 Chris Cannam
* Day 1 - Lunch 12 - 12.30
23 1 Chris Cannam
24 1 Chris Cannam
* Day 1 - Afternoon
25 12 Chris Cannam
** *Version control* - "material":/projects/easyhg/wiki/SC2012BootcampPlan - 90 mins - *Chris*
26 12 Chris Cannam
** *Data management* - "material":/projects/jisc-training/repository/show/presentations/MAT%20SWC - conversation points in area outside lab - 60 mins - *Steve*
27 1 Chris Cannam
28 1 Chris Cannam
*Day 2 - 10am to 4pm*
29 1 Chris Cannam
30 1 Chris Cannam
* Day 2 - Morning
31 12 Chris Cannam
** *Python modules and NumPy* - material in preparation - 60 mins - *Luis*
32 5 Chris Cannam
** Coffee
33 12 Chris Cannam
** *Audio files and more NumPy* - material in preparation based on "this":/projects/audio-bootcamp-planning from Codasign - 80 mins - *Luis*
34 4 Chris Cannam
35 1 Chris Cannam
* Day 2 - Lunch - 12.30 to 1.15
36 1 Chris Cannam
37 1 Chris Cannam
* Day 2 - Afternoon
38 12 Chris Cannam
** *Testing* - [[SWC2013TDD|material]] - 90 mins - *Chris*
39 12 Chris Cannam
** Set the assessment exercise; coffee
40 12 Chris Cannam
** *What We Know* - "material":/documents/70 - 50 mins - *Chris*
41 1 Chris Cannam
42 1 Chris Cannam
* Post-workshop assessment exercise
43 4 Chris Cannam
** -Register for soundsoftware site- No, the exercise will use BitBucket as well (though we tell them about the SoundSoftware site)
44 1 Chris Cannam
** Take the exercise from the last bit of the afternoon (based on ISMIR, but not quite the same) and complete some aspect of it.
45 1 Chris Cannam
** Do this within version control on soundsoftware - add one of us as project member
46 1 Chris Cannam
47 15 Chris Cannam
h2. Actual schedule
48 15 Chris Cannam
49 15 Chris Cannam
The timings we actually ended up having.
50 15 Chris Cannam
51 15 Chris Cannam
*Day 1 - 9.30am to 3pm*
52 15 Chris Cannam
53 15 Chris Cannam
* Wait for people to arrive - 15 mins
54 15 Chris Cannam
* Short intro - Chris - 5 mins
55 15 Chris Cannam
* Shell - Steve - 60 mins
56 15 Chris Cannam
* Coffee - 15 mins
57 15 Chris Cannam
* Intro to Python - Luis - 50 mins
58 15 Chris Cannam
* Lunch - 40 mins (12.00 - 12.40)
59 15 Chris Cannam
* Version control - Chris - 80 mins
60 15 Chris Cannam
* Data - Steve - 60 mins (inc. words from Pat at the start)
61 15 Chris Cannam
62 15 Chris Cannam
*Day 2 - 10am to 4pm*
63 15 Chris Cannam
64 15 Chris Cannam
* Wait for people to arrive - 15 mins
65 15 Chris Cannam
* Python functions - Luis - 95 mins
66 15 Chris Cannam
* Coffee - 10 mins
67 15 Chris Cannam
* Audio in Python - Luis - 45 mins
68 15 Chris Cannam
* Lunch - 60 mins (12.45 - 13.45) (inc. words from Pat at the end)
69 15 Chris Cannam
* Testing - Chris - 60 mins
70 15 Chris Cannam
* Coffee - 20 mins
71 15 Chris Cannam
* Preview assessed exercise - 5 mins
72 15 Chris Cannam
* What We Know - Chris - 50 mins
73 1 Chris Cannam
74 3 Chris Cannam
h2. MAT lab computer setup
75 3 Chris Cannam
76 3 Chris Cannam
Computer lacks:
77 3 Chris Cannam
78 13 Chris Cannam
* Login for Luis (and Steve?) *fixed*
79 13 Chris Cannam
* hg and EasyMercurial *fixed*
80 13 Chris Cannam
* Matplotlib *fixed*
81 13 Chris Cannam
* iPython *fixed*
82 13 Chris Cannam
* Nose *fixed*
83 13 Chris Cannam
* pip _unsure_
84 13 Chris Cannam
* scikits.audiolab _unsure_
85 13 Chris Cannam
* Emacs with a window (as opposed to in terminal) - Aquamacs? *use textwrangler*
86 3 Chris Cannam
87 3 Chris Cannam
Computer does have:
88 3 Chris Cannam
89 3 Chris Cannam
* A text editor (TextWrangler)
90 3 Chris Cannam
* Python 2.7 system install
91 3 Chris Cannam
* NumPy
92 3 Chris Cannam
93 3 Chris Cannam
h1. Detailed plan for schedule
94 1 Chris Cannam
95 1 Chris Cannam
h2. Day 1
96 1 Chris Cannam
97 1 Chris Cannam
9am (?) to 2pm.
98 1 Chris Cannam
99 1 Chris Cannam
Day 1 is rather short because of the MAT lab being booked by someone else from 2pm.
100 1 Chris Cannam
101 1 Chris Cannam
h3. Morning 
102 1 Chris Cannam
* Intro to Shell (SJW)
103 1 Chris Cannam
** Directories: pwd, cd, mkdir, ls
104 1 Chris Cannam
** Files: cp, mv, rm, cat, editors
105 1 Chris Cannam
** scripts #!/bin/bash
106 1 Chris Cannam
** access control: chmod
107 1 Chris Cannam
** Finding stuff: grep, find, locate, which
108 1 Chris Cannam
*** Regular expressions
109 1 Chris Cannam
*** Shell wildcards
110 1 Chris Cannam
** Background tasks: &, fg, bg
111 1 Chris Cannam
** Disk usage: du, df
112 1 Chris Cannam
** Tying things together > < |
113 1 Chris Cannam
** commands history, tab autocompletion
114 1 Chris Cannam
** variables
115 1 Chris Cannam
** doing stuff somewhere else: ssh
116 1 Chris Cannam
** doing serious stuff: sudo
117 1 Chris Cannam
118 1 Chris Cannam
* More possibilities:
119 1 Chris Cannam
** dot
120 1 Chris Cannam
** wget
121 1 Chris Cannam
** rsync
122 1 Chris Cannam
** mounting network (home) directories
123 1 Chris Cannam
** working on octave
124 1 Chris Cannam
125 1 Chris Cannam
* Version Control (CC) (exercise over lunch?)
126 1 Chris Cannam
** Creating repositories on SSW
127 1 Chris Cannam
128 1 Chris Cannam
h3. Afternoon
129 1 Chris Cannam
* Data Management (SJW) - Should content be integrated into discussion of shell / be before VC ?
130 1 Chris Cannam
** Rationale
131 1 Chris Cannam
** File formats - open vs. proprietary, lossy vs. lossless
132 1 Chris Cannam
*** Open formats should remain accessible in the future
133 1 Chris Cannam
*** The actual output from a lossy data format may vary depending upon how it's decoded
134 1 Chris Cannam
*** Converting files - ImageMagick convert, mplayer (to wav) + lame/flac/ogg, ffmpeg
135 1 Chris Cannam
** Backing up
136 1 Chris Cannam
** Archiving
137 1 Chris Cannam
*** "standard" compression tools good on text-like files especially if areas of content are similar
138 1 Chris Cannam
*** special compression needed for complex binary data which varies a lot e.g. FLAC
139 1 Chris Cannam
** Publishing
140 1 Chris Cannam
** Documenting
141 1 Chris Cannam
** Available facilities in C4DM (relevance for MAT ?)
142 1 Chris Cannam
143 1 Chris Cannam
h2. Day 2
144 1 Chris Cannam
145 1 Chris Cannam
10am to 4pm.
146 1 Chris Cannam
147 1 Chris Cannam
h3. Morning 
148 1 Chris Cannam
* Python (LF)
149 1 Chris Cannam
** Variables
150 1 Chris Cannam
*** strings, integers, floats, lists, sets and dictionaries
151 1 Chris Cannam
*** By reference vs. by value
152 1 Chris Cannam
** Control-of-flow
153 1 Chris Cannam
** Libraries and modules - pip, easy_install
154 1 Chris Cannam
** OOP, objects and classes ?
155 1 Chris Cannam
156 1 Chris Cannam
* Python for research
157 1 Chris Cannam
** NumPy
158 1 Chris Cannam
*** Matplotlib
159 1 Chris Cannam
*** SciPy
160 1 Chris Cannam
** Python for Audio/Media: audioop, ossaudiodev, wave, aifc, sunau, PyMedia, pygame (sndarray, mixer, mixer.music), libpd (?), Python Audio Tools, scikits.audiolab, Medussa
161 1 Chris Cannam
162 1 Chris Cannam
h3. Afternoon
163 1 Chris Cannam
* Software engineering
164 1 Chris Cannam
** feedback cycles
165 1 Chris Cannam
** Unit Tests and TDD
166 1 Chris Cannam
*** nose
167 1 Chris Cannam
168 1 Chris Cannam
*Note*: We need to have some sort of evaluation so that we can give attendees a mark (some exercise to be submitted via version control a week later?)
169 1 Chris Cannam
170 1 Chris Cannam
h2. Outcomes
171 1 Chris Cannam
172 14 Chris Cannam
*Note* some of these are C4DM-specific for the C4DM version of the workshop
173 14 Chris Cannam
174 1 Chris Cannam
* Students to have their own version control repository on soundsoftware.ac.uk and to know how to use it (command-line and easyHg)
175 1 Chris Cannam
* Removal of fear of the command-line
176 1 Chris Cannam
* Knowledge of basic UNIX shell commands
177 1 Chris Cannam
* Knowledge of basic Python
178 1 Chris Cannam
* Knowledge of (some) Python libraries for media research
179 1 Chris Cannam
* Understanding of the need for data management and how to manage data
180 1 Chris Cannam
* Understand facilities available at C4DM
181 1 Chris Cannam
* Know where to go for more info
182 1 Chris Cannam
** Software Carpentry - software-carpentry.org
183 1 Chris Cannam
** Version control / project management - soundsoftware.ac.uk
184 1 Chris Cannam
** Python - python.org
185 1 Chris Cannam
** Data management - SoDaMaT
186 1 Chris Cannam
* Improved practices for software engineering, souce code management, data management