Blog

Wrapping Up at UC Davis

Jenna Lang has posted a great wrap-up on the boot camp at UC Davis — with Python cookies!

cookies


— 2013-05-17 by Greg Wilson.

Experiences with the Oxford DTCs

Mario Antonioletti has posted his experiences on being a first-time instructor at our boot camp for the Oxford doctoral training centres, our second in Oxford, last week.


— 2013-05-17 by Mike Jackson.

Announcing Hack4ac

Hack4ac is a one-day hackathon in London, England, on July 6. Its goals are:

  • Demonstrate the value of the CC-BY licence within academia. We are interested in supporting innovations around and on top of the literature.
  • Reach out to academics who are keen to learn or improve their programming skills to better their research. We're especially interested in academics who have never coded before.

It looks like fun—if you're in the area and interested in getting involved, they'd be happy to have you there.


— 2013-05-16 by Greg Wilson.

A Mention in Science Careers

Vijee Venkatraman has written a good article for Science Careers titled "When All Science Becomes Data Science", which mentions Software Carpentry.


— 2013-05-14 by Greg Wilson.

Git vs. Subversion and Feedback in General

Software Carpentry's mission is to help scientists teach other scientists how to be better programmers. If we want to do that successfully, we need to be scientists ourselves. In particular, we need to base what we teach on evidence, not anecdotes or personal preferences.

For example: we taught Git at the Toronto boot camp last week, and once again I think our learners would have absorbed more if we'd taught Subversion. Why? Well, take a look at this diagram by Oliver Steele (which I found on this page written by Nick Quaranto):

Git Transport

Four locations are in play, and eight different commands are used to move information around or compare what's in one place to another. Now look at the corresponding diagram for Subversion:

Subversion Transport

There are only three locations for people to keep track of, and the basic workflow involves only four commands. If you believe complexity is partially multiplicative (because people have to keep track of the interactions between things, as well as the things themselves), Git is at least twice as complex for people to understand. Slicing it another way, there are more opportunities for people to do the wrong thing with Git, and more they have to understand to undo it. And that's before we introduce branches...

But that's just my point of view, and the fact that I can wrap a plausible story around it doesn't make it true. Matt Davis and others believe they've been successful with Git in front of the same kinds of people. We need to find out who's right, so our major goal for the next three months is to poll and interview boot camp attendees to find out who was taught what, who tried what, who's still using what, and why. Caitlyn Pickens will be leading this effort, and many of you will get email from her in the next few weeks. When it arrives, please take a few minutes to tell us what you're actually doing, even if it's not what we told you to do—especially if it's not, because that'll tell us what we need to fix.


— 2013-05-10 by Greg Wilson.

More Detailed Feeback from Melbourne

The hosts of our February boot camp at the AMOS conference in Melbourne have collected some more detailed feedback from participants. I'm pleased that two thirds thought the content was just right, and even more pleased that 83% thought version control "must be taught".


How useful did you find the online software installation instructions?

76%Very useful: I required no assistance with installing the software
24%Somewhat useful: I required minimal assistance with installing the software
0%Not very useful: I required significant assistance with installing the software I was unable to get most of the software installed

How did you feel about the schedule?

Too earlyFineToo late
9:00am start3%93%3%
4:30pm finish0%97%3%

The lunch and tea breaks were:

3%Too short
93%A good length
3%Too long

What do you think is the ideal length of time for a boot camp?

3%1 day
33%2 days
50%3 days
13%1 week

Rate the following topics in terms of how important you think they are for a weather/climate science audience.

Must be taughtTake it or leave itTake it out
Intro to Python86%7%7%
Program design and testing97%3%0%
Version control83%14%3%
Regular expressions43%50%7%
Databases31%48%21%
Numpy57%32%11%

In general, you found the content:

0%Much too hard: I was struggling to keep up!
14%Slightly too hard
66%Just right
17%Slightly too easy
3%Much too easy: I was struggling to stay awake!

"Online office hours" is a service provided by Software Carpentry where you can get online assistance over a 2 hour period once a week. Which item best describes your current engagement with that service?

0%I've attended in the past but probably won't again
7%I've attended in the past and will do so again
55%I've never attended but probably will in future
38%I've never attended and probably never will

If a boot camp (of similar content) was held in conjunction with the AMOS conference in Hobart next February, do you think you would attend (i.e. as a refresher)?

18%Yes
32%No
50%Maybe

— 2013-05-03 by Greg Wilson.

Make It Easier to (Re)use Your Data

Software Carpentry has focused on computing for most of its 14 years (primarily because that's what I'm most familiar with) but it's increasingly clear that we need to tackle other parts of the research cycle. One is the new ideas clustered around publication, discovery and metrics, which I'll discuss in a future post. The other is data management; we only touch on the topic right now, but it's as important to most scientists as crunching numbers, and how best to do it is changing rapidly. Luckily, a few of our friends have written a guide for the perplexed:

Ethan P. White, Elita Baldridge, Zachary T. Brym, Kenneth J. Locey, Daniel J. McGlinn, and Sarah R. Supp: "Nine simple ways to make it easier to (re)use your data". PeerJ PrePrints, v1 received 2013-04-11, DOI: 10.7287/peerj.preprints.7.
Sharing data is increasingly considered to be an important part of the scientific process. Making your data publicly available allows original results to be reproduced and new analyses to be conducted. While sharing your data is the first step in allowing reuse, it is also important that the data be easy understand and use. We describe nine simple ways to make it easy to reuse the data that you share and also make it easier to work with it yourself. Our recommendations focus on making your data understandable, easy to analyze, and readily available to the wider community of scientists.

Their nine specific recommendations (elaborated at readable length in the paper) are:

  1. Share your data.
  2. Provide metadata.
  3. Provide an unprocessed form of the data.
  4. Use standard data formats.
  5. Use good null values.
  6. Perform basic quality control.
  7. Use an established repository.
  8. Use an established and liberal license.

It's a great outline for a half-day introduction to data management as part of an "extended play" Software Carpentry course, particularly when combined with William Stafford Noble's "A Quick Guide to Organizing Computational Biology Projects". We hope to turn the pair into lessons by September.


— 2013-05-03 by Greg Wilson.

Translucent Badges

Digital badges are a hot meme right now. They let anyone, anywhere, issue credentials that are finer-grained than degree certificates or driver's licenses. Want people to know that you can change the oil in a car? There's a badge for that. Or that you can speak conversational Frisian? There's a badge for that too. And "backpack" sites make it easy to aggregate badges, including the ones that show you've created content for Software Carpentry, that you're qualified to teach it, or that you've helped to organize and run a boot camp.

In discussion with Cameron Neylon earlier today, another use case for badges came up—one that will require a bit of tooling, but would be useful in a lot of contexts. When I submit a paper to a scientific journal, the reviews that come back are usually anonymous (i.e., I don't know who the reviewers were). There are good reasons for this, but it creates a problem: how do I know how to assess those reviews? To borrow Cameron's example, if my physics paper gets one review from Richard Feynman and one from Joe the Mechanic, I probably ought to pay more attention to Feynman's—unless the paper is describing an experimental setup, in which case I should probably care more about Joe's, because Feynman was notoriously bad at doing experiments.

I can't solve this problem with badges right now because each badge identifies the person it was issued for (which is kind of the point). But what if Jane, as a reviewer, could go back to the badge issue (or to the backpack site she's using to aggregate her badges) and say, "Please give me a token I can attach to this review to show that I have an Expert Experimentalist badge"? The token would be digitally signed, so that people could confirm its authenticity, but no personal identification.

By analogy with Peter Wayner's "translucent databases", we can think of these tokens as "translucent badges": they let some light through, but they're not completely transparent. I can see lots of other ways they'd be useful. For example, I would really like to know whether a lengthy comment on Slashdot about software patents was written by a patent lawyer or a teenager in a basement in Saskatchewan—except what I really mean is, "I'd like to know how much the commenter knows about the subject," because that kid in Saskatchewan just might be a self-taught expert. Badges give her a way to validate her expertise; translucency would give her a way to share it more safely.


— 2013-05-02 by Greg Wilson.

A Rational Computing Process: How and Why to Fake It

Parnas and Clement's 1986 paper "A Rational Design Process: How and Why to Fake It" [1] is one of the most widely read in the history of software engineering. In it, they argued that designing software according to some particular process isn't what matters; what does is creating documentation after the fact to make it look as though a rational process was followed so that other people can retrace the designers' thinking without heroic effort. Acknowledging the messiness of reality wasn't new: a century ago, Poincaré wrote that most mathematicians figured out the proof after they had figured out the answer, and everyone knows that the description of the experiment that's put in the paper is almost never how the experiment was actually done [2]:

How Experiments Work

A conversation with Cameron Neylon has got me thinking about how this relates to Software Carpentry. We don't know how scientists actually use computers day-to-day. We only know what they report after the fact, which (a) isn't much, and (b) is almost certainly a rational reconstruction rather than the messy reality.

What's more, traditional lectures don't show scientists how to navigate the false starts and circuitous by-ways of real coding. Instead, just as most mathematicians only show students finished, perfect proofs, most lectures and textbooks only show the program that worked, rather than its half-dozen incomplete or not-quite-right ancestors. (One of the reasons we now do most of our teaching via live coding is that it lets learners see the "two steps forward, one step back, google for a solution, and repeat" of real life.)

I think we need to teach people that there is a fundamental disconnect in all software development between repeatable, describable processes with flowcharts and checklists and the messy improvisation we all actually do. The problem is, many people crave the former even when they know it's a lie. As James Scott wrote in Seeing Like a State [3], large organizations almost always choose uniformity over productivity. From Stalin's forced collectivization of farming in the 1930s to the Rational Unified Process for software design, centralizers would rather have everyone do the same thing, even if it's wrong, than cope with the information overload and loss of control of individual agency.

The reason we don't teach people that rules are really just guidelines is that improvising requires judgment, which requires a deep knowledge of the problem domain and related solution techniques. Almost by definition, researchers are doing things that haven't been done before (at least, not exactly). This means that end-to-end "best practices" for scientific computing probably don't exist, because everyone's ends are different.

The best we can do, I think, is to show people the pieces out of which most of their competent peers assemble their daily work. What would help us do this is a collection of profiles of competent scientists' computational workflows—of how people who know what they're doing fit the pieces together when solving particular problems in particular domains. They would take time to produce (I think they'd have to be done by a neutral third party, since self-reporting is unreliable), and we'd have to be very careful that "this is how Jane does it" wasn't interpreted as "you must work this way", but showing people the actual process as well as its rational reconstruction would accelerate uptake of better practices like nothing else could.

  1. Paywalled, of course, since that's how the IEEE helps ideas spread, but PDFs are available on the web.
  2. This rational reconstruction is similar to program slicing, which is the process of extracting just those bits of a program needed to reproduce some specified subset of its output.
  3. Scott's Two Cheers for Anarchism presents many of the same arguments in a shorter but more scattered way. If you only have time for one, read it instead.

— 2013-05-02 by Greg Wilson.

Pre-Assessment Results

Of the 29 people who responded to a brief questionnaire before a recent boot camp, we have:

18graduate students
4postdocs
4staff
1faculty member
1general public
1special student

They describe their current expertise as:

1master
10have written a few programs
17have written a little code
1has no programming experience

Here's how they thought they could do on some simple tasks:

  1. Write a short program to read a file containing columns of numbers separated by commas, average the non-negative values in the second and fifth columns, and print the results.
    11could do it easily
    15could probably struggle through
    3wouldn't know where to start
  2. In a directory with 1000 text files, create a list of all files that contain the word "Drosophila", and redirect the output to a file called results.txt.
    12could do it easily
    10could struggle through
    7wouldn't know where to start
  3. Check out a working copy of a project from version control, add a file called paper.txt, and commit the change.
    3could do it easily
    4could struggle through
    22wouldn't know where to start
  4. A tab-delimited file has two columns: the date, and the highest temperature on that day. Produce a graph showing the average highest temperature for each month.
    19could do it easily
    0could struggle through
    10wouldn't know where to start

— 2013-04-30 by Greg Wilson.

All Posts By Date

Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2004 0 0 0 0 0 0 0 0 0 0 0 1
2005 0 0 0 0 0 0 2 1 3 0 1 6
2006 10 11 4 5 2 1 3 4 0 2 2 1
2007 1 1 3 1 1 6 4 2 2 2 0 1
2008 0 4 4 4 7 3 6 4 2 2 7 6
2009 4 9 5 8 6 13 20 16 9 8 9 5
2010 7 4 10 11 24 41 32 12 17 24 15 23
2011 24 19 24 5 6 11 9 3 8 8 12 10
2012 15 37 28 26 31 21 9 13 18 30 25 22
2013 14 18 12 16 9 0 0 0 0 0 0 0

2013

May

2013-05-17: Wrapping Up at UC Davis
2013-05-17: Experiences with the Oxford DTCs
2013-05-16: Announcing Hack4ac
2013-05-14: A Mention in Science Careers
2013-05-10: Git vs. Subversion and Feedback in General
2013-05-03: More Detailed Feeback from Melbourne
2013-05-03: Make It Easier to (Re)use Your Data
2013-05-02: Translucent Badges
2013-05-02: A Rational Computing Process: How and Why to Fake It

Apr

2013-04-30: Pre-Assessment Results
2013-04-29: An Update on Cumulative Enrolment
2013-04-27: Sound Software Competition
2013-04-24: Bootcamp Recap: Middle East and South Africa
2013-04-24: Manchester Once Again
2013-04-23: Software Carpentry at SciPy 2013
2013-04-19: Spreadsheets, Retractions, and Bias
2013-04-19: Feedback from Arizona
2013-04-16: Feedback from UC Berkeley
2013-04-16: Feedback from the EGI Forum
2013-04-08: A Bootcamp in Toronto May 9-10, 2013
2013-04-07: Announcing a Bootcamp for Women in Science and Engineering
2013-04-08: Evaluation Revisited
2013-04-08: Installation Revisited
2013-04-05: An Image Analysis Success Story
2013-04-03: Connecting Boot Camp Content to Motivation and Best Practices

Mar

2013-03-24: Using the IPython Notebook as a Teaching Tool
2013-03-17: Cumulative Enrollment
2013-03-17: Testing Image Processing
2013-03-15: Snowstorms and Blackouts in Virginia
2013-03-14: New Camps Coming Up
2013-03-13: Second Round at Lawrence Berkeley
2013-03-12: A New Testing Framework for MATLAB
2013-03-05: First Round at Lawrence Berkeley
2013-03-02: Teaching with ipythonblocks at UW
2013-03-01: Feedback from UW Room B
2013-03-01: Washington Went Well
2013-03-01: Alternative Teaching Models

Feb

2013-02-27: Workshop for High-Energy Physics at UCL, Part 2
2013-02-15: Expanding Our Boot Camp Types
2013-02-27: A Bootcamp for Women in Science and Engineering
2013-02-15: Wrapping Up in Melbourne
2013-02-14: Registration for Amsterdam Boot Camp is Open
2013-02-14: More News from the UK
2013-02-13: Second Dry-Run of DiRAC Driver's License Exam
2013-02-12: Partnering with the SSI
2013-02-11: Correctness Isn't Compelling
2013-02-11: UBC Went Well
2013-02-08: Macquarie Went Well
2013-02-06: We Have a Facebook Page
2013-02-03: Features and Scope in Open Courseware
2013-02-03: The Missing Side of the Triangle
2013-02-03: A Short Report from Tuebingen
2013-02-02: A Short Report from Utah State
2013-02-01: Next-Generation Sequencing Course 2013
2013-02-01: A Bunch of Bootcamps

Jan

2013-01-30: Teaching R at UBC
2013-01-30: A Boot Camp at Mozilla
2013-01-28: Novelty, Efficiency, and Trust
2013-01-24: Visualizing Nuclear Fuel Inventories
2013-01-23: How to Become an Instructor
2013-01-22: Record and Playback in the IPython Notebook
2013-01-21: Online Office Hours
2013-01-16: University of Chicago in January
2013-01-14: Montreal in January
2013-01-11: Teaching Commercially
2013-01-10: PLoS Ad for Software Carpentry
2013-01-05: The Art of Cold Calling
2013-01-04: Advice From a Newbie No More
2013-01-04: Why We Teach

2012

Dec

2012-12-23: Computer Science Curricula 2013
2012-12-21: Code of Conduct
2012-12-21: Sample Data Management Plans
2012-12-19: Minutes from 2012-12-19 All-Hands Meeting
2012-12-16: You've Shown Me the C, Now Where's the Python?
2012-12-15: Lorena Barba's Reproducibility PI Manifesto
2012-12-15: Three Non-trivial Use Cases for Git
2012-12-13: Two R Workshops at UBC in 2013
2012-12-12: Feedback from Edinburgh
2012-12-12: IPython Funding: Hurray!
2012-12-11: Some of the Things We've Learned About Teaching Git
2012-12-10: Things Are Going Well in Texas on Ada Lovelace's Birthday
2012-12-09: What To Work On In 2013
2012-12-08: Creating a Task List
2012-12-05: Sustainability
2012-12-05: Our First Hackathon
2012-12-05: Who Can Run a Software Carpentry Workshop?
2012-12-05: Moving Up and Moving Down
2012-12-05: Why Be an Instructor
2012-12-05: Six Years Later
2012-12-04: See You at PyCon 2013
2012-12-01: European Grid Infrastructure is Organizing a Software Carpentry Workshop

Nov

2012-11-30: Good News About Software Carpentry (and More)
2012-11-27: Alpha Testing Ideas for the IPython Notebook
2012-11-19: Who Wants To Build a Faded Example Tool for the IPython Notebook?
2012-11-19: The Tool (I Think) We Need To Do Peer Instruction Online
2012-11-17: Updating Our Reading List
2012-11-16: Who Wants To Write a Little Code?
2012-11-16: Making a Difference at LBL
2012-11-16: We Apologize for the Interruption in Our Service
2012-11-16: Matt Davis's Great Californian Adventure
2012-11-15: This Is What We Do
2012-11-14: A Mostly Successful Decade
2012-11-14: FOSDEM 2013
2012-11-13: Web 4 Science
2012-11-14: Workshop for High-Energy Physics at UCL
2012-11-13: Pre-Assessment
2012-11-07: More Oxford feedback
2012-11-06: More Tips
2012-11-05: An Administrative Note
2012-11-04: Winter School on Reproducible Research
2012-11-03: How to Help at a Boot Camp
2012-11-01: Charging and Being Charged
2012-11-01: Oxford Wrap-Up (with charts!)
2012-11-01: Pelican Guts: on content management for Software Carpentry
2012-11-25: Titus Brown on the Scripps Institute Boot Camp
2012-11-24: Cait Pickens on the Scripps Institute Boot Camp

Oct

2012-10-30: A List of Bioinformatics Courses
2012-10-30: Minutes from 2012-10-29 All-Hands Meeting
2012-10-29: Position Available: Director, Webmaking Science Lab, Mozilla
2012-10-28: Usability Testing and Instructional Design
2012-10-27: Why This Is Hard (Part Deux)
2012-10-26: Counting to Five (or, A Plan for Online Tutorials and What's Wrong With It)
2012-10-26: Two Self-Assessments
2012-10-26: Mozilla Web Literacies White Paper
2012-10-25: Prime Numbers, Biologists, and Data Visualization
2012-10-24: Feedback from Newcastle
2012-10-23: 25 Questions
2012-10-23: Key Points
2012-10-23: Twenty Percent
2012-10-22: Excel Isn't Intrinsically Evil
2012-10-22: Getting Credit
2012-10-22: Feedback from UC Berkeley
2012-10-21: Why Teaching People to Program Is Hard
2012-10-20: Feedback from Lawrence Berkeley Lab
2012-10-17: I Screwed Up (or, Why Automation Isn't Always a Good Thing)
2012-10-12: Why We Teach Version Control
2012-10-12: Rebuilding Redux
2012-10-10: Purdue
2012-10-10: Dark Matter, Public Health, and Scientific Computing
2012-10-05: Convergent Evolution
2012-10-05: UCL Researchers to Get Help with Software Development
2012-10-04: Transitioning to the IPython Notebook
2012-10-04: Wanted: An Entry-Level Provenance Library
2012-10-03: Best Practices for Scientific Computing
2012-10-02: How to Help at a Boot Camp
2012-10-01: What Would You Like in an Instructor's Guide?

Sep

2012-09-30: Oslo and Columbia
2012-09-30: The Real Hard Work
2012-09-29: Workshop at the University of Newcastle in October
2012-09-27: How to Run a Bootcamp (new and improved)
2012-09-26: Computational Thinking and Ice Floating in Bathtubs
2012-09-20: Why This Stuff Is Hard To Teach
2012-09-20: Feedback and wrap-up from York
2012-09-18: What's In Your Stack?
2012-09-18: Post-Mortem on the NGS Course
2012-09-16: Systematic Curriculum Design
2012-09-13: Number Crunching with Python: DC Python Workshop
2012-09-12: The Software Is Open (even if the interviews aren't)
2012-09-12: Patterns Wanted
2012-09-06: How Quickly Do Workshops Fill Up?
2012-09-04: Free As In Pretty Much Whatever You Want
2012-09-04: Not Really Disjoint
2012-09-04: Final Results of Demographic Survey
2012-09-02: Lifted by the Audience

Aug

2012-08-29: Linking Forward From a Bibliography?
2012-08-29: A Problem With Badges
2012-08-29: Please Help the Hunter Family
2012-08-27: An Interview with Titus Brown
2012-08-21: An Updated List of Upcoming Workshops
2012-08-20: What We Talk About When We Talk About Software Carpentry
2012-08-17: Who Are You?
2012-08-16: Alpha Test of Driver's License Exam
2012-08-14: A Question and Answer Matrix for Software Carpentry
2012-08-14: Interview about Software Carpentry (and Education)
2012-08-14: Applying Pedagogical Principles in This Course
2012-08-01: We're Going to Be Busy
2012-08-01: That Was Quick

Jul

2012-07-30: Record and Playback
2012-07-28: Software Carpentry Needs You!
2012-07-22: IPython Notebook + Towtruck + Etherpad + Slide Drive = Win
2012-07-21: How Robust Is Your Programming Language?
2012-07-21: Software Carpentry in Paris !
2012-07-19: Workshop wrap up from the Rutherford Appleton Laboratory
2012-07-17: Wrapping Up in Halifax
2012-07-10: Wrapping Up in Boston
2012-07-05: Independent Assessment of the Past Six Months

Jun

2012-06-27: Where We Are (June 2012 edition)
2012-06-27: A Supercomputing Driver's License
2012-06-27: Fortran Format Statements and Regular Expressions
2012-06-26: Pessimism and Doom
2012-06-26: Two Posts on Scientific Workflows
2012-06-26: Handling Variant Configuration Files
2012-06-25: If You Want to Teach, Isn't It Only Fair to Learn a Few Things First?
2012-06-20: Feedback from Johns Hopkins
2012-06-18: A Busy Week (And Schwag!)
2012-06-15: This Week's Tutorials
2012-06-15: Pretty Well Sums It Up
2012-06-14: All Entries for the Executable Paper Grand Challenge
2012-06-10: First Workshop on Maintainable Software Practices in e-Science
2012-06-08: But the Greatest of These Is...
2012-06-08: We Get Mail
2012-06-07: Tutorial: NumPy, SciPy, and matplotlib
2012-06-07: Ten Simple Rules
2012-06-04: What Skills Are Required to Implement Open Access?
2012-06-04: Software Carpentry: The E-Book Version?
2012-06-03: Git tutorial links
2012-06-01: Introduction to NumPy Tutorial

May

2012-05-30: A Poster for the Software Carpentry Workshop at INRIA
2012-05-31: Dictionaries are a Scientist's Friend
2012-05-29: How to Run a Bootcamp
2012-05-30: SoundSoftware 2012: Workshop on Software and Data for Audio and Music Research
2012-05-27: What to Read If You're Teaching Software Carpentry
2012-05-24: No CT Without PL
2012-05-24: Spot the Workshops
2012-05-24: Feedback from the University of British Columbia
2012-05-23: Alone and Misunderstood
2012-05-23: Responsible Conduct
2012-05-22: Citing Versions
2012-05-21: Being More Systematic About Publicity
2012-05-20: What's Wrong With All This?
2012-05-19: Space at Upcoming Events
2012-05-21: An Exercise With Matplotlib and Numpy
2012-05-18: The Most Important Scientific Result Published in the Last Year
2012-05-18: Feedback from Alberta
2012-05-17: Halifax in July
2012-05-16: And One More: Johns Hopkins in June
2012-05-15: Fooling the Internet
2012-05-15: Feedback from Newcastle upon Tyne
2012-05-15: Two Boot Camps in Ontario in July
2012-05-14: Solution to Indented List Problem
2012-05-12: Feedback from Michigan State
2012-05-11: Run My Code
2012-05-10: Fish and Bugs
2012-05-09: Boot Camp in Boston, July 9-10
2012-05-08: The Architecture of Open Source Applications: Volume 2
2012-05-04: UCL Bootcamp: Version Control Wrap-Up
2012-05-02: The Good and the Bad of It
2012-05-06: An Exercise With Functions and Plotting

Apr

2012-04-30: Better Across the Pond?
2012-04-28: Stop Me If You've Heard This One
2012-04-26: Solution to Sets and Dictionaries Exercise
2012-04-20: An Exercise With Sets and Dictionaries
2012-04-19: Three Years Later
2012-04-18: Where Next?
2012-04-18: Behind the Scenes (or, the Ethics of Cultivating Discontent)
2012-04-17: GitHub for Education
2012-04-17: Halfway Home
2012-04-17: In Search of Prior Arguments
2012-04-16: Utah State University Wrap-Up
2012-04-15: Data Munging with Regular Expressions
2012-04-14: We're Neutral (but Not Really)
2012-04-12: Solution to Data Merging with Dictionaries
2012-04-12: Video Update
2012-04-10: Straw Man for Web Programming
2012-04-09: A Future Student
2012-04-06: On Crossing Australia (or, Further Thoughts on What to Teach Researchers about the Web)
2012-04-06: Titus Brown Finds a Theme
2012-04-05: Lessons Learned at the University Of Chicago
2012-04-04: Solution to Data Checking Problem
2012-04-03: Upcoming Events for Webmaking Instructors
2012-04-03: Solution to the First Image Processing Homework
2012-04-03: A Four-Day Curriculum
2012-04-01: What to Teach Researchers About the Web
2012-04-01: Sending Email Back in Time

Mar

2012-03-30: What We Teach in Two Days
2012-03-30: Maintaining Momentum
2012-03-30: Wrapping Up in Oakland
2012-03-28: Boot Camp in Paris June 28-29, 2012
2012-03-28: Wrapping Up MBARI Workshop
2012-03-23: Object-Oriented Programming in Fortran 2003
2012-03-18: And While We're Stuck Here With 21 Seconds Worth of Music to Fill...
2012-03-18: The Dark Matter of Computational Science
2012-03-16: Wrapping Up the STScI Course
2012-03-16: Thank You, Enthought
2012-03-15: First Homework for Indiana Students (and a few from Ontario)
2012-03-14: Where Next for the Next-Gen Course (and Software Carpentry)?
2012-03-14: Ask the CompuScienceGeek?
2012-03-14: How We're Doing
2012-03-12: The IPython Notebook
2012-03-09: What's the Model, Kenneth?
2012-03-09: Our Indiana U Workshop Went Well
2012-03-12: The Trieste Workshop, One Week Later
2012-03-07: I Resemble That Remark
2012-03-07: Software Carpentry Meetup at PyCon
2012-03-05: Programs as Experimental Apparatus
2012-03-05: Open Education Week
2012-03-05: Help Us Write Assessment Questions
2012-03-04: Performance Curves, Curriculum Design, and Trust
2012-03-05: Happy People
2012-03-01: Inscight from Trieste
2012-03-01: ULP (or, This is tricky and perhaps profound)
2012-03-01: Toronto Boot Camp February 2012: How We Did

Feb

2012-02-29: Worth Reading, Worth Watching
2012-02-28: Reproducibility Redux
2012-02-27: Badges (Finalized)
2012-02-27: Frustration (continued)
2012-02-24: Trieste, Italy Workshop - Week 1
2012-02-23: Should We Relocate Our Repository?
2012-02-22: Watch Me: Trial Run
2012-02-22: Granules of Research
2012-02-22: What Deep Thoughts Look Like
2012-02-21: Assessment Redux
2012-02-21: Badges (Mark 1)
2012-02-21: Why *Not* Use Python
2012-02-21: Hello from Trieste!
2012-02-24: Fourth (or Sixth) Online Tutorial
2012-02-19: A Flash (well, MP4) from the Past
2012-02-16: How They See Us, Part N
2012-02-15: Watch Me: Volunteers Wanted
2012-02-15: Analyzing Next-Generation Sequencing Data
2012-02-15: And Speaking of New...
2012-02-15: Slide Drive
2012-02-14: Stack Underflow?
2012-02-14: New Kinds of Content
2012-02-13: Our New Look
2012-02-13: Advertising Flyer
2012-02-13: How Many Legs Does Science Have?
2012-02-13: Formatting Revisited
2012-02-12: Pre-Workshop Questionnaire
2012-02-10: Audrey Watters on Software Carpentry
2012-02-10: Advanced Scientific Programming in Python
2012-02-09: Comparing Software Carpentry to CS Principles
2012-02-09: Multiple Pitches
2012-02-07: Why We Don't Teach Parallel Computing in Software Carpentry
2012-02-03: We're Going to Be Busy
2012-02-03: First Online Tutorial
2012-02-02: Software Carpentry in a Minute and a Half
2012-02-02: Where To Host Q+A and Discussion?
2012-02-01: Re-doing the Three-Minute Pitch

Jan

2012-01-31: Reorganizing This Web Site
2012-01-29: Learners and Their Needs
2012-01-29: Terminology
2012-01-26: Our Long Tail
2012-01-26: Never Mind the Content, What About the Format?
2012-01-25: The Big Picture
2012-01-24: Take Out Agile, and Add...What?
2012-01-24: Test-Driven Public Speaking
2012-01-24: Badging
2012-01-23: Revising the Curriculum
2012-01-20: The First Boot Camp of 2012
2012-01-15: Why Is This Hard?
2012-01-13: The What, Why, and How of Boot Camps
2012-01-11: Sloan Foundation Grant to Software Carpentry and Mozilla
2012-01-04: Settings Our Sights a Little Bit Lower

2011

Dec

2011-12-31: The Fire Last Time
2011-12-31: Some Responses to Some Comments
2011-12-30: Fork, Merge, and Share
2011-12-29: Yet Another Survey
2011-12-24: What Success Looks Like Five Years Out
2011-12-24: Organizing Instruction and Study to Improve Student Learning
2011-12-20: It Just Keeps On Hurting
2011-12-20: What I've Learned So Far
2011-12-13: New Features in Excel for Scientists
2011-12-07: How to Teach Webcraft and Programming to Free-Range Students

Nov

2011-11-29: Three Short Thoughts
2011-11-25: Building a Bibliography
2011-11-19: Knowledge of the Second Kind
2011-11-18: Accessible to All?
2011-11-18: Quantifying Installation Costs
2011-11-18: Show Me the Data
2011-11-14: Clearing Up Code
2011-11-14: Surviving the Tsunami
2011-11-11: Successful Bootcamp
2011-11-08: The Best vs. the Good
2011-11-08: The Ladder of Abstraction and the Future of Online Teaching
2011-11-06: Nirvana on Monday Night

Oct

2011-10-22: Research Without Walls
2011-10-21: Slides from Hans-Martin
2011-10-19: American Scientist Article on Empirical Studies of Software Engineering
2011-10-14: Updating to HTML 5
2011-10-14: The Science Code Manifesto's Five C's
2011-10-07: Four New Episodes on Databases Using Microsoft Access
2011-10-05: Revamping This Site
2011-10-04: 2011 Software Carpentry Bootcamp Sold Out!

Sep

2011-09-22: Plus Ca Change...
2011-09-20: I'm Not Normally Lost for Words
2011-09-17: The Simplest Web That Could Possibly Work
2011-09-13: Progress Of A Sort
2011-09-08: What Happens When You Install Something?
2011-09-05: Where is the Puck Going to Be?
2011-09-02: Teaching Security to Scientists
2011-09-01: Renting Cycles Has Never Been Easier (For Some Definition of 'Easier')

Aug

2011-08-17: Demos Reinforce Errors, and Confusion is Good
2011-08-08: Introducing Programming a Different Way
2011-08-04: Computing in Physics 101: What We're Doing Wrong

Jul

2011-07-22: Software Carpentry in HPCWire
2011-07-20: And Speaking of Titus Brown...
2011-07-20: How Much Do You Need?
2011-07-20: Material from Newcastle Workshop Now Available
2011-07-20: The Case of Abinit
2011-07-11: Architecture of Open Source Applications Webinars Tuesday July 13 and 20
2011-07-10: Stanford Course Went Well
2011-07-06: Reproducible Computational Geophysics
2011-07-01: Mentioned in Nature Methods

Jun

2011-06-29: It Will Never Work in Theory
2011-06-22: Michael Nielsen Talks About Open Science in San Francisco on June 29
2011-06-20: Doing the Math
2011-06-18: Health Informatics Resources
2011-06-15: New Episode: MATLAB Structs and Cell Arrays
2011-06-14: A New Look
2011-06-10: Audio Processing in Python
2011-06-07: Practical Computing for Everyone (not just biologists)
2011-06-04: Programming for Scientists at Newcastle University: June 20, 2011
2011-06-02: Five on Systems Programming
2011-06-01: Workshop at CEF'11

May

2011-05-23: 'The Architecture of Open Source Applications' is Now Available
2011-05-14: More Interested in the Asides
2011-05-13: Damn the Torpedoes (but I could use some help navigating)
2011-05-06: The Architecture of Open Source Applications
2011-05-03: The Hacker Within at MSU in June
2011-05-02: Managing Data

Apr

2011-04-23: Chapters
2011-04-22: In Praise of Street Fighting
2011-04-18: Holding Up a Mirror
2011-04-11: Prototyping
2011-04-09: By The Numbers

Mar

2011-03-31: Harder Than It Should Be
2011-03-31: Using Bein
2011-03-30: Practical Computing for Scientists at Stanford
2011-03-30: Spring 2011 Course Over
2011-03-26: And I'm on a Horse
2011-03-24: A Better Way to Teach Programming to Scientists
2011-03-23: Our First Episode on Microsoft Access
2011-03-22: I'd Settle for 0.1%
2011-03-22: You'll Need a Large Screen
2011-03-21: Using a Debugger
2011-03-21: Videos of Autumn School Lectures
2011-03-18: On a Personal Note...
2011-03-17: Questions and Answers
2011-03-16: Graph Layout, Models vs. Views, and Computational Thinking
2011-03-16: Next-Generation Sequencing Course at MSU
2011-03-15: Twenty Questions (Minus Two)
2011-03-15: Call for Participation
2011-03-12: What To Demand
2011-03-11: Science Illustrated
2011-03-11: Musing About Reorganization
2011-03-09: High Tech That Looks Low Tech
2011-03-09: Advanced Scientific Programming in Python
2011-03-07: Literate Programming
2011-03-01: Tuple Spaces (or, Good Ideas Don't Always Win)

Feb

2011-02-25: We Got a Mention in Comm. ACM
2011-02-24: An Easy Place to Start: Systems Programming
2011-02-23: Ask, And Ye Shall Receive
2011-02-22: What Better Looks Like
2011-02-19: Three More Episodes on MATLAB
2011-02-18: Scientific Computing Podcast
2011-02-18: Mirroring Software Carpentry
2011-02-17: Reddit on Scientific Programming
2011-02-16: I Want Their Software
2011-02-16: How to Contribute
2011-02-15: Top Ten Why Nots
2011-02-15: First Four MATLAB Episodes
2011-02-14: Audio for Three Software Engineering Episodes
2011-02-14: Two More Episodes on Spreadsheets
2011-02-11: Updates to Spreadsheet Lecture
2011-02-08: What Computational Science Means to Me
2011-02-03: Scripts for Two More Software Engineering Episodes
2011-02-02: Three Months, Two Spikes, One Conclusion
2011-02-01: First Episode on Software Engineering

Jan

2011-01-31: A Competence Matrix for Software Carpentry
2011-01-27: Notes Toward a Lecture on High-Performance Computing
2011-01-27: Research Study: How Do You Test Your MATLAB?
2011-01-27: Boot Camp
2011-01-26: Fighting Spam
2011-01-26: The Case Against Peer Review
2011-01-26: Thinking Like the Web
2011-01-26: Software Carpentry Sprint in July
2011-01-21: Scientists Aren't Stupid: Software Is
2011-01-20: MIT Rethinking OpenCourseWare
2011-01-20: How to Cite Software Carpentry
2011-01-19: Making System Administrators' Lives Easier
2011-01-19: Version Control and Newline Conventions
2011-01-18: Exercises for Shell Posted
2011-01-17: Demographics (part two)
2011-01-16: Demographics (part one)
2011-01-14: Our Funding Pitch
2011-01-14: The Hacker Within
2011-01-10: The Spring 2011 Course Begins
2011-01-10: Slower Than Expected
2011-01-10: Software Carpentry in One Picture and Five Words
2011-01-09: Funding (A Plea for Contacts)
2011-01-06: What I Learned From Software Carpentry
2011-01-06: First Half of Lecture on Object-Oriented Programming

2010

Dec

2010-12-31: Software Carpentry Boot Camp Jan 12-14 in Madison
2010-12-30: More Detailed Outline for HPC Lecture
2010-12-27: Open Research Computation
2010-12-27: Elimination
2010-12-26: Local Subversion Repositories
2010-12-23: Extended Examples
2010-12-21: Compute Canada's 'Strategic' Plan Isn't
2010-12-20: Executable Papers
2010-12-15: Building a Recommendation Engine with NumPy
2010-12-14: Presents for the Holidays
2010-12-13: Slides for First Five OO Episodes Online
2010-12-10: Winter 2011 Signup vs. Spam Filters
2010-12-10: Performance and Parallelism
2010-12-09: Where Are My Keys?
2010-12-08: How Do You Manage a Terabyte?
2010-12-07: Approaching Objects from a New Direction
2010-12-06: Pins, Balls, and Arbitrary Decisions
2010-12-02: Peer to Peer
2010-12-02: Programmer Competency Matrix
2010-12-02: Prerequisites (or, When to Say No)
2010-12-02: Red-R
2010-12-02: Cast Your Votes
2010-12-02: Fall 2010: What Went Right, What Went Wrong

Nov

2010-11-30: First Four Episodes on Multimedia
2010-11-29: Winter 2011 Online Course Now Full
2010-11-26: Next Part of Persistence Essay Online
2010-11-25: Hours So Far
2010-11-23: Phylogenetic Trees
2010-11-23: Four Episodes on Matrix Programming
2010-11-21: Repository URL Change
2010-11-20: Mid-term Quiz Results
2010-11-19: Now Annotated
2010-11-18: Summary of student check-ins
2010-11-17: New Section for Essays
2010-11-17: 'Making Software' Screencast
2010-11-16: Ratios and Rework
2010-11-07: Counting Things (Part 2)
2010-11-05: Done In London

Oct

2010-10-31: Counting Things (Part 1)
2010-10-30: Would You Prefer...
2010-10-30: Need Something to Debug
2010-10-30: Dubois on Maintaining Correctness
2010-10-29: Provenance (Or, What We Didn't Quite Get to at the Met Office)
2010-10-28: Feedback at UKMO
2010-10-28: How We've Helped
2010-10-27: ComputerWorld Canada Educator of the Year
2010-10-24: Configuration Files
2010-10-21: Slides Available as PDF and PPT
2010-10-18: Final Four Episodes of Python Lecture
2010-10-18: How Did You Find Us?
2010-10-17: Ratings Revised
2010-10-15: Six More Python Episodes
2010-10-14: Three Python Screencasts Up
2010-10-14: Nature Article on Scientific Programming
2010-10-14: Dexy
2010-10-13: Three More Episodes on Spreadsheets
2010-10-12: Python Lecture Coming Online
2010-10-05: Using Subversion from the Command Line
2010-10-14: Five Rules for Computational Scientists
2010-10-04: Aaaand We're Off!
2010-10-03: What Questions Do You (Frequently) Ask?
2010-10-03: Do You Use Software Carpentry?

Sep

2010-09-30: Ten Short Papers Every Computational Scientist Should Read
2010-09-30: Tracking Utility and Impact
2010-09-28: A New Site Design
2010-09-23: Software Carpentry at UCSF
2010-09-22: Response Has Been Overwhelming
2010-09-21: I'm No Graphic Artist...
2010-09-20: Your Favorite Running Examples?
2010-09-16: Survey: Help Needed
2010-09-15: Five Episodes on Make
2010-09-15: Testing Scientific Software
2010-09-14: Software Carpentry Offered Online in Fall 2010 (for Ontario students)
2010-09-13: Will America's Universities Go The Way Of Its Car Companies?
2010-09-09: And For My Next Trick...
2010-09-08: Slides for the First Four Episodes on Make
2010-09-06: Getting the Source
2010-09-03: Eight Episodes on the Unix Shell
2010-09-01: Three More Sets of Slides

Aug

2010-08-31: Five Episodes on the Shell (and Three to Come)
2010-08-27: Four More Screencasts on Testing
2010-08-26: Another Update on What You Want
2010-08-23: What Don't You Understand That You'd Like To?
2010-08-19: Slides and Scripts for the Next Two Episodes
2010-08-16: 43% Independent
2010-08-12: Interview with Cameron Neylon
2010-08-05: Software Carpentry for Audio and Music Researchers
2010-08-05: An Answer That Most Students Won't Understand
2010-08-03: A Question About Nose
2010-08-03: Open Source, Open Science in 1999
2010-08-02: Interview with Sergey Fomel

Jul

2010-07-31: Interview with Davor Cubranic
2010-07-30: Stats for July
2010-07-30: A Little Bit of Javascript
2010-07-29: Survey Update
2010-07-29: Two More Episodes on Version Control
2010-07-28: Mark Guzdial on Software Carpentry
2010-07-26: Second Lecture on Version Control
2010-07-24: Introduction to Version Control
2010-07-23: Strictly Speaking, This Isn't Part of Testing
2010-07-22: First Episode of Testing Lecture
2010-07-21: Popular, Fast, or Usable: Pick One
2010-07-20: A Note on Tools
2010-07-20: Five... Five... Five Scripts in One!
2010-07-20: Interview with The Hackers Within
2010-07-20: Interview with STSci's Perry Greenfield
2010-07-19: Script for Introduction to Version Control
2010-07-18: An Interview with Hans Petter Langtangen
2010-07-18: A Gentle Introduction
2010-07-16: Clip Art
2010-07-15: Survey Results
2010-07-14: Two New Episodes on Dictionaries
2010-07-13: Interview: Andrew Lumsdaine of Indiana University
2010-07-13: Traffic
2010-07-13: A Shorter Version of the Sets and Tuples Episode
2010-07-11: Interview with Michigan State's Titus Brown
2010-07-10: Which Topics Are Most Important to You?
2010-07-10: HPC and Programmability
2010-07-08: Interview: SciNet's Daniel Gruner
2010-07-08: Two Episodes on Sets
2010-07-07: Using Science to Design This Course
2010-07-06: Hubs, Spokes, and Gonzo Programming Skills
2010-07-06: That's, Uh, Pretty Ambitious

Jun

2010-06-29: The Violas of Programming
2010-06-28: Last Episode on Sets and Dictionaries Posted First
2010-06-27: Four Down---What Next?
2010-06-25: Final Episode of Regular Expressions Lecture Now Online
2010-06-24: SIAM News Article About Software Carpentry
2010-06-24: Another Example of small-p Patterns
2010-06-24: Eric Lander on Genomics
2010-06-23: Software Carpentry in Three and a Half Minutes
2010-06-23: Software Developer: Audio and Digital Music
2010-06-22: Episode 4 on Regular Expressions
2010-06-21: A Little Bit of Theory
2010-06-21: Interview with Microsoft's David Rich
2010-06-19: Second Lecture on Regular Expressions
2010-06-18: For World Cup Fans (and Everyone Else)
2010-06-18: People You Don't Want On Your Team
2010-06-18: Our First Few Exercises
2010-06-18: First Half of Spreadsheets Lecture Now Online
2010-06-17: Let's Try That Again
2010-06-16: A Voice from the Back of the Room
2010-06-16: Is Live Coding Worth It?
2010-06-15: Next-Gen Sequencing Course at MSU: It Went Well
2010-06-15: Glossary and License Online
2010-06-14: Interview: Mark Plumbley at Queen Mary University of London
2010-06-12: The Cowichan Problems
2010-06-11: Thought for the Day
2010-06-11: Interview: David Jackson at the UK Met Office
2010-06-11: Interview: SHARCNET's Hugh Couchman
2010-06-11: Counting Things
2010-06-10: Our Lecture on Databases is Now Online
2010-06-10: The Big Picture (version 3)
2010-06-10: Interview: Jim Graham of Scimatic
2010-06-09: Reorganizing Content
2010-06-08: Episode 11: Making It Fast
2010-06-07: The Big Picture (version 2)
2010-06-07: Testing Invasion Percolation
2010-06-04: Concept Map
2010-06-04: Refactoring Invasion Percolation
2010-06-03: If You Want to Look Ahead...
2010-06-03: Assembling a Program
2010-06-01: Program Design: the Second Instalment
2010-06-01: Who Reports On The Other 97 Per Cent?

May

2010-05-31: Program Design: the First Third
2010-05-29: Jim Graham on Reproducibility
2010-05-27: Badges and Stars
2010-05-28: Teaching databases by example
2010-05-25: Archiving Experiments to Raise Scientific Standards
2010-05-19: Evaluating Methods and Protocols
2010-05-18: We'll Know We've Succeeded If...
2010-05-17: Day 11: Slides
2010-05-14: Day 10: Closed Captioning
2010-05-14: Why Most Scientists Don't Like Computers
2010-05-13: Day 9: Programming
2010-05-13: A Word (Or Three) From Our Sponsors
2010-05-13: Day 8: Exercises (with a screencast)
2010-05-12: Day 7: Mini-screencasts
2010-05-10: Day 6: Screencast With Point-Form Notes
2010-05-10: Why We're Self-Hosting
2010-05-09: Microsoft
2010-05-07: Day 5: A Different Kind of Screencast
2010-05-06: Day 4: First Preliminary Alpha Test Etc. Screencast
2010-05-05: A Question About Documentation
2010-05-04: Day 2: More Sticky Notes
2010-05-04: Day 1: Shuffling Sticky Notes Around
2010-05-03: Setting Up a New Windows Machine
2010-05-02: T Minus One

Apr

2010-04-19: Apologies for the Flurry of Re-Posts
2010-04-16: File Sharing for Scientists
2010-04-15: Scimatic Sponsorship
2010-04-12: More on Instructional Design
2010-04-12: Teaching Open Source
2010-04-11: Measuring Science
2010-04-08: Software Carpentry for Economists in Mannheim This Autumn
2010-04-08: Platforms
2010-04-04: Feedback and Boundaries
2010-04-01: Simon Singh Wins (and So Does Science)
2010-04-01: Models To Imitate

Mar

2010-03-31: Periodic Table of Science Bloggers
2010-03-30: Formats
2010-03-29: What's Not on the Reading List
2010-03-28: Recommended Reading
2010-03-26: Instructional Design
2010-03-26: Online Delivery
2010-03-25: Software Carpentry Version 4 is a Go!
2010-03-25: Summer Course: Analyzing Next-Generation Sequencing Data
2010-03-23: Now on Twitter
2010-03-11: How Much Of This Should Scientists Understand?

Feb

2010-02-28: Panton Principles
2010-02-25: Eighty Per Cent!
2010-02-22: BEACON Funded!
2010-02-12: Two Views

Jan

2010-01-24: It Seems That Everyone Cares
2010-01-20: Big Science == Big Skills Gap
2010-01-18: Was Designed To, But Didn't
2010-01-13: Whatcha Gonna Do When They Come For You?
2010-01-13: Podcast with Jon Udell
2010-01-10: How We Got Here, and Where We Are
2010-01-07: New Challenges

2009

Dec

2009-12-30: Osmosis is Just a Fancy Name for Failure
2009-12-27: Dudley and Butte on Software Skills
2009-12-19: NSF Programs
2009-12-18: Double Standards
2009-12-11: Why Opening Up (Probably) Wouldn't Help

Nov

2009-11-28: Thanks, Jamie
2009-11-26: Caesar's Wife
2009-11-24: Tutorials Start This Week
2009-11-22: Serendipitous and Unexpected
2009-11-18: Special Issue of Computing in Science and Engineering
2009-11-15: Cloud Computing for Beginners
2009-11-13: Packaging
2009-11-06: Python in Science
2009-11-01: Our Target Audience

Oct

2009-10-30: By Popular Request...
2009-10-23: Cryptography Isn't Security
2009-10-21: Should Modeling Be Part of This Course?
2009-10-21: Creating New Niches
2009-10-16: Revised Plan
2009-10-08: Videos from Symposium Are Now Online
2009-10-06: Comments on Course Reorganization
2009-10-05: The Hacker Within

Sep

2009-09-29: A Strange Obsession
2009-09-24: Presentation, Presentation, Presentation
2009-09-22: Grant Proposal
2009-09-21: Another Reason to Care About Provenance
2009-09-18: Updated Outline for Revised Course
2009-09-15: Partial Outline of New Version of Course
2009-09-11: Job Opening: MITACS Scientific Coordinator
2009-09-11: Two Links
2009-09-05: R for Programmers?

Aug

2009-08-30: Is The Future Waving At You?
2009-08-26: How Important is Geospatial Data to You?
2009-08-24: Science and JoVE
2009-08-24: Bad News and Good News
2009-08-24: Playing Safe
2009-08-24: Who Owns Your Data?
2009-08-23: The Delight Is In The Details, Too
2009-08-21: The Big Picture
2009-08-15: It's Like Not Wearing Your Cleats in the House
2009-08-15: You Can Do a Lot Without Programming
2009-08-06: American Scientist Article on How Scientists Use Computers
2009-08-04: The Ice Cream Test
2009-08-03: What *Is* Open Science?
2009-08-03: Guest Speakers' Slides Now Available
2009-08-02: Next Steps
2009-08-01: Post-Mortem

Jul

2009-07-31: Day[-2]
2009-07-31: A Good Afternoon
2009-07-29: Every Day Is a Big Day...
2009-07-28: Day 11 and Day 12
2009-07-27: Where This Course Came From
2009-07-26: Martin Fenner on SciBarCamp
2009-07-24: Day 10 Done - and With It, Week 2
2009-07-24: Day 9
2009-07-22: Day 8: Getting It Right
2009-07-22: Day 7: Lots More Objects
2009-07-21: Elsevier's Future, Version 0.1
2009-07-21: Day 6: Theory and Practice
2009-07-19: Quantum to Cosmos: October 15-25 in Waterloo
2009-07-19: Day 5
2009-07-17: Day 4
2009-07-16: Day 3
2009-07-15: Day 2
2009-07-13: Aaaand They're Off!
2009-07-10: See You Monday!
2009-07-04: Registration for July 29 Talks is Now Open

Jun

2009-06-29: Quality Control and Traceability
2009-06-29: The Environmental e-Science Revolution
2009-06-29: Ready for Proofreading
2009-06-25: Updating the License
2009-06-24: Topics and Schedule
2009-06-23: Another New Version of the Slides
2009-06-15: And Speaking of Sightings...
2009-06-15: Sightings
2009-06-15: Neylon's Head in the Clouds
2009-06-02: Software Carpentry in Edmonton July 13-31
2009-06-02: Two Spots Left in Toronto
2009-06-01: Big Code vs. Science 2.0
2009-06-01: SECSE Workshop

May

2009-05-12: Error Handling
2009-05-11: Links for Summer Interns
2009-05-09: How Scientists Use Computers: Survey Part 2
2009-05-06: Topics and Schedule Posted
2009-05-04: Entrance Requirements
2009-05-01: What If Scientists Didn't Compete?

Apr

2009-04-28: Empirical Software Engineering and Scientific Computing
2009-04-27: Madagascar Course in Delft June 12-13
2009-04-27: Firming Up Course Goals
2009-04-23: What Supervisors Need To Know
2009-04-08: We've Started a FAQ
2009-04-08: Software Carpentry in Alberta
2009-04-03: Cameron Neylon on the Three Opens
2009-04-01: Software Carpentry in Toronto July 13-31 2009

Mar

2009-03-30: User Stories
2009-03-25: Inference for R
2009-03-25: Open Notebook Science Badges
2009-03-17: Legal Frameworks for Reproducible Research
2009-03-02: Open Science and Autism's False Prophets

Feb

2009-02-23: Das Kapital, Computational Thinking, and Productivity
2009-02-18: Computer Supported Collaborative Science
2009-02-18: Open Science Panel at Columbia
2009-02-16: Enough Players to Hand Out Medals
2009-02-11: MTEST
2009-02-11: Carl Zimmer's Readers' Reading List
2009-02-11: Python Textbooks for Biotech
2009-02-06: Sharing Data Isn't That Easy
2009-02-04: Cameron Neylon Says Interesting Things

Jan

2009-01-30: 'Communicate First, Standardize Second'
2009-01-27: Web Native Lab Notebooks
2009-01-23: A New Kind of Big Science
2009-01-10: I *Want* To Be A Number

2008

Dec

2008-12-31: Time to Freshen It Up
2008-12-26: Things I'd Like To Finish In the Next 489 Days
2008-12-24: A Healthy Dose of Scepticism
2008-12-19: The National Academy Would Like to Hear From You
2008-12-19: Google Pulls the Plug on Scientific Data Sharing Project
2008-12-10: Three Reasons to Distrust Microarray Results

Nov

2008-11-30: Igor, Connect the Electrodes!
2008-11-21: SECSE'09 Call for Papers
2008-11-20: Getting the Science Right---Or At Least, Less Wrong
2008-11-17: Science Lessons for MPs
2008-11-16: What Sciences Are There?
2008-11-04: One Good Survey Deserves Another
2008-11-02: 1731 People

Oct

2008-10-27: Finding and Re-using Open Scientific Resources
2008-10-15: Surveying Scientists' Use of Computers

Sep

2008-09-11: Science in the 21st Century
2008-09-04: Science 2.0: the Future of Online Tools for Scientists

Aug

2008-08-22: Bil Lewis Works With Biologists...
2008-08-13: Data Provenance Challenge
2008-08-11: SciFoo, eGY, and Splitting
2008-08-01: They're Breeding Like Rabbits

Jul

2008-07-28: Next Lecture?
2008-07-23: Badge of Reproducibility
2008-07-23: Quick Quiz to Measure What Scientists Know
2008-07-22: Reviving the Software Carpentry Mailing List
2008-07-19: Badge of Honor?
2008-07-01: Kevin's Been Busy

Jun

2008-06-13: What a Proposal Looks Like
2008-06-06: Faking Results
2008-06-03: Three Weeks and Change

May

2008-05-30: Programming and Scientific Education on Slashdot
2008-05-27: Reminded of the Difference Once Again
2008-05-25: Interviewed by Jon Udell
2008-05-21: Why Don't We Do This?
2008-05-16: But I Was Gone Less than 48 Hours!
2008-05-15: SE-CSE Workshop
2008-05-05: Those Who Will Not Learn From History...

Apr

2008-04-14: SPOC
2008-04-10: Three Studies (Maybe Four)
2008-04-02: Summer Plans for Software Carpentry
2008-04-02: The Retractions Just Keep Coming In

Mar

2008-03-31: Meet the New Flaw
2008-03-26: Nice Quote
2008-03-07: Survey: Silent Errors in Scientific Code
2008-03-06: LearnHub Launches with Software Carpentry Front and Center

Feb

2008-02-26: Scientific Groupware Revisited
2008-02-20: O'Reilly Creating a Web Version of Mathematica
2008-02-14: Grumpy Minds Think Alike
2008-02-02: SciBarCamp in Toronto March 15-16

2007

Dec

2007-12-09: Python Supercomputing Statistics

Oct

2007-10-26: The Burning Man of HPC
2007-10-02: Doomed to Repeat It

Sep

2007-09-25: Another Sighting of Software Carpentry
2007-09-05: Openness and (the promise of) XML

Aug

2007-08-31: Random Survey about HPC
2007-08-07: How I'm Doing

Jul

2007-07-31: How Not to Collaborate
2007-07-18: Computational Education for Scientists
2007-07-05: Win a Trip to Reno!
2007-07-04: Another Sighting of Software Carpentry

Jun

2007-06-27: Two Studies of ASCI (and no, that's not a typo)
2007-06-26: Software Carpentry at LLNL
2007-06-20: Software Carpentry Screencasts by Chris Lasher
2007-06-20: Inspirational Videos
2007-06-18: Nature Precedings
2007-06-11: Praising the Good

May

2007-05-05: Computational Scientists Still Don't Get It

Apr

2007-04-02: Titus Brown Teaching Software Carpentry

Mar

2007-03-19: Sign Error: Five Papers Retracted
2007-03-11: SciPy'07 Dates Announced
2007-03-10: Reproducibility of Computational Results

Feb

2007-02-07: Software Carpentry Screencasts

Jan

2007-01-18: Software Carpentry Usage in December

2006

Dec

2006-12-05: YouTube for Data

Nov

2006-11-28: Software Carpentry article in CiSE
2006-11-02: Software Carpentry continues to grow

Oct

2006-10-31: Computational Result Retracted
2006-10-26: German Version of 'Bottleneck'

Aug

2006-08-17: Oh My God It's Django!
2006-08-17: SciPy'06: First Morning
2006-08-16: SciPy and Software Carpentry
2006-08-04: HPCWire Interview on Software Carpentry

Jul

2006-07-30: Design Patterns in Scientific Software
2006-07-20: The Parallel Tools Platform
2006-07-14: Software Carpentry 3.0

Jun

2006-06-25: Software Carpentry's new home

May

2006-05-05: Revised Lecture on Teamware
2006-05-03: Software Carpentry 1111

Apr

2006-04-28: Corrections Done
2006-04-17: Zipf's Law of Feedback
2006-04-09: 341 Words
2006-04-05: New Security Lecture Up
2006-04-04: Integration and XML Lectures

Mar

2006-03-26: 2020 Hype
2006-03-06: Web Server Programming Lecture Is Up
2006-03-03: Client-Side Web Programming Lecture
2006-03-02: Last Two Lectures Are Up

Feb

2006-02-23: Database Lecture is Up
2006-02-22: Second Lecture on Testing Now Online
2006-02-21: What Else for Software Carpentry?
2006-02-21: Second Lecture on Object-Oriented Programming
2006-02-20: AAAS Annual Meeting 2006
2006-02-14: Data Lineage
2006-02-14: Lecture on Binary Data
2006-02-12: Regular Expressions Lecture is Up
2006-02-10: Software Carpentry Design Lecture
2006-02-06: First Lecture on Object-Oriented Programming Is Up
2006-02-02: Debugging Lecture

Jan

2006-01-29: Fourth Python Lecture for Software Carpentry
2006-01-24: Quality Assurance Lecture Now Available
2006-01-23: Programming Style Lecture Has Been Revised
2006-01-23: Third Software Carpentry Python Lecture on the Web
2006-01-18: Second Python Lecture Now on the Web
2006-01-15: Intro Python Lecture Available
2006-01-11: Build Lecture Is Up
2006-01-09: Two More Revised Software Carpentry Lectures
2006-01-04: First Shell Lecture for Software Carpentry is Up
2006-01-02: Software Carpentry Introduction revised and on the web

2005

Dec

2005-12-28: $67 million a year
2005-12-27: New Year's Schedule for Software Carpentry
2005-12-23: Procrastination: One of the Few Things in Life Nicer Than Toast
2005-12-11: Maintaining Correctness
2005-12-09: American Scientist article on Software Carpentry
2005-12-08: Executive Version of Software Carpentry Course

Nov

2005-11-04: Workshop at AAAS '06

Sep

2005-09-21: Software Carpentry at the AAAS
2005-09-20: Day 9
2005-09-14: Software Carpentry: First Meeting

Aug

2005-08-22: Software Carpentry at Indiana University

Jul

2005-07-29: Software Carpentry course in Nature
2005-07-08: Software Carpentry notes are up

2004

Dec

2004-12-30: Python Software Foundation Grant