A key to software-tool comfort is having he right mental model of what the tool’s actually doing. I field daily questions from folks who say things like, “I did a git tag -d, to delete the tagged version but it looks like the code from that version is still in the branch,” or “I checked out the tagged release and made a hot-fix to it, but I can’t figure out why git won’t push that to GitHub.”
Dr. Jeffrey Haemer has been doing source-code management (SCM) at Gogo Business Aviation, in Broomfield, Colorado since 2011. He's been doing commercial Unix and Linux work since 1983, when he helped make IBM’s PC/IX, the first Intel UNIX, at Interactve Systems Corporation, where they used SCCS.
He has done Unix and Linux education and training for organizations like Uniforum and the University of Colorado, and in places like Romania and Kuwait. He has served as Standards Representative for the Usenix Association. He is a contributing author of The Linux Administration Handbook and has published over a hundred articles and papers on software engineering for Unix and Linux.
This class is intended to prepare the student to take the Object-Oriented Fortran class offered later in August. We will cover Modern Fortran up through Fortran 95, which will prepare the student for the next course, which will cover topics from Fortran 03 and 08.
Jonah Duckles is Director of Informatics and Innovation in a joint appointment with The University of Oklahoma's Libraries and Information Technology organizations. In this role he partners with researchers to improve their computational workflows while developing maker spaces. He holds a BS in Physics and an MS in Forestry and Natural Resources, both from Purdue.
Chris Hamm is a biologist and postdoctoral researcher at the University of Kansas. He combines field, laboratory, and computational biology to investigate the ecology and evolution of insects. He holds a BS and MS in Biology from California State University, Fresno, and a PhD in Entomology and a PhD in Evolutionary Biology from Michigan State University. Chris has a dog named Larry and began as a Software Carpentry learner.
A code retreat is an event where developers gather and learn, by doing, the fundamentals of software development and design. This is more about improving the process of software development than learning, say, a new algorithm or a new programming language (although you could learn a new algorithm or a new programming language). Any programming language is welcome.
As the Best-Practices chair on the SEA, Julianne Blomer will be the facillitator for the session.
Registration required for both days, from the UCAR's EOD Training Catalog (UCAS login, click EOD Training Catalog, Search for "Software Carpentry," Click Details and Enroll - be sure to allow pop-ups for the site).
Day 1 (Thursday May 23):
Ted Hart is from a tiny town in the mountains of Vermont and completed BA in History and a BS in Biology at University of Massachusetts Amherst. After years as an itinerant field biologist across the U.S. he returned to his native land to complete a PhD in biology at the University of Vermont. He then moved on to a post-doc at the University of British Columbia where he works on computational models of evolution using genetic algorithms. Soon you'll be able to pester him with all the questions you have about computer things indefinitely because he's now a staff scientist in ecoinformatics at NEON.
Alex Viana grew up in Chicago and graduated with a BA in math and astronomy from the University of Wisconsin - Madison. He has worked for 6 years as an analyst at the Space Telescope Science Institute in Baltimore, where he works with data from the Hubble Space Telescope. Alex's projects focus on using the Python programming language and SQL databases to automate scientific processes for terabyte scale astronomical datasets. A self-taught programmer, he enjoys working with Software Carpentry to help others avoid the many, many mistakes he has made over the years. You can find him on twitter at @AlexVianaPro.
Damian Rouson, Karla Morris, and Salvatore Filippone
Modern Fortran explicitly supports object-oriented programming (OOP). OOP aims to increase a program's maintainability in part by reducing cross-module data dependencies and to increase a program's reusability in part by providing for extensible derived types. Emerging compiler support for Fortran 2003/2008 inspires a more modern program design and implementation style. This course provides the requisite skills.
Damian is the manager of the Reacting Flow Research Department and a Visiting Assistant Professor at the University of Cyprus. His research interests focus on scalable scientific software design. He has recently written a book on the subject, Scientific Software Design: The Object Oriented Way . He is also the software architect of the object oriented Fortran interface to Trilinos, ForTrilinos. ForTrilinos provides Fortran applications direct access to capabilities in the Trilinos project.
Karla is a senior member of technical staff in the Reacting Flow Research Department at Sandia. She is the lead developer of ForTrilinos. Her research interests include computational fluid dynamics to multiphysics flows and scientific software architecture.
Salvatore Filippone graduated from the University of Rome "Tor Vergata" where he is currently with the Dep. of Industrial Engineering. His main research interests are in algorithms for numerical linear algebra, their implementation on high performance computers and their application to engineering domains such as fluid dynamics and electromagnetism. From 1990 to 2001 he has been with IBM Corp. where he was one of the lead developers of the numerical libraries ESSL and PESSL. He evaluates scientific projects in HPC for both the European Commission and the National Science Foundation.
A code retreat is an event in which developers gather and learn, by doing, the fundamentals of software development and design. This is more about improving the process of software development than learning, say, a new algorithm or a new programming language (although you could learn a new algorithm or a new programming language). Any programming language is welcome.