Slide 1

Slide 1 text

SOFTWARE CARPENTRY TRAINING MODEL Ivan Zimine 2015-04-02

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

RAISON D'ÊTRE Software Carpentry is a volunteer organization whose goal is to make scientists more productive, and their work more reliable, by teaching them basic computing skills. ...it runs short, intensive workshops that cover program design, version control, testing, and task automation.

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

BEST PRACTICES 1. Write programs for people, not computers. 2. Let the computer do the work. 3. Make incremental changes. 4. Don't repeat yourself (or others). 5. Plan for mistakes. (testing) 6. Optimize software only after it works correctly. 7. Document design and purpose, not mechanics. 8. Collaborate.

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

TEACHING SCIENTISTS ADULTS LESSONS LEARNED

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

V1: 1995 ~ 2002 BCP articles at IEEE CS & Eng 1 week courses at Los Alamos National Laboratory 9 iterations from 1998 to 2002 Intensive week­long courses are easy to schedule..., but by the last two days, attendees’ brains are full and learning drops off significantly. Textbook software engineering is not the right thing to teach most scientists.

Slide 11

Slide 11 text

V2/3: 2004 ~ 2005 term-long graduate course students from Computer Science and the physical and life sciences Most Computer Science faculty believe this basic material is too easy to deserve a graduate credit. However, other departments... In the absence of an institutional mechanism to offer credit courses at some inter­departmental level, this course ... fell between two stools.

Slide 12

Slide 12 text

V2/3: 2004 ~ 2005 ...despite repeated invitations, other people did not contribute updates or new material beyond an occasional bug report. This is partly because educators’ preferred file formats (Word, PowerPoint, and PDF) can’t be handled gracefully by existing version control systems, but more importantly, there simply isn’t a “culture of contribution” in education for projects like Software Carpentry to build on.

Slide 13

Slide 13 text

V4: 2010 switch back to week-long courses for sponsoring org 120 short video lessons changing landscape: open access, crowd sourcing “If I wanted to be a programmer instead of a chemist, I would have chosen computer science as my major instead of chemistry” Most importantly, the MOOC format didn’t work: only 5–10% of those who started with us completed the course.

Slide 14

Slide 14 text

V5: 2012 ­ switch to two days intensive course (following The Hacker Within model) cut OOP, XML, GUI, design patterns, soft dev life-cycles,... shorter course == more participants == more instructors our real aim isn’t to teach Python, Git, or any other specific tool: it’s to teach computational competence.

Slide 15

Slide 15 text

V5: 2012 ­

Slide 16

Slide 16 text

WORKSHOP TIPS no more than 40 people per room during workshop free, but small registration fee ($20-40) helps to reduce no-show rate live coding instead of slides (ipython notebook) open lessons content (CC-BY) open everything (grant proposals, feedback from participants) dogfooding (github, documentation tools)

Slide 17

Slide 17 text

INSTRUCTOR TRAINING

Slide 18

Slide 18 text

To help people teach, we now run an online training course for would­be instructors. It takes 2–4 hours/week of their time for 12–14 weeks, and introduces them to the basics of educational psychology, instructional design, ... It is necessarily very shallow, but most participants report that they find the material interesting as well as useful.

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

LINKS http://software-carpentry.org/ http://swcarpentry.github.io/ http://swcarpentry.github.io/training- course/