Undergraduate Course: Computer Modelling (PHYS09057)
|School||School of Physics and Astronomy
||College||College of Science and Engineering
|Credit level (Normal year taken)||SCQF Level 9 (Year 3 Undergraduate)
||Availability||Available to all students
|Summary||The course is a practical introduction to computational simulation techniques in physics, using the Python programming language. The rationale behind computer simulation will be introduced and the relationship between simulation, theory and experiment discussed. The course introduces good software development techniques, the algorithm/code design process and how to analyse/understand the results of simulations. Students are expected to work both individually and as part of a group. Assessment is by a series of individual exercises in semester 1 that lead to a group mini-project to write a full simulation code in semester 2. The final assessment is an individual write-up report. All material is available through Learn. All assessments are uploaded through Learn, with the first three exercises being marked by a demonstrator.
Computer Modelling is the Junior Honours follow-up course to the Scientific Programming component of Practical Physcs/Programming & Data Analysis. It aims to improve your python skills, and offer an understanding of computing as a key component of modern physics. The course begins with a traditional lecture, covering:
¿ Computer simulation and modelling as part of science
¿ Basic code and algorithm design
¿ Python3 refresher
From then on, the course takes a hands-in approach, with 3h lab sessions in the CPLab* that begin with short presentations. The presentations cover:
¿ Good programming practices
¿ An introduction to numpy
¿ Object-oriented programming
¿ Time integration
¿ N-body simulations
¿ Software design
Information for Visiting Students
|High Demand Course?
Course Delivery Information
|Academic year 2022/23, Available to all students (SV1)
|Learning and Teaching activities (Further Info)
Lecture Hours 2,
Supervised Practical/Workshop/Studio Hours 27,
Programme Level Learning and Teaching Hours 2,
Directed Learning and Independent Learning Hours
|Assessment (Further Info)
|Additional Information (Assessment)
||100% Coursework: uploaded checkpoints, source code and written reports.
Individual Checkpoints - 25%:
- Checkpoint 0 (0%, formative feedback, assessed in-class)
- Checkpoint 1 (10%)
- Checkpoint 2 (5%)
- Checkpoint 3 (10%)
Mini-project - 75%:
- Source Code Basic Functions (10%)
- Source Code (25%)
- Project Report (40%, individual)
||- Formative feedback for checkpoint 0, regarding Python programming skills and adherence to good programming practices.
- - Written feedback for checkpoints 1, 2 and 3.
- Written feedback for the project design document, regarding feasibility and efficiency of proposed project implementation.
- Written feedback for project source code, regarding its layout, functionality, performance and accuracy.
- Written feedback for individual project report, regarding the implementation, results, discussion, and style.
|No Exam Information
On completion of this course, the student will be able to:
- Explain the position of computer modelling in the scientific method, and name examples where it is the appropriate tool to use to solve certain physical problems.
- Be able to design algorithms and software to implement models of physical systems.
- Write simple, modular programs in Python, while adhering to good software development practices.
- Analyse critically and comprehensively the results of physical simulations, e.g. by interfacing with third-party visualisation packages, and comparisons to experimental and theoretical data.
- Work as part of a software development team, and resolve conceptual and technical difficulties by locating and integrating relevant information from a diverse range of sources.
|Graduate Attributes and Skills
|Additional Class Delivery Information
||One 2 hour lecture, followed by 9 lab sessions every other week
|Course organiser||Dr Joseph Zuntz
Tel: (0131 6)68 8262
|Course secretary||Miss Emma Summers
Tel: (0131 6)51 7524