Your SlideShare is downloading. ×
Code for science (rev 1)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Code for science (rev 1)

354

Published on

Slides that accompanied a talk given to undergraduate biologists and computer scientists.

Slides that accompanied a talk given to undergraduate biologists and computer scientists.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
354
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Originally prepared for UBRP group session - http://ubrp.arizona.edu/
  • Successful combinations
  • When people hear “hybrid” they usually think of cars, and likely the ToyotaPrius.http://www.flickr.com/photos/sskennel/4496534369/
  • Darwin studied hybrid vigorhttp://upload.wikimedia.org/wikipedia/commons/3/32/Charles_Darwin_by_Elliott_and_Fry.jpg
  • Major of corn grown worldwide is from hybridshttp://en.wikipedia.org/wiki/File:Koeh-283.jpg
  • It seems like computer science and computational thinking are creating plenty of hybrid disciplines now
  • Okay – that was a bogus one. Computational Gardening is a horrible idea.
  • But computational approaches are not only ones creating new disciplines. Biology is have a major impact.
  • And the list goes on…. And on.
  • Games usually have some limiting factor so that user-controlled characters cannot specialize in everything. This is an example from Star Wars Galaxies and how they controlled user characters by imposing a skill tree.http://jitterypenguin.com/images01/SWG%20Screenshots/Zoee/Master%20Commando%20Skill%20Tree.jpg
  • http://www.flickr.com/photos/tonivc/2283676770/
  • No one person can be a master of all the skills needed to produce large, scalable systems to support biology, bioinformatics, or computational biology
  • If you’re dealing with non-technical, technical folks who are not familiar with your expertise then how do expect to be successful communicating?
  • Beyond patience and plain, approachable explanation – maybe a technical savvy implementation of the Babel fishhttp://commons.wikimedia.org/wiki/File:Babel_fish_badge.jpg
  • Why do many software project fail? Communication and misunderstandings.
  • Why do many software project fail? Communication and misunderstandings.
  • Why do many software project fail? Communication and misunderstandings.
  • Okay, I’ll admit that the software doesn’t have to be robust software to produce quality research. But with more projects consuming tools and applications originally by other groups, so quality, robust software will make a larger contribution.
  • “In scientific usage, cyberinfrastructure is a technological solution to the problem of efficiently connecting data, computers, and people with the goal of enabling derivation of novel scientific theories and knowledge.” src: http://en.wikipedia.org/wiki/Cyberinfrastructure
  • “In scientific usage, cyberinfrastructure is a technological solution to the problem of efficiently connecting data, computers, and people with the goal of enabling derivation of novel scientific theories and knowledge.” src: http://en.wikipedia.org/wiki/Cyberinfrastructure
  • “In scientific usage, cyberinfrastructure is a technological solution to the problem of efficiently connecting data, computers, and people with the goal of enabling derivation of novel scientific theories and knowledge.” src: http://en.wikipedia.org/wiki/Cyberinfrastructure
  • “In scientific usage, cyberinfrastructure is a technological solution to the problem of efficiently connecting data, computers, and people with the goal of enabling derivation of novel scientific theories and knowledge.” src: http://en.wikipedia.org/wiki/Cyberinfrastructure
  • “In scientific usage, cyberinfrastructure is a technological solution to the problem of efficiently connecting data, computers, and people with the goal of enabling derivation of novel scientific theories and knowledge.” src: http://en.wikipedia.org/wiki/Cyberinfrastructure
  • “In scientific usage, cyberinfrastructure is a technological solution to the problem of efficiently connecting data, computers, and people with the goal of enabling derivation of novel scientific theories and knowledge.” src: http://en.wikipedia.org/wiki/Cyberinfrastructure
  • “In scientific usage, cyberinfrastructure is a technological solution to the problem of efficiently connecting data, computers, and people with the goal of enabling derivation of novel scientific theories and knowledge.” src: http://en.wikipedia.org/wiki/Cyberinfrastructure
  • “In scientific usage, cyberinfrastructure is a technological solution to the problem of efficiently connecting data, computers, and people with the goal of enabling derivation of novel scientific theories and knowledge.” src: http://en.wikipedia.org/wiki/Cyberinfrastructure
  • “In scientific usage, cyberinfrastructure is a technological solution to the problem of efficiently connecting data, computers, and people with the goal of enabling derivation of novel scientific theories and knowledge.” src: http://en.wikipedia.org/wiki/Cyberinfrastructure
  • “In scientific usage, cyberinfrastructure is a technological solution to the problem of efficiently connecting data, computers, and people with the goal of enabling derivation of novel scientific theories and knowledge.” src: http://en.wikipedia.org/wiki/Cyberinfrastructure
  • Small team, communication was extremely important
  • Small team, communication was extremely important
  • Small team, communication was extremely important
  • Small team, communication was extremely important
  • Small team, communication was extremely important
  • Unit testing helps prevent too much “good days” for QA! Jerry Schneider on the Core Software team says this all the time.
  • Transcript

    • 1. CodeforScience
      Andrew Lenards
      June 24, 2010
    • 2. slideshare.net/lenards
    • 3. Andrew Lenards
      iPlant Collaborative
      on Core S/W team
      University of Arizona
      CS Grad, 2001
      Experienced developer, former consultant, instructor, & technical trainer
      Domain experience:
      Motor Vehicle Domain
      Phylogenetics / Bioinformatics (sort of)
    • 4. Andrew Lenards - Activities
      Learning about:
      Requirements, User Stories, etc.
      S/W Design/Architecture, Patterns, SOA
      Molecular Biology, Phylogenetics, Phyloinformatics, Genetics, and Genomics
      Active in:
      Tucson Java Users Group
      Semi-active in:
      Tucson Startup Drinks
      Ubuntu Arizona Local Community / TFUG
    • 5. Hybrid Vigor
    • 6.
    • 7.
    • 8.
    • 9. Computational ___________
    • 10. Computational _Thinking_
    • 11. Computational _Biology_
    • 12. Computational _Gardening_
    • 13. Computational _Gardening_
    • 14. Bio________
    • 15. Biofuels
    • 16. Biochemistry
    • 17. Biophysics
    • 18. Bioinformatics
    • 19.
    • 20.
    • 21.
    • 22.
    • 23. What do you expectwhen you graduate?
    • 24. … for the computer sciencemajors
    • 25.
    • 26.
    • 27.
    • 28. Myth of the Lone Developer
    • 29.
    • 30. in-practice: lots of interaction w/ technical&non-technical people
    • 31. Take Away:
      Communication is amajor challenge
    • 32. What might help?
    • 33.
    • 34. Software projects fail.
    • 35. … quite often
    • 36. Why?
    • 37. Adaption
    • 38. Adaption & Quality lead to success
    • 39. Quality ResearchrequiresQuality Software
    • 40. “good enough”Softwarecan help produceQuality Research
    • 41. Starts with understanding purpose…
    • 42. … and leadsto testing
    • 43. "Testing is the engineering rigor of software development."
      -- Neal Ford
    • 44. Testing affects your design
    • 45. Flexible design grows out of making code“testable”
    • 46. Take Away:
      testing brings abouthigher quality
    • 47.
    • 48. Code for Science
    • 49. I wasn’t always interested in science/biology
    • 50. Biology is aninteresting domain
    • 51.
    • 52. I know too much aboutAuto titling & internationaltrucking fees
    • 53. Conclusion: Act I
    • 54. Miscellaneous Info
      Contact Info
      lenards@iplantcollaborative.org
      lenards@email.arizona.edu
      Slides
      Will be posted here:
      http://www.slideshare.net/lenards
    • 55.
    • 56. … of the community, by the community, for the community
    • 57. Empowering the next generation of biologist
    • 58. Why?
    • 59. The world faces tough problems in the future
    • 60. Fuel/Energy
    • 61. Food
    • 62. Water Supply
    • 63.
    • 64. Cyberinfrastructure
    • 65. “In scientific usage, cyberinfrastructure is a technological solution to the problem of efficiently connecting data, computers, and people with the goal of enabling derivation of novel scientific theories and knowledge.”
    • 66. Large systems designleads to diverse,interdisciplinary teams
    • 67. With the direction of Computational Biology & Bioinformatics…
    • 68.
    • 69. Software Development as aCollaborative Game
    • 70. Soft skills are important
    • 71. Speaking in tongues is not allowed
    • 72. Working in pairs, not just forpair-programming ordebugging
    • 73. Impromptu design discussions
      (they often include more than just technical folks)
    • 74. Conclusion: Act II
    • 75.
    • 76.
    • 77. Small team
    • 78. Varying backgrounds
    • 79. (brilliant co-workers)
    • 80. Diverse skill-sets
    • 81. What’d I get out of it?
    • 82.
    • 83.
    • 84.
    • 85.
    • 86. “Lone” Developer, Meet your team:- PastYou-FutureMe
    • 87.
    • 88. Systems grow & change in organic ways
      (related topic: Entropy)
    • 89. Learned importance of unit testing
    • 90. “Safety net for refactoring”
    • 91.
    • 92. Ruthless refactoringw/ extreme confidence
    • 93. Automation keepsyou & your team honest
      (Continuous Integration)
    • 94. Broken Window Theory
      (Pragmatic Programmer)
    • 95. Need an infectious attitude towardtesting…
    • 96. Robust software is well-tested software
    • 97. Good day for QA ==Bad day for Dev
    • 98. Image Acknowledgements
      “Mad Scientist Photo” of Andrew by Alex Yelich
      http://www.flickr.com/photos/sskennel/4496534369/
      http://upload.wikimedia.org/wikipedia/commons/3/32/Charles_Darwin_by_Elliott_and_Fry.jpg
      http://en.wikipedia.org/wiki/File:Koeh-283.jpg
      http://jitterypenguin.com/images01/SWG%20Screenshots/Zoee/Master%20Commando%20Skill%20Tree.jpg
      http://www.flickr.com/photos/tonivc/2283676770/
      http://www.flickr.com/photos/lorelei-ranveig/2294093649/
      http://www.flickr.com/photos/thatgrumguy/402041540/
      http://www.flickr.com/photos/freya_gefn/2777209147/
      http://www.flickr.com/photos/pkmousie/2652404430/
      http://www.flickr.com/photos/sklathill/479528238/
      http://commons.wikimedia.org/wiki/File:Babel_fish_badge.jpg
      http://www.flickr.com/photos/lorelei-ranveig/2294093649/
      http://www.flickr.com/photos/roadsidepictures/389828793/
      http://www.teachforamerica.org/assets/images/img/logo_tfa.gif
      “Take Away” font: http://www.dafont.com/mailart-rubberstamp.font
    • 99. The content of this work is licensed under a Creative Commons
      Attribution-NonCommercial-ShareAlike License. Your use of this material constitutes acceptance of that license and the conditions of use of materials on this site:
      http://creativecommons.org/licenses/by-nc-sa/3.0/

    ×