Presentation is loading. Please wait.

Presentation is loading. Please wait.

Copyright © Software Carpentry 2012 This work is licensed under the Creative Commons Attribution License See

Similar presentations


Presentation on theme: "Copyright © Software Carpentry 2012 This work is licensed under the Creative Commons Attribution License See"— Presentation transcript:

1 Copyright © Software Carpentry 2012 This work is licensed under the Creative Commons Attribution License See http://software-carpentry.org/license.html for more information. Putting it all together

2 Version control Python Testing Databases

3 Putting it all together Version control Preserve the evolution of your code Bind data to the code that produced it Work collaboratively Python Testing Databases

4 Putting it all together Version control Python Develop readable and understandable code Testing Databases

5 Putting it all together Version control Python Testing Develop code that can be shown to be correct Change code without introducing bugs Databases

6 Putting it all together Version control Python Testing Databases Efficiently access and filter data

7 Putting it all together Or, let’s look at it another way...

8 Putting it all together Pair programming

9 Putting it all together Red Green Refactor Pair programming Test-driven development

10 Putting it all together Pair programming Test-driven development Version control

11 Putting it all together Pair programming Test-driven development Version control Continuous integration

12 Putting it all together Pair programming Test-driven development Version control Iteration and release Continuous integration

13 Putting it all together Pair programming Test-driven development Version control Iteration and release Continuous integration

14 Putting it all together Pair programming and/or code reviews Test-driven development Version control Iteration and release Continuous integration

15 Putting it all together Review code before commit Prevent bugs entering the repository Ensure that reviews are done Distributed version control Merge developer branch into trunk after review Patch files List of differences between two sets of files

16 Putting it all together Principles of computational thinking

17 Putting it all together It’s all just data Shopping list DNA sequence Galactic coordinates Function Program 0s and 1s

18 Putting it all together Data doesn’t mean anything on its own, it has to be interpreted 01100100011000010111100001100001 data 1,684,108,385 1.6635613602263159e+22

19 Putting it all together Programming is about creating and composing abstractions Meaningful names Comprehensible units Separate interface from implementation Clarity over cleverness

20 Putting it all together Models are for computers, views are for us Structured data is better than unstructured data

21 Putting it all together Paranoia makes us productive Improving quality improves productivity Think before you code Validate Review Automate

22 Putting it all together Better algorithms are better than better hardware Algorithmic complexity Insertion sort: O(n 2 ) … O(n 2 ) Quick sort: O(n log n) … O(n 2 ) Merge sort: O(n log n) … O(n log n)

23 Putting it all together Better algorithms are better than better hardware Algorithmic complexity Insertion sort: O(n 2 ) … O(n 2 ) O(1) Quick sort: O(n log n) … O(n 2 ) O(log n) Merge sort: O(n log n) … O(n log n) O(n)

24 Putting it all together Better algorithms are better than better hardware Algorithmic complexity Insertion sort: O(n 2 ) … O(n 2 ) O(1) Quick sort: O(n log n) … O(n 2 ) O(log n) Merge sort: O(n log n) … O(n log n) O(n) Algorithms and data structures

25 Putting it all together The tool shapes the hand Using a tool changes how you do the work the tool helps you to do Writing software changes your understanding of what computers/software can do

26 Putting it all together “All work and no play…” Greatest productivity occurs in the first four to six hours Continuous work reduces cognitive function 25% for every 24 hours! “ Why Crunch Modes Doesn't Work: Six Lessons”, Evan Robinson http://www.igda.org/why-crunch-modes-doesnt-work-six-lessons

27 Putting it all together Why Software Carpentry is as it is http://software-carpentry.org/4_0/softeng/ebse

28 Putting it all together Iterative development does not just apply to software!

29 Putting it all together Iterative development does not just apply to software! so what do you think of this course?

30 Putting it all together Pair programming Test-driven development Version control Iteration and release Continuous integration

31 Putting it all together What next? Online follow-ups You’ll be notified by e-mail Online lectures http://software-carpentry.org Recommended books http://software-carpentry.org/4_0/reading


Download ppt "Copyright © Software Carpentry 2012 This work is licensed under the Creative Commons Attribution License See"

Similar presentations


Ads by Google