Overview of the course#

Python is one of the most widely used programming languages in the world. Like all things it has its advantages and its disadvantages.

Pros#

  • Easy to use, simple syntax

  • Powerful & flexible

  • Comprehensive scientific & data analysis tools

  • “There’s a python package for that…”

  • Large community / Open source

  • Academic & industrial user base

    • NASA, Google, Dropbox

    • Data Science, Machine Learning, Web Services, Finance, Data management

  • Free

Cons#

  • Not the fastest

    • But…lots of pkgs with python interface offset a lot of the issues

    • Usually development time costs you far more than run time

  • Not great at parallel processing

  • Too many ways to do things, conflicts, changes to packages breaking your code

However, we’ll show in this course that at least some of the cons can be mitigated or reduced. Unless your main interest is running code that needs to run very fast then python is a great tool to have.

Topics#

In this course we will cover the following:

Part 1 of course - Datascience:

  • Session 1: Introduction, setup, using Conda and importing packages

  • Session 2: Overview of Python core language

  • Session 3: Numerical Python and Plotting (Numpy and Matplotlib)

  • Session 4: Scipy, other libraries and figuring things out

  • Session 5: Manipulating Data - Pandas

Part 2 of course - Building bigger projects:

  • Session 7: Object Oriented Programming

  • Session 8: Git and Github

  • Session 9: Testing, Debugging, Refactoring

  • Session 10: Session for project help

Timetable#

The main course runs for the whole of the Autumn term starting on the 1st of October.

  • There will be a 2 hour session every week (4-6pm, Pope building A26).

    • Attendance is compulsory for taught masters students and will be monitored with QR codes.

    • PhD students are welcome to join in person or they may join online via Teams and use LiveShare for remote support.

  • In the 6th Week of teaching (UoN call this week 7) there will be a 1 hour in-class test in place of the usual session (Taught Masters only).

  • Vivas will be held in the week commencing 25th November (Taught Masters only)

  • The projects will be released in week 3 and must be submitted by Wednesday December 11th (5pm).

Assessment#

The assessment varies depending on whether you are taking this module as a taught masters student or via MPAGS (Research Masters / PhD students)

Taught Masters students#

Assessment for this module comes in 3 parts:

  • An in-class test in the 6th week (see details on in-class test page). (35%)

  • A brief viva with staff concerning your project in 8th week of teaching of the course (week commencing 9th December). (20%)

  • Submission of a Project (see details on projects page) as a Jupyter Notebook by Wednesday December 11th, 5pm (45%)

MPAGS#

To qualify for MPAGS credits, you will need to demonstrate sustained engagement with the course. This includes submitting an acceptable effort at the exercises in the taught sessions and producing a Python program. Your program may address any scientific purpose you like, e.g. data analysis, simulation, modelling, experiment control, visualisation, etc. Ideally the program will do something that is relevant for your research projects. MPAGS students are not required to take the in-class test.