Federal Reserve Board

20th and C St NW. Washington DC. (Martin Building Dining Room E)
Sep 24-25, 2014
9:00 am - 4:30 pm

General Information

Software Carpentry's mission is to help scientists and engineers become more productive by teaching them basic lab skills for computing like program design, version control, data management, and task automation. This two-day hands-on bootcamp will cover basic concepts and tools; participants will be encouraged to help one another and to apply what they have learned to their own research problems.

Instructors: Ivan Gonzalez, Steve Eddins, Daniel Chen

Helpers: AƧmae El Yacoubi

Who: Economists and research assistants at the Federal Reserve Board

Where: 20th and C St NW. Washington DC. (Martin Building Dining Room E). Get directions with OpenStreetMap or Google Maps.

Requirements: Economists should contact RIS in order to have a few specific software packages installed (listed below) on their Board laptops. RAs will be provided laptops for the class by RIS.

Contact: Please mail admin@software-carpentry.org for more information.


Schedule

Day 1

  • 9:00 - 9:30 Arrival and setup
  • 9:30 - 9:45 Welcome
  • 9:45 - 10:30 Using the shell to do more in less time part 1
  • 10:30 - 11:00 Break
  • 11:00 - 12:00 Using the shell to do more in less time part 2
  • 12:00 - 13:00 Lunch
  • 13:00 - 15:00 Advanced MATLAB Language and Environment Topics
  • 15:00 - 15:30 Break
  • 15:30 - 16:30 Algorithm design in MATLAB

Day 2

  • 9:30 - 10:45 Version control in Git
  • 10:45 - 11:00 Break
  • 11:00 - 12:00 Using Git to collaborate
  • 12:00 - 13:00 Lunch
  • 13:00 - 15:00 Test and Verification of MATLAB Code part 1
  • 15:00 - 15:30 Break
  • 15:30 - 16:00 Test and Verification of MATLAB Code part 2
  • 16:00 - 17:00 Code Quality and Dealing with Legacy Code
    • Bad Code Smells
    • Code Refactoring
the github repo for the class here
Link to the Etherpad
Shell files can be downloaded here
Matlab material can be downloaded here or directly from the repository

Syllabus

The Unix Shell

  • Files and directories: pwd, cd, ls, mkdir, ...
  • History and tab completion
  • Pipes and redirection
  • Looping over files
  • Creating and running shell scripts
  • Finding things: grep, find, ...
  • Reference...

Version Control with Git

  • Creating a repository
  • Recording changes to files: add, commit, ...
  • Viewing changes: status, diff, ...
  • Ignoring files
  • Working on the web: clone, pull, push, ...
  • Resolving conflicts
  • Open licenses
  • Where to host work, and why
  • Reference...

MATLAB

  • The MATLAB Language and Desktop Environment
  • Algorithm Design in MATLAB
  • Test and Verification of MATLAB Code
  • Debugging and Improving Performance

Setup

To participate in a Software Carpentry bootcamp, you will need working copies of the software described below. Please make sure to install everything (or at least to download the installers) before the start of your bootcamp.

Overview

Editor

When you're writing code, it's nice to have a text editor that is optimized for writing code, with features like automatic color-coding of key words. The default text editor on Mac OS X and Linux is usually set to Vim, which is not famous for being intuitive. if you accidentally find yourself stuck in it, try typing the escape key, followed by ':q!' (colon, lower-case 'q', exclamation mark), then hitting Return to return to the shell.

The Bash Shell

Bash is a commonly-used shell. Using a shell gives you more power to do more tasks more quickly with your computer.

Git

Git is a state-of-the-art version control system. It lets you track who made changes to what when and has options for easily updating a shared or public version of your code on github.com.

Windows

Git Bash

Install Git for Windows by download and running the installer. This will provide you with both Git and Bash in the Git Bash program.

Software Carpentry Installer

This installer requires an active internet connection

After installing Python and Git Bash:

  • Download the installer.
  • If the file opens directly in the browser select File→Save Page As to download it to your computer.
  • Double click on the file to run it.

Editor

nano is the editor installed by the Software Carpentry Installer, it is a basic editor integrated into the lesson material.

Notepad++ is a popular free code editor for Windows. Be aware that you must add its installation directory to your system path in order to launch it from the command line (or have other tools like Git launch it for you). Please ask your instructor to help you do this.

Mac OS X

Bash

The default shell in all versions of Mac OS X is bash, so no need to install anything. You access bash from the Terminal (found in /Applications/Utilities). You may want to keep Terminal in your dock for this workshop.

Editor

We recommend Text Wrangler or Sublime Text. In a pinch, you can use nano, which should be pre-installed.

Git

Install Git for Mac by downloading and running the installer. For older versions of OS X (10.5-10.7) use the most recent available installer available here. Use the Leopard installer for 10.5 and the Snow Leopard installer for 10.6-10.7.

Linux

Bash

The default shell is usually bash, but if your machine is set up differently you can run it by opening a terminal and typing bash. There is no need to install anything.

Git

If Git is not already available on your machine you can try to install it via your distro's package manager (e.g. apt-get or yum).

Editor

Kate is one option for Linux users. In a pinch, you can use nano, which should be pre-installed.