October 23, 2012: Key Points

On the flight back from Vancouver yesterday, I finally did what I should have done eight months ago and compiled the key points from our core lesson content. The results are presented below, broken down by lesson and topic; going forward, we're going to use something like this as a basis for defining what Software Carpentry is, and what workshop attendees can expect to learn.

The Shell

What and Why

Files and Directories

Creating Things

Pipes and Filters

Loops

Shell Scripts

Finding Things

Version Control with Subversion

Basic Use

Merging Conflicts

Recovering Old Versions

Setting up a Repository

Provenance

Basic Programming

Basic Operations

Creating Programs

Types

Reading Files

Standard Input and Output

Repeating Things

Making Choices

Flags

Reading Data Files

Provenance Revisited

Lists

More About Lists

Checking and Smoothing Data

Nesting Loops

Nesting Lists

Aliasing

Functions and Libraries

How Functions Work

Global Variables

Multiple Arguments

Returning Values

Aliasing

Libraries

Standard Libraries

Building Filters

Functions as Objects

Databases

Selecting

Removing Duplicates

Calculating New Values

Filtering

Sorting

Aggregation

Database Design

Combining Data

Self Join

Missing Data

Nested Queries

Creating and Modifying Tables

Transactions

Programming With Databases

Number Crunching with NumPy

Basics

Storage

Indexing

Linear Algebra

Making Recommendations

The Game of Life

Quality

Defensive Programming

Handling Errors

Unit Testing

Numbers

Coverage

Debugging

Designing Testable Code

Sets and Dictionaries

Sets

Storage

Dictionaries

Simple Examples

Phylogenetic Trees

Development

The Grid

Aliasing

Randomness

Neighbors

Bugs

Refactoring

Performance

Profiling

A New Beginning

< OlderNewer >

This post originally appeared in the Software Carpentry blog.