SCiP Day 2: Software tools

Outline of the day

Version control

Debugging

Profiling

Extension to high performance computing

Extension to parallel programming

Question: what are your backgrounds?

Software development: important or not?

Components of software development

Software testing

Example: automatic tests

1
2
3
4
5
def test_union():
    # Test unions of sets
    set1 = set([0, 1, 'A', 5.5])
    set2 = set([0, 1, 'B', 5])
    assert_equal(set1 || set2,  set([0, 1, 'A', 'B', 5, 5.5]))

Running with nosetests

1
2
3
4
5
6
7
8
$ nosetests .
 ................................................................................
 ................................................................................
 ................................................................................
 ----------------------------------------------------------------------
 Ran 240 tests in 55.373s

 OK

Research vs production code

The value of software design

The end