Tools
Programming language
For computational projects you need to decide which programming language to use. For wrappers it's probably easiest to use a dynamically typed, scripting language. A suggestion is to use the open-source language Python (with SciPy modules). With the python+numpy+matplotlib setup you have an environment that is quite similar to Matlab.
- Python Scripting for Computational Science is available from our reference library (please don't remove).
- Python official webpage
- Online tutorials:
- Scipy home
- scipy cookbook
- matplotlib (good examples can be found in the cookbook)
- The Hitchhiker's Guide to Python a best practice handbook to the installation, configuration, and usage of Python on a daily basis.
- conda the best package manager for python (and other languages)
- With conda, you can create, export, list, remove and update environments that have different versions of Python and/or packages installed in them. See managing environments
Version control
GIT
GIT is a very useful tool for maintaining version control and handling code development, both in single and collaborative environments:
- Everyday GIT With 20 Commands Or So
- Git repositories can be hosted, e.g., at git.chalmers.se or on github.
- github has several resources to learn git
- The Git Community Book
- In particular the distributed workflow.
- Code Refinery project (check out the Lessons slides).
- GitHub Flow is a lightweight, branch-based workflow that supports teams and projects where deployments are made regularly.
ShareLaTex
Collaborative writing of reports can be managed using a version control system such as git. This workflow is actually recommended also for single authors. Alternatively, an online tool such as Overleaf / ShareLaTeX can be used. Chalmers students get a user account by registering an account on the website. By entering the email address xxxxx@student.chalmers.se you get a free premium account which enables in cooperation with many print documents: ShareLaTeX.