These learning resources are based on learning resources that were developed and used to teach students of Geographical Information Systems (GIS) computer programming skills and knowledge of the Python programming language at the University of Leeds. Andrew Evans initially developed those learning resources. They were iteratively refined with the help of several cohorts of learners that tested them out. Thanks to all those that were part of that journey.
Some GIS specific things are introduced in the learning resources, but for the most part they are general and not particularly geographically focussed.
The hope is that these learning resources are accessible, helpful and interesting and that the effort of refining them has been worthwhile.
The highlight.js library is used for code linting.
The learning resources are maintained by Andy Turner.
They were re-designed to be learning resources that learners could more easily follow without the help of a tutor in 2023. As part of this, the way the content was generated was re-engineered. Previously, content had been generated using Jekyll.
For the re-engineering, Andy used Java. The repository that generates most of the website content is open source and available via: https://github.com/agdturner/agdturner.github.io.generator
As well as providing a useful index page and more accessible content, the re-engineering helps pave the way for generating a suite of learning resources for training researchers to program in different languages. It was envisaged that there would be basic learning resources for a number of key language focussing on the language fundamentals, and essentially creating something very similar to what is created in this learning journey. Furthermore, the idea was to produce learning resources for each language that would focus on collaborative software development and developing research software to take advantage of High Performance Computing systems. Please report issues and suggest improvements here.
Each page has a button up top to change between a lighter and darker page style, and a main navigation section that links to all other pages. The Index page is a glossary of terms that links to page sections where specific terms are used. The References page provides a list of references and links to further resources. Pages with multiple sections have a contents (below the main navigation section) linking to them.
General computer programming language concepts, including:
Python specifics:
These learning resources introduce and use general computer programming terms, and terms specific to Python.
Pages with names starting 'ABM' are a series of practicals for developing a simple Agent Based Model that represents a set of entities that move around in an environment, interacting with the environment and each other. Developing the code by following instructions puts into practise some of the theory introduced in other pages. If you follow the instructions, by the end of the practicals, you should have code that reads in data from local files and from the Web, and produces an animation, data files, log files and messages. The idea as that you will then be capable of develop the model in interesting ways without needing detailed instructions, and furthermore using and developing your programming skills in other ways.
You are encouraged to be experimental, but cautious, as there are cyber security concerns to be aware of. If you have not had training on safe and secure use of computer systems, then you are advised to get some.
The software introduced in these learning resources are Free and Open Source Software (FOSS) - available to download and install on Linux, Microsoft Windows, and MacOS.