Skip to Main Content
library logo banner

Research Software Learning Online: Python

Using Python

Python logoPython is an object-orientated programming language that is easy to learn and can be used for programming, data analysis and data visualisation across a wide range of platforms.

Students can use Python via a number of applications on the University-Managed computers and via UniApps and UniDesk (Anaconda, Python 3, Jupyter notebooks). Python is an open-source programming language and there is extensive guidance available through the Python website:

The DoctoralSkills Research Software Skills course delivers workshops to doctoral students on Python. However, the lesson materials are available online for you to refer to (under 'Lesson Materials'). 

Image CC BY-SA:

Please note that O'Reilly deletes content in December and June. If you are linking to courses on this platform we advise that you check that they are still running in January and July of each year. 

Searching for more courses on Python

There are over 180 video and learning path courses on O'Reilly Learning on Python. You can search for more courses and resources for learning Python on O'Reilly Learning. Enter 'Python' into the search bar on the home page. We recommend that you filter the results: 

  • use the 'Format' filter to filter by resource type: courses are listed as 'Learning Path' or 'Video'
  • use the 'Topic' filter to filter for courses specifically on Python

If you cannot see 'Learning Path' and 'Video' as an option under the Format filter you should delete the site cookies and refresh the page. 

Getting started courses

These courses are suitable for those who are new to Python. We have curated courses on Python 3. Some of the courses under 'Intermediate and Advanced' courses are also suitable for beginners as they tend to start with the basics therefore, it is worth having a look at those courses as well as the ones listed below. 

Python for Beginners: Learn Python Programming (Python 3)(2.5 hours)

This course is suitable for those new to programming in Python and provides a good introduction to the basics of programming in Python 3. Note: you can using Jupyter Notebooks for programming in Python at the University of Bath but this is not covered within the course. The course covers: 

  • Python setupPython for beginners
  • Strings and variables
  • Functions
  • Lists
  • Dictionaries
  • Tuples
  • Files
  • Modules

Introduction to Python: Learn How to Program Today with Python (8 hours)

This video course is suitable for those new to programming with Python and move onto some intermediate and advanced topics such as web development and data analysis. The course covers: 

  • Introduction to programming and PythonIntroduction to Python: Learn How to Program Today with Python
  • Python and programming basics
  • Control flow with conditionals
  • Lists and loops
  • Advanced language topics
  • Introduction to data analysis in Python
  • Introduction to web development in Python

Intermediate and advanced courses

These courses are mainly suitable for those with an existing working knowledge of programming in Python however, many of them do provide introductory modules that are suitable for those new to Python. The longer courses can be used to dip in and out of to learn about specific skills. 

Python A-Z: Learn Python Programming by Building 5 Projects (12 hours)

This is an in-depth course suitable for those new to programming in Python. If could also be used as an intermediate course to learn some intermediate skills. The course covers: 

  • Python setupPython A to Z: learn python programming by building 5 projects
  • Writing your first Python programme
  • Datatypes in Python
  • Operators in Python
  • Input and output
  • Control statements
  • Loops
  • Strings and characters
  • Lists, Tuples and dictionaries
  • Functions
  • Object Orientated Programming
  • Errors and exceptions handling
  • File handline
  • Package management
  • Project: face detection
  • Project: video downloader
  • Data analysis with Pandas
  • GUI project
  • Database basics: SQLite3
  • Project Tkinter
  • Project: building a Twitter Bot


The Complete Python Course (34 hours)

This course is suitable for those new to Python and those with existing knowledge who would like to extend their knowledge and skills in Python. The course covers: 

  • Introduction to PythonThe Complete Python Course
  • Python fundamentals 
  • Project using PyCharm
  • Object-Orientated Programming with Python
  • Errors in Python
  • Working with files
  • Databases and Python
  • Type hinting
  • Advanced built-in functions
  • Advanced Python development
  • Web scraping with Python
  • Browser automating with Selenium
  • Asynchronous Python development
  • Python on the console and managing project dependencies
  • Web development with Flask
  • Interacting with APIs with Python
  • Decorators in Python
  • Advanced Object-Orientated Programming
  • GUI development with Tkinter
  • Unit testing with Python
  • Algorithms and data structures
  • Python libraries
  • Reference and refresher section


Python Fundamentals (45 hours)

This is an extensive and in-depth video course that can be used by beginners to intermediate users. It can be dipped in-and-out of to learn specific skills. The course covers: 

  • Introduction to programming in PythonPython Fundamentals
  • Using IPython and Jupyter Notebooks
  • Control statements
  • Functions
  • Sequences: lists and Tuples
  • Dictionaries and sets
  • Array-orientated programming with Numpy
  • Strings: a deeper look
  • Files and exceptions
  • Object-orientated programming
  • Natural Language Processing
  • Data mining Twitter
  • IBM Watson and cognitive computing
  • Machine learning: classification, regression and clustering
  • Deep Learning
  • Big Data: Hadoop, Spark, NoSQL and IoT