This is an archived version of the course and is no longer updated. Please find the latest version of the course on the main webpage.

Course description

Welcome to Python Programming! We hope to inspire you to learn and improve your Python Programming skills.

The core focus of this course are:

  • to introduce you to the fundamental concepts of programming;
  • to encourage you to think about and develop solutions for problems as well-rounded programmers;
  • to introduce you to the fundamental features of Python and some of the most widely used modules from the Python standard library;
  • to introduce several widely used Python Machine Learning and Deep Learning libraries;
  • to present key Python tools in order to become effective Python programmers.

We will assume that you have no prior knowledge about programming, but have a basic Mathematical knowledge (you understand terms like functions, vectors, matrices, variables).

Classes

Because of the situation with COVID-19, the course will be conducted fully online this year.

You will study any prepared materials and lab exercises on this webpage on your own (inside or outside scheduled hours). You will be able to get help from our capable Teaching Assistants during the scheduled lab sessions.

There will be some live lecture sessions, which will be used to reinforce your knowledge on what you have studied. We will primarily focus our discussions on how to apply what you have learnt to solve different types of problems. You can also use this chance to clarify any doubts with the instructor.

Piazza

We will use Piazza as our main communication channel. Please use the Piazza forum for any questions or discussions about anything related to the course. You are also encouraged to help each other by answering any of your coursemates' questions there or generate interesting discussions.

Coursework

There will be two coursework assignments, which together contribute to 20% of your final module grade.

Announcements

[04/12/2020] You might have noticed a bit of facelift with the Python syntax highlighter in our course materials. The code now scrolls if I wrote something too long (something you should NOT have in your code). Also a bit of housekeeping and correcting any errors, inconsistencies and typos (pure horror!)

[17/11/2020] All materials have now released! Hurray!

[09/11/2020] Deep learning exercises released!

[04/11/2020] Our much delayed module on Deep Learning from Week 3 has FINALLY been released! Sorry for the delay. There will be some exercises to go with these - these will be released as soon as we can!

[21/10/2020] All modules for Week 2 have FINALLY been released!

[08/10/2020] All modules for Week 1 have finally been released!

[06/10/2020] I have added a new page in Module 1 on strings as sequences. I just want to make sure that those who have already gone through that bit will not miss this addition!

[05/10/2020] Welcome to the course! We will list any important announcements here and on Piazza.

Course plan

Class schedule

All live sessions will be conducted on Microsoft Teams. Please follow the instructions from the department to attend the live lecture/lab sessions from Microsoft Teams.

The scheduled slots are as follows (labs unless otherwise indicated). All times are in BST (until 25th Oct) or GMT (from 25th Oct).

For Week 1 only (w/c 5th Oct):

  • Mon 2pm-3pm (Lecture)
  • Tue 1pm-3pm
  • Wed 9am-12pm
  • Thu 9am-12pm
  • Fri 10am-12pm
  • Fri 1-3pm (Lecture)

For remaining weeks*:

  • Mon 9-11am
  • Wed 11am-12pm (Usually lecture)
  • Thu 2-3pm [Week 5 Week 4 onwards]
  • Fri 11am-12pm

* We may conduct live lectures in any of the slots depending on the best arrangement for the week. Please check the announcements here and on Piazza.

Provisional course outline

Below is the provisional outline to the course (subject to change)

Week Date Topics Coursework
1 5/10/2020
  • Basic building blocks: Statements, Selection, Repetition
  • Functions
  • Object-oriented programming (OOP)
  • String manipulation
  • Scripts, modules, packages
  • File manipulation
2 12/10/2020
  • Scientific Computing libraries: Numpy and Matplotlib
  • Data analysis libraries: Pandas
  • Machine Learning libraries: scikitlearn
Coursework 1 released (Mon 12 Oct 09:00 GMT)
3 19/10/2020
  • Deep Learning libraries: PyTorch, Tensorflow/Keras
-
4 26/10/2020
  • Exception handling
  • More Python libraries
  • Regular Expressions

Coursework 1 due (Mon 26 Oct 19:00 GMT)

Coursework 2 released (Fri 30 Oct 09:00 GMT)

5 2/11/2020
  • Command Line Interfaces in Python
  • Functional Programming in Python
6 9/11/2020
  • Web and network programming: HTTP requests
  • Python decorators
  • Code refactoring
Coursework 2 due (Fri 13 Nov 19:00 GMT)
7 16/11/2020
  • Software Testing in Python
Coursework 2 due (Mon 16 Nov 19:00 GMT)
8 23/11/2020
  • Take a break!
9 30/11/2020
  • Revision
  • Mock test
Spring W1 11/1/2021
  • Final exam

Teaching Team

Josiah Wang

Josiah Wang

Course Leader

Ivan Procaccini

Ivan Procaccini

Senior Learning Technologist

Harry Coppock

Harry Coppock

Teaching Assistant

Joe Stacey

Joe Stacey

Teaching Assistant

Luca Grillotti

Luca Grillotti

Teaching Assistant

William Hunter

William Hunter

Teaching Assistant

Anastasios Andronidis

Anastasios Andronidis

Tutorial Assistant

Guang Yang (Anson)

Guang Yang (Anson)

Tutorial Assistant

Najla Al Futaisi

Najla Al Futaisi

Tutorial Assistant

Simon Shillaker

Simon Shillaker

Tutorial Assistant

Sirvan Almasi

Sirvan Almasi

Tutorial Assistant