Aims
Knowledge and Understanding
Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:
-
Basic programming constructs, including sequence, selection and iteration, the use of identifiers, variables and expressions, and a range of data types.
-
Good programming style
-
Fundamental statistical concepts, including probability distribution functions, cumulative distribution functions, hypothesis testing, parameter estimation and model fitting
Subject Specific Intellectual
Having successfully completed this module, you will be able to:
-
Interpret experimental/observational results correctly
Transferable and Generic
Having successfully completed this module, you will be able to:
-
Analyse problems in a systematic manner and develop algorithms to solve them computationally
-
Design, run, debug and test computer programs
-
Use existing software libraries in your own code
Subject Specific Practical
Having successfully completed this module, you will be able to:
-
Write code to analyse and present experimental/observational data
Learning & teaching methods
The aim of this module is to give students practical skills, so the teaching and learning methods used are designed to accomplish this. Formal lectures will be used primarily to introduce key ideas and concepts, but even these will be illustrated with extensive practical/computational examples and visualizations. Most of the teaching will take place during extended "practical" sessions, during which students will be expected to carry out programming and data analysis tasks that are related to -- and illustrative of -- the concepts that are being explored in the module at that time. Ideally, the formal lecture content will take place immediately before or during these sessions, so that new theoretical concepts being introduced can immediately be explored in practice by students. Teaching support in the form of multiple demonstrators will be available during all sessions, so that one-on-one help is available as needed. Additional learning is expected to take place independently, again mostly in the form of practical programming and data analysis. Lecture notes and practical examples will be made available in the form of ipython notebooks.
Assessment methods
Attendance of all practical sessions is mandatory. Weekly laboratory performance marks will be assigned according to: 0 - failed to engage with the session adequately; 1 - attended and partly engaged with the material; 2 - attended and engaged fully with the material.
Method | Hours | Percentage contribution |
Programming project:
Students will be assigned a programming task and will have to design and implement an algorithm to carry this out. The resulting code will have to be fully documented and will be submitted online. The submitted code will be tested and assessed, with the marks contributing 30% to the overall module mark. | - | 20% |
Data analysis project:
Students will be assigned a practical data analysis problem, which they have to solve by designing and implementing a suitable algorithm in python. They will be expected to produce a brief, but complete scientific report on their work -- including the code and a interpretation of the results. This report will be assessed, with the marks contributing 70% to the overall module mark. | - | 60% |
Laboratory performance | - | 20% |
Referral Method: By set coursework assignment(s)