All posts by Jeff Shelton

Episode 10 — Software Carpentry

Software is an important component in the toolkit of nearly every engineer. Chris and Jeff talk with Greg Wilson about how engineers and scientists can improve their programming skills.

  • Jeff’s first programming language was Pascal.
  • Intended to encourage good programming practices, Pascal gained wider acceptance as the basis for Borlands’s Turbo Pascal.
  • Programming in the 1970’s was not carried out at a terminal, but required punching data cards on a keypunch machine, then feeding the cards into a card reader. Yes, that huge stack of spinning “magnetic disks” at the 1:14 mark is an early hard drive.

  • Our guest for this episode is Greg Wilson, who is the founder and director of Software Carpentry, an outreach and training program that helps scientists and engineers be more effective by teaching them “best-practices” for software programming.
  • Greg’s work with Software Carpentry is currently funded by the Sloan Foundation in the United States, and he is an employee of the Mozilla Foundation.
  • Software Carpentry seeks to reach the majority of researchers, scientists, and engineers who build “small” data projects, rather than the relatively few that work on “huge” data sets using supercomputers.
  • A typical Software Carpentry workshop consists of a two-day course, with blocks of instruction addressing the Unix shell, Python, version control, unit testing and SQL. The two-day workshop is often followed up with about six weeks of online instruction.
  • Greg says that if participants come away with nothing else, they should learn the value of version control, so that the provenance of scientific data can be tracked and analyzed.
  • The Software Carpentry team has found screencasts to be “a lousy way to teach,” as personal interaction is an important component of learning.
  • Greg has found engineers to have a bit more “hands-on” experience than scientists, and to be more MATLAB-oriented, but perceives relatively little difference in their understanding of software issues.
  • Considerable empirical research has been conducted about programming effectiveness, but little of this information is shared with students in college courses.
  • Greg has co-edited a book about software programming practices, titled Making Software: What Really Works, and Why We Believe It.
  • One of the most critical indicators of how well individuals can work together in a corporate programming project is not their geographical separation, or language differences, but how far apart they are in the company’s organization chart.
  • Pair programming is an effective method for reducing software errors, but it has an important caveat: it only keeps working if you keep shuffling the coding partners.
  • The single most effective way to find bugs is code review. Don’t compile the code, or run it, but have someone else read through the code. You’ll find 60-90% of the bugs in the first reading. Review Board is an open-source web-based tool designed to help in such efforts. A commercial product for this purpose is available from Smart Bear Software.
  • Mark Guzdial has been using “worked examples” to teach programming at Georgia Tech, and has found it to deliver more learning in less time.
  • A flipped classroom has students watch instructional videos for homework, and then spend class time working problems.
  • In a 2009 blog post, Greg talked about “real” engineers becoming more like software engineers, rather than the other way around.
  • Greg believes that higher quality software is possible, if the right incentives are offered to programming organizations.
  • Even if we can’t review code line-by-line, we can at least verify the methodology and processes used to create it.
  • There is a comprehensive reading list available on the Software Carpentry website.
  • Greg is suspicious about the effectiveness of self-guided learning programs like Codeacademy.
  • On the horizon are programming tools such as Mozilla Towtruck, which allows for collaborative editing of web pages.
  • As an introduction to programming methods, Greg recommends the book Facts and Fallacies of Software Engineering by Robert Glass.
  • Greg can be reached by email at info@software-engineering.org. You can find more information about the programming workshops on the Software Carpentry website.

Thanks to Jon Lim for granting permission to use his image of Greg and a young programmer at the Hive Toronto Youth Hack Jam in February 2012.

Untitled Photo: Jon Lim © 2012, all rights reserved.

Seeking Engineering Stories

We’re now 10 episodes in The Engineering Commons. We’ve talked to many great guests and had some really interesting discussions from a high level. Our hope is that we can continue to interview people working on big issues in engineering, across all disciplines.

But we’re also looking for the commonality among all engineers. And most engineers are doing smaller, yet still quite important work. So if you think you work in a particularly interesting industry or have an interesting engineering anecdote that would be of interest to all types of engineers, we would love to hear from you.

Engineering is ultimately built upon the people that work in the industry. We want to hear your stories.

So, leave us a comment or send us an email and let us know if you or someone you know might be a good fit for TEC. We can’t promise a spot to everyone, but we promise we’ll check into every story. Thanks!

Episode 9 — STEM Education

In this episode, Chris and Jeff discuss STEM education with two educators/engineers in the field who are working to help kids learn more about engineering and stay excited about the field.

  • Chris started wanting to work on cell phones.
  • Jeff’s dad is an engineer and built heathkit stereos.
  • Bill Porter works for the Navy and runs the science brothers program.
  • Dave Young is a consultant who also runs the Blue Stamp Engineering program.
  • Dave wants to show kids that engineering is engaging and you can make money making stuff.
  • Bill wants to remove stigma around being interested and excited about science.
  • Funding for Bill comes through public affairs and grants through the Office of Naval research.
  • Very hard to track progress, but it’s required for funding from governmental programs.
  • Dave’s program is funded directly by students but has some anonymous donors that helped students with their tuition.
  • Both programs don’t deliniate between science and engineering.
  • There are problems in growing programs but maintaining small ratios of student to teachers is important.
  • Context is an important component of the Blue Stamp program.
  • Another important component is learning the differences between what should work and what does work.
  • You still need to explain that math is necessary but that it’s not an everyday occurrence in real engineering.
  • The difference between learning how to do something and learning how to do something and how it matters.
  • In an interview with president of Olin college on Boston public radio he talked about how engineering doesn’t have professors from industry, whereas other fields do.
  • 50% of students that start in engineering don’t end up graduating.
  • Dave thinks that there is a further funneling because many that leave school don’t know how to do anything.
  • Should the focus on well roundedness be reduced in STEM education?
  • Well roundedness doesn’t have to be across fields, it could be within scientific fields.
  • Dave came up with BSE at a bus stop with his partner Robin.
  • Bill was recruited to revive the Science Brothers program after attending a girl scout day and wowing the kids with robots and light up coats.
  • Seaperch.org is an online program by the navy to build an ROV.
  • Online learning will help with some of the “unofficial education” that will increase exposure.
  • More info about Dave’s program at BlueStampEngineering.com
  • More info about Bill’s program at Sciencebrothers.org

Thanks to Magnuscanis for the image of Einstein’s Blackboard