Research Software Group To save time, do this now… Go to: In the Etherpad, follow instructions under ‘When you arrive…’

Slides:



Advertisements
Similar presentations
Personalising Feedback Combining methods. Warm Up Turn to the person on your right and ask them…. Turn to the person on your right and ask them…. What.
Advertisements

Word processors can be used in many inventive ways, by both teachers and students. Teachers can prepare, create, store and share materials for their classes.
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Empirical Results Copyright © Software Carpentry 2011 This work is licensed under the Creative Commons Attribution License See
CAREER ASSIGNMENT By Natosha Power & Trisha Taylor.
WHAT DO WE KNOW? Chris Cannam, SoundSoftware Greg Wilson, Software Carpentry Steve Crouch, Software Sustainability Institute.
CSE 331 wrapup CSE 331 University of Washington. CSE 331 goals Enable students to manage complexity ensure correctness write modest programs.
We Know Less Than You Think (But We Do Know Something) Copyright © 2009 Gregory V. Wilson. This presentation may be freely used and distributed with attribution.
COMPSCI 125 Spring 2011 Section What is computer science? … the study of the theoretical foundations of information and computation and their implementation.
University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 1 Assessing and Estimating Corrective, Enhancive, and Reductive.
JAROSŁAW KRAJKA TRAINING ONLINE TEACHERS OF ENGLISH - THE BIGGEST CHALLENGE TO ONLINE LEARNING.
Student Information system
CODING Research Data Management. Research Data Management Coding When writing software or analytical code it is important that others and your future.
 Software Software  Program vs Software Products Program vs Software Products  Software Characteristics Software Characteristics  Software Crisis.
+ Intro to The Art of Computer Science Code.org. + Table of Contents Vocabulary Introduction to Computer Science Computer Scientist’s Responsibility Technology.
The Community Café project: language teachers creating and sharing resources online Alison Dickens Subject Centre for Languages, Linguistics and Area Studies.
Software Engineering Experimentation Software Engineering Specific Issues (Mostly CS as well) Jeff Offutt
Test Driven Development An approach to writing better code Jimmy Zimmerman Intel Corporation.
Steve Crouch, Greg Wilson Software Carpentry Why should scientists understand how to write better software? This work is licensed under the Creative Commons.
Computing For Biology An online course for A-level students Runs 18 th to 29 th August 2014 TCGATTCCAGAACTAGGCATTATAGATAGATTCAG ATAGGACATAGATCGATTCAGATAGGATATAATCG.
Integrated Foundation Year Co-ordinator:Mr Ian McCrum Room 5B18, Telephone extension (028)
Intel CBOA Company Confidential Intel Corporate Affairs – Free K-12 Tools & Resources | Copyright © 2011 Intel Corporation. All.
1 General Introduction CPRE 416-Software Evolution and Maintenance-Lecture 1.
Teaching material for a course in Software Project Management & Software Engineering – part II.
@sparqs_scotland Course Rep Training name of trainer associate trainer | sparqs.
Learning how to learn, with Software Carpentry Luis Figueira, Chris Cannam, Mark D Plumbley Centre for Digital Music Queen Mary, University of London.
CSCI-383 Object-Oriented Programming & Design Lecture 1.
1 History of compiler development 1953 IBM develops the 701 EDPM (Electronic Data Processing Machine), the first general purpose computer, built as a “defense.
English Multimedia Wang, Yueh-chiu National Penghu University.
What We Think We Know About Software Development - and Why We Believe it’s True Steve Crouch, SSI with thanks to Greg Wilson Software.
Bridges To Computing General Information: This document was created for use in the "Bridges to Computing" project of Brooklyn College. You are invited.
HCC Fall KickStart University of Nebraska – Lincoln Holland Computing Center David Swanson, Emelie Harstad, Jingchao Zhang, Adam Caprez, Derek Weitzel,
Facts and Fallacies of Software Engineering (Rob Glass) CSE301 University of Sunderland Discussed by Harry R. Erwin, PhD.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
Curriculum Mapping November Today’s Agenda Pre-Survey Introduction of CM Team Purpose What is Curriculum? Why Map? CM Concepts Tentative Timeline.
BCS The Chartered Institute for IT Student Presentation 2009/10 2 About BCS? The UK’s leading professional body for those working in IT & communications.
What is Computer Science?  Three paradigms (CACM 1/89) Theory (math): definitions, theorems, proofs, interpretations Abstraction (science): hypothesize,
The LC-3 – Chapter 7 COMP 2620 Dr. James Money COMP
Software Basics. Some Pioneers Charles Babbage Analytical Engine Countess Ada Lovelace First Programmer ? John Von Neumann storing instructions in memory.
Computer Programming & Utilization(CS 101) Pushpak Bhattacharya.
Addressing W1 and W2 with Science Notebooking StaceyAnne Hartberger James Martin Middle School STEM Institute :30-11:30 Contact info:
CSE 331 Software Design & Implementation Hal Perkins Autumn 2012 Wrapup 1.
Danny Pittaway Student Success Coordinator, Coastline Community College Learning Assistance Project, 3CSN 10/12/2015.
Copyright © 2007 Stevens Institute of Technology Center for Innovation in Engineering and Science Education Real Time Data & Telecollaborative Projects.
Salha Jokhab, Msc 222 PHCL Pharmacy Literature. Objectives Brief description of the literature used in pharmacy, its structure and format. Tips for writing.
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
CSCE 315 Programming Studio Spring 2013 John Keyser.
Winter 2016CISC101 - Prof. McLeod1 CISC101 Elements of Computing Science I Course Web Site: The lecture outlines.
Chapter 1: Introduction. Physics The most basic of all sciences! Physics: The “Parent” of all sciences! Physics: The study of the behavior and the structure.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Software Sustainability Institute Building sustainable software for science … why good code is only the beginning 10 April 2013, EGI.
My top 3 careers clusters My top 3 careers are health science, Government and public administration, and Education + training.
Software Sustainability Institute Data Carpentry Aleksandra Pawlik Software Sustainability Institute Data Science Club, 17 th March.
Myths and truths of software development Chris Cannam, Queen Mary University of London Greg Wilson, Software Carpentry Steve Crouch, Software Sustainability.
Health Informatics Awareness Planned DayTopicPlanned Time Day 1 22/7/ Course introduction & pre course survey 2.Pre evaluation test 3.Introduction.
Welcome to ELL 357 English Language Teaching and Adult Learners Dr. Holly Wilson Instructor.
HCC Fall KickStart University of Nebraska – Lincoln Holland Computing Center David Swanson, Emelie Harstad, Jingchao Zhang, Adam Caprez, Derek Weitzel,
Software Carpentry Workshop University of Nebraska – Lincoln Holland Computing Center Instructors: Dr. Jingchao Zhang, Natasha Pavlovikj, Carrie Brown.
LEGO Nyíregyháza.
CSE 374 Programming Concepts & Tools
Instructor Training Cambridge
Software Carpentry When you arrive…
Algorithm and Ambiguity
R Programming.
Software Testing and Maintenance Introduction
Software Engineering Empirical Results
Introduction to Computer Programming
How an RSE can benefit your projects:
Data Specialist CPD Programme Module 2 - Welcome
Project Management: Inspections and Reviews Formal Specifications
Presentation transcript:

Research Software Group To save time, do this now… Go to: In the Etherpad, follow instructions under ‘When you arrive…’

What we think we know… Research Software Group Steve Crouch, Greg Wilson Software Carpentry Why should scientists understand how to write better software? This work is licensed under the Creative Commons Attribution License Copyright © Software Carpentry and The University of Edinburgh See for more information.

Research Software Group The problem with (teaching) software development

What we think we know… Research Software Group Once upon a time… 7 Years War ( ) Britain loses 1512 sailors to enemy action… …and almost 100,000 to scurvy

What we think we know… Research Software Group But before then… Courtesy of the National Library of Medicine James Lind ( ) 1747: (possibly) first ever controlled medical experiment CiderSea water Sulphuric acid (!)Oranges VinegarBarley water

What we think we know… Research Software Group Oranges (and lemons)… Courtesy of the National Library of Medicine And no-one listened…he’s not an English gentleman! But in 1794 the Admiralty gave it a go… …and England came out on top! CiderSea water Sulphuric acidOranges VinegarBarley water James Lind ( ) 1747: (possibly) first ever controlled medical experiment

What we think we know… Research Software Group Modern medicine Medical profession eventually realised controlled studies were the right way to go David Sackett Pioneer of “evidence-based medicine” Randomised double-blind test is a “gold standard” Cochrane Collaboration Largest collection of records of randomised controlled trials in the world Image courtesy of Lab Science Career

What we think we know… Research Software Group What about software development? Martin Fowler IEEE Software, July/Aug 2009 “[Using domain specific language] leads to two primary benefits. The first, and simplest, is improved programmer productivity... The second... is... communication with domain experts.” Image courtesy of adewale_oshineye

What we think we know… Research Software Group Just one more thing… Two substantive claims… …without a single citation! Where’s the proof? “Many software researchers advocate rather than investigate” – Robert L. Glass (2002) Par for the course! Image courtesy of whatleydude Image courtesy of futureatlas.com

What we think we know… Research Software Group Simply the best? “Exploratory experimental studies comparing online and offline programming performance” Sackman, Erikson and Grant (1968) “The best programmers are up to 28 times more productive than the worst” So all we need are a few good people (apparently)… 1968! Designed to compare batch versus interactive 12 programmers for an afternoon

What we think we know… Research Software Group Times, they are a changin’ Growing emphasis on empirical studies since the mid-1990s Papers describing new tools or practices routinely include results from some kind of field study International Conference on Software Engineering Empirical Software Engineering “It will never work in theory”

Research Software Group So what do we know?

What we think we know… Research Software Group Understand your requirements “Some Experience with Automated Aids to the Design of Large-Scale Reliable Software” Boehm et al (1975) Most errors are introduced during requirements analysis and design The later an error is detected the more costly it is to address 1 hour to fix in the design 10 hours to fix in the code 100 hours to fix after it’s gone live… time number / cost

What we think we know… Research Software Group Invite others to read your code Rigorous inspections can remove 60-90% of errors before first test is run Fagan (1975) “Design and Code Inspections to Reduce Errors in Program Development" The first review and hour matter most Cohen (2006) “Best Kept Secrets of Peer Code Review” Develop code in small, readable, reviewable chunks

What we think we know… Research Software Group Errors of a feather… About 80% of the defects come from 20% of the modules, and about half the modules are error free Boehm and Basili (2001) When you identify more errors than expected in some program module, keep looking!

What we think we know… Research Software Group How did you learn to program? You don’t just go out and write War and Peace You’d read other skilled writers first Teach maintenance first Harlan Mills (1990) Image courtesy of dwyman “The best way to prepare [to be a programmer] is to write programs and to study great programs that other people have written” Susan Lammers, 1986, quoting a younger Bill Gates

What we think we know… Research Software Group Beware false prophets! “Anchoring and Adjustment in Software Estimation” Aranda & Easterbrook (2005) 23 computer science students/software developers Split into groups, each group given a spec with 1 change “How long do you think it will take to make a change to this program?” Control Group: “I’d like to give an estimate for this project myself, but I admit I have no experience estimating. We’ll wait for your calculations for an estimate.” Group A: “I admit I have no experience with software projects, but I guess this will take about 2 months to finish.” Group B: “… I guess this will take about 20 months to finish.”

What we think we know… Research Software Group Anchors drag you down Novice’s estimate mattered more than… Experience in software engineering Tools used Formality of estimation Group A (lowball)5.1 months Control Group7.8 months Group B (highball)15.4 months

What we think we know… Research Software Group And there are many more…!

What we think we know… Research Software Group So… Shouldn’t our development practices be built around these, and other, facts? +

What we think we know… Research Software Group One other thing we know… Software developers and researchers differ! Saying “this is good because software developers say it is good” is not good enough! We say “this is good because it helps your research” Good software development practices contribute to good research …which we hope to demonstrate!

Research Software Group Who are we? Instructors Ian Hawke Steve Crouch John Robinson Devasena Inupakutika Helpers Olivier Philippe Ian Emsley Olivia Wilson Alice Harpole Alan Ponce

What we think we know… Research Software Group Software Sustainability Institute Cultivate world-class research with software

Research Software Group Based in Electronics and Computer Science We help to improve software developed by researchers at Southampton, through: Direct collaboration: we provide skilled Research Software Engineers for projects Software development skills training: through Software Carpentry workshops Led by John Robinson Contact

Research Software Group Housekeeping Toilets As you exit the room, they are around the corner on the left No fire drills today! Evacuation route Directly out of main entrance Assemble in paved area outside

Research Software Group Wednesday 15th December Arrival Introduction - Steve Crouch Automating tasks with Unix shell – Ian H Break Bash shell continued Break (lunch not provided) Introduction to Python – Steve Break 14:45 Python continued 16:00 Wrap-up of Day 1 16:30 Close

Research Software Group Thursday 16th December Version control – John Break Version control continued Break (lunch not provided) Writing robust code & unit testing with Python – Devasena Break Unit testing continued Wrap-up and feedback – Steve Close

Research Software Group So what’s the deal with these sticky notes anyway?