Topic outline

    • General Information


      • Lecture: Thursday 1-3 (Peoples Palace:Great Hall)
      • Labs (week 1-12 except week 3): Monday 10-12 and 12-2 (Bancroft:1.15A), Tuesday 4-6 (Queens:LG5), Thursday 11-1 (Bancroft:1.15A).
        You should attend only one of these, as shown in your personal timetable.
      • Labs (week 3 only): Tuesday 1-3 and 3-5 (Bancroft:1.15A), Tuesday 4-6 (Queens:LG5), Thursday 11-1 (Bancroft:1.15A), Thursday 4-6 (Bancroft:1.23).
        You should attend only one of these, as shown in your personal timetable.

      It is extremely important that you attend your (allocated) lab session: computer programming needs to be learned by actually doing it yourself (as opposed to just listening to someone talk about it), so although the lectures will introduce the relevant concepts, the main focus will be on the lab sessions.

      Lecture notes and lab exercise sheets will be uploaded on a weekly basis, in sections labelled "Week 1", "Week 2" and so on, below. Lectures in week n will contain the material for labs in week n+1

      Note that you will be required to submit your answers to the lab exercises via the "lab report" links in the relevant weekly sections. These do not contribute to your grade, but will be used to monitor your engagement with the module in accordance with the School's Student Engagement Policy. (This means, in particular, that if you do not submit lab reports then you may be contacted by the School office and required to attend make-up sessions.)


      The assessment for this module will comprise the following. Note that your assessment submissions will be monitored for plagiarism using Turnitin. The penalties for plagiarism (and other assessment offences) are outlined here.

      • One Two tests (15% each). The tests will be computer based (as opposed to written) and held in weeks 7 and 12 according to a separate timetable.
      • Report (70%). Instead of a final exam, the bulk of your assessment will take the form of a project for which you will write an individual report. Details will follow in due course.

        The above changes are due to the suspension of on-campus teaching: there will not be a week 12 test. The marks for the remaining 15% test and the 70% project will be rescaled to 100%, i.e. the final mark will be a weighted average:
        $$\frac{15}{85}(\text{test mark})+\frac{70}{85}(\text{project mark})$$


      The programming language used for this module is Python, via the web-based Jupyter Notebook application. Please see the week 1 exercise sheet for information on how to access Jupyter Notebook on college computers and/or install it on your personal computer. 

      The content of the module is (roughly) as follows; more details are given in the week 1 lecture notes:

      • Week 1: Introduction to Jupyter Notebook and Python.
      • Weeks 2-6: Programming fundamentals (data types, variables, functions, logic).
      • Week 7: First test.
      • Weeks 8-11: Further programming, and mathematical applications.
      • Week 12: Second test.


      The lecture and lab materials will define the content of the module, but if you would like some additional reading material, then we recommend the book Python: an introduction to programming by James Parker. This is available as an e-book from the library. (You are not required to purchase a copy.)

      • Week 1

      • Week 2

      • Week 3

      • Week 4

      • Week 5

      • Week 6

      • Week 7 - MID TERM TEST

        Your mid-term test will take place in week 7, with test times to be scheduled to fit around any other assessment. You will be sent an email confirming your allocated time and venue. You must make sure to come to the correct session (even if you usually go to a different lab than the one to which you are allocated) or you will not be able to sit the test.

        The test covers all material in lectures from week 1 to week 5 (but not week 6) and in tutorials from week 1 to week 6.

        As will be explained in classes in week 6 and on the sample test (available to download under "week 6" above), the test is open book. This means:

        • You may use any printed material (e.g. books, handwritten notes), and you may access the internet on your lab PC (e.g. QMPlus, Python documentation). 
        • You may not communicate, nor attempt to communicate, with anyone else, nor solicit assistance in any way (e.g. via email, Facebook).
        With the exception of your lab PC, you may not use any electronic devices; details of all internet activity on your lab PC may be logged.

        You may do rough work on your own paper, which will not be collected by the invigilators.


        • Test Group 1 - Week 7, Thu 11:30, Bancroft 1.15a Assignment
        • Test Group 2 - Week 7, Thu 13:30, Bancroft 1.15a Assignment
        • Test Group 3 - Week 7, Fri 11:30, Eng W128D.1 Assignment
        • Test Group 4 - Week 7, Thu 11:30, Bancroft 1.23 Assignment
        • Test Group 5 - Week 7, Thu 15:30, Bancroft 1.15a Assignment
        • Test Group 6 - Week 7, Fri 13:30, Eng W128D.1 Assignment
      • Week 8

      • Week 10

      • Week 11

      • Week 12 - END OF TERM TEST

        Due to Covid-19, there will be no week 12 test.
        • Final Report Project

          As explained in the "General Information" section above, your main assessment in this module takes the form of a project/report, worth 70% of your final mark.  (Note: the 70% weighting has now changed owing to the cancellation of the week 12 test; please read the General Information section carefully for full details.)

          The project is now available to download below. Click on the "Final Report Project" assignment and then download the file "project-final.ipynb". A pdf version is also available for your convenience. Note that, in addition to the Jupyter notebook, there is also a separate file "", which you must save in the same directory as the Jupyter notebook.

          The project is due at 11:55pm on Monday 4 May 18 May, 2020.

          Your lecturers will respond to project-related emails until 5:00pm on Friday 1 May 15 May, 2020, only. It is strongly recommended that you start your project as soon as possible, and have it finished by this time, leaving the additional three days (Saturday 2 May 16 May to Monday 4 May 18 May) for final proofreading/checking/submission only.

          Full instructions are provided in the project Jupyter notebook.

          Good luck!

          Note: you will need to be logged in to QMPlus in order to access the project.

        • Topic 18