skip to primary navigationskip to content

Software Carpentry: A Practical Introduction to Good Programming Practices



This course is aimed at researchers who want to learn core skills and best practices for scientific computing. It will cover basic concepts and tools, including program design, version control, data management, and task automation. Participants will be encouraged to help one another and to apply what they have learned to their own research problems.



Hugo Tavares, The Sainsbury Laboratory

Laurent Gatto, University of Cambridge

Marco Chiapello, University of Cambridge


Audience and Prerequisites

  • This course is aimed at beginners, but the knowledge of basic programming concepts such as variable/loop/conditions will be an advantage
  • Graduate students, Postdocs and Staff members from the University of Cambridge, Affiliated Institutions and other external Institutions or individuals


Syllabus, Tools and Resources

During this course you will learn about:

  • Unix command line (and how to automate repetitive tasks)
  • Python or R (and how to grow a program in a modular, testable way)
  • version control with Git (and how to track and share work efficiently)


Learning Objectives

After this course you should be able to:

  • Use the shell to do more in less time
  • Automate your tasks and pipelines
  • Write structured programs
  • Use Git to manage and share information
  • Test programs



Book Here

Software carpentry website

Filed under: