Software Carpentry - Overview University of Delaware

Software Carpentry Instructors - Josh Herr & Josh Adelman

September 11th - 12th 2014

Copy This Lecture!







Creative Commons License
Software Carpentry Overview by Software Carpentry is licensed under a Creative Commons Attribution 3.0 Unported License.

More About Software Carpentry

History

What We Will Teach (We're Flexible here...)

What We Actually Teach

How to THINK like a programmer

Who We Teach

Who We Are

Our Goals for You

We will take you on a tour of:

Some High-Level Advice (mainly from Greg Wilson)

Let's try to work in multiple languages

You speak multiple languages when interacting with a computer. Choosing to use a new tool, library, or computer language can be similar to learning a new verbal language:

Make it work right first, make it fast later.

Increase debugging bandwidth

Don't Repeat Yourself (or Others)

Automate common actions by saving simple blocks of code into scripts

Refactor commonly used blocks of code into functions

Group commonly used functions into libraries

Reduce Complexity

Basic strategies

Back up your data!

Use version control for checkpointing and collaboration

Verify and Validate your Code

Principles of verification and validation

Document your computational work

Super Simplified Schedule

Luke, Use the stickies...

Green post it note means I have completed the task or am not having trouble.

Red post it note means I need some help but am still working on the problem.

At the end of the day, write one thing you liked on the green and one thing you would like to see improved on the red - we'll respond!

Closing Thoughts

You sometimes need geeks. You never need dorks.