This repository holds teaching materials for the NCAS Introduction to Scientific Computing course.
The course covers:
- Introduction to the Linux shell
- Introduction to basic Python (3.7)
- Data manipulation and visualisation in Python
Example code directory used in Python sessions
Example data directory used in Pyton sessions
Repository of completed Python exercises
- 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
- Git and Version Control
- Introduction
- Pipes and Filters
- Permissions
- Finding things
- Job control
- Summary so far
- Shell scripting
- The secure shell
- More tricks
Exercises and solutions
- 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
- Classes and Objects
- Summary & where next?
Exercises and solutions
- 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
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.