This repository holds teaching materials for the NCAS Introduction to Scientific Computing course.
The course covers:
- Introduction to the Linux shell
- Git and GitHub
- Introduction to Python
- Data manipulation and visualisation in Python (Working with Data)
- Example code for all python modules
- Algorithmic thinking
- NCAS, CMS, CEDA and JASMIN overview
- Parallel processing of large datasets
- Why good data curation is essential to doing good science
- Text editors and terminals
- Introduction
- Pipes and Filters
- Permissions
- Finding things
- Job control
- Summary so far
- Shell scripting
- The secure shell
- More tricks
- Introduction
- Basics
- Boolean types
- Scripts
- Control flow
and
,or
andnot
- Lists
- Slicing
- List comprehensions
- Tuples
- Input and Output
- Strings
- Aliasing
- Functions
- More on functions
- Libraries
- Combining scripts and modules
- Sets
- Dictionaries
- Errors and Exceptions
- Logging and Debugging
- Object Oriented Programming
- Summary & where next?
- Data formats and metadata - why?
- Text formats
- Some more common text formats (at CEDA)
- Binary formats
- Overview of NetCDF
- The structure of "Classic" NetCDF files
ncgen
andncdump
to create/export NetCDF and CDL- The CF Metadata Conventions (for NetCDF)
- Checking CF-compliance:
cf-checker
- Reading NetCDF files with Python:
netCDF4
- Creating NetCDF files with Python
- Reading and writing other formats
- Viewing NetCDF:
Ncview
andncBrowse
See the Resources page for links to useful related sites and materials.
Feel free to fork this repository on GitHub and re-use these materials however you like.
The foundations of our course are based on the superb materials provided by Software Carpentry who we are eternally grateful to.