Department of Engineering

IT Services

Advanced Python

Learning more

  • The University provides some videos and bookable courses. Old ones may not be too useful. Some deal with broad topics, others with particular features - e.g. You might also be interested in Getting Ready for your Python Interview
  • The main Python site has lots of documentation. The reference material can be rather heavy, but the Tutorial is more easily paced.
  • See the Advanced Python Tutorials (tutorials on various topics on the realpython site)
  • Bernd Klein's Intro to Advanced Python has a list of sections which you might use to decide what to learn about next - "Recursive Functions", "Iterators and Iterables", "Generators and Iterators", "Lambda Operator, filter, reduce and map", "zip introduction and examples", "Decorators and Decoration", "Memoization and Decorators", "Functional Programming OOP", "List Comprehension", "Function Composition In Python", "Currying in Python", "Argument Count", "Tests, DocTests, UnitTests", "Testing with Pytest", "Regular Expressions", "Advanced Regular Expressions".
  • Find out how to use decorators, itertools, generators, pandas, and partial functions - Further Python Features gives a few examples.
  • See Programming exercises (100+ graded exercises)
  • Questions that aren't in Python books can be answered using Python. See Maths Puzzles or try these -
    • Monopoly. You're on GO and other people have hotels on all the locations along the first side. What's the chance that you'll reach the second side without landing on any hotels?
    • Pick a number. If it's even, divide by 2. If it's odd multiply by 3 and add 1. Continue this until you reach "1". Eg 3-10-5-16-8-4-2-1. Which integer greater than 0 and less than 100 produces the longest chain?
    • If you add the digits in the 1st, 3rd, 5th etc positions of a natural number, and get the same total as you get by summing the other digits, the number is exactly divisible by 11. For example, 17248 is a multiple of 11 because 1+2+8 equals 7+4. But the opposite isn't true - there are multiples of 11 for which the sums don't match. What's the smallest natural number for which this is so?
  • Colaboratory has introductions to Machine Learning, Neural Nets, using GPUs etc
  • See if you can answer this question from BBC's University Challenge, 26th July, 2021 - "Commonly used in Artificial Intelligence, what programming language is also the name of a genus of large, non-venomous snakes?"

CUED

Some coursework uses Notebooks like those used in the 1A Mich term. Work in other CUED courses can be optionally done in Python - e.g. symbolic integration. Try

from sympy import *
x = Symbol('x')
integrate(x**2 * exp(x) * cos(x), x)

If you're interested in doing more computing in general at CUED you can look forward to

  • 1st year easter term - Microprocessors and learning how to program them are introduced through a series of labs
  • First summer vacation - Mars Lander project. C++
  • 2nd year - IDP (Integrated Design Project). About a third of students do programming on this project, some opting to use Image Recognition with Python - see a short video clip of a robot trying to calculate a route in real time
  • 3rd year - Various Easter Term projects (4 weeks) involve programming - "CT Reconstruction and Visualisation", "Image Processing", "Machine Learning" (Python), "Data Analysis", "Software" (Python), etc. A few modules (e.g. "Medical Imaging and 3-D Computer Graphics") might interest you too.
  • 4th year - Your 4th year project can involve heavy programming. Several modules also involve computers - e.g. "Computational Statistics and Machine Learning", "Deep Learning and Structured Data", "Computational Neuroscience", "Computer Systems"
  • Student clubs - You might find something on the list of student-led societies -