Topic outline
General Information
TIMETABLE, MATERIALS, AND ENGAGEMENT MONITORING
- 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.)
ASSESSMENT AND PLAGIARISM
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
Twotests(15%each). The testswill be computer based (as opposed to written) and held in weeks7and 12according 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})$$
CONTENT AND SOFTWARE
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.
OPTIONAL READING
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).
You may do rough work on your own paper, which will not be collected by the invigilators.CALCULATORS MAY NOT BE USED IN THIS TEST.
Week 8
Week 9
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 "data.py", which you must save in the same directory as the Jupyter notebook.
The project is due at 11:55pm on Monday
4 May18 May, 2020.Your lecturers will respond to project-related emails until 5:00pm on Friday
1 May15 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 (Saturday2 May16 May to Monday4 May18 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