Timetable information in the Course Catalogue may be subject to change.

University Homepage
DRPS Homepage
DRPS Search
DRPS Contact
DRPS : Course Catalogue : School of Geosciences : Earth Science

Undergraduate Course: Scientific Computing Skills (EASC11005)

Course Outline
SchoolSchool of Geosciences CollegeCollege of Science and Engineering
Credit level (Normal year taken)SCQF Level 11 (Year 5 Undergraduate) AvailabilityNot available to visiting students
SCQF Credits20 ECTS Credits10
SummaryMEarthPhys students undertake a major 5th year project in Geophysics and/or meteorology, spread over two semesters. These projects can be drawn from a diverse range (reflecting staff research interests). Many involve interfacing with existing software for analysing data, using a variety of programming languages. Building on such existing software is often essential to meaningful progress in the research project. No programming language has been identified as a standard that all students can be taught and that would serve for all potential projects. Furthermore, the only language that students have been taught so far is an interpreted data-analysis language. A professional scientist should also have been exposed to traditional compiled languages (C, Fortran etc.) and should understand some of the differences between the two types of language. Some, but not all, students will therefore be faced with a significant need to gain skills in programming as well as learning the geophysics/meteorology relevant to their project. This course is intended to ensure due credit is available to students for achieving that up-skilling in scientific computing, while allowing all project work to be assessed on a common basis (i.e., assuming no limitations arising from difficulty in acquiring computing skills). Students will thus take this course as a means of gaining the scientific computing skills that are necessary to the performance of their level 11 research project, i.e., they will follow an individually agreed approach to learning the programming language necessary for their project. The approach to learning could include auditing or taking courses within the University where relevant and available (in which case credits would not be double counted). More commonly, a number of reasonably demanding tasks will be devised requiring data reading, data manipulation and programming of mathematical operations. Each student will develop code in both a compiled language and a data-analysis language in order to achieve their agreed tasks in their particular programming environments, the scale of the tasks being intended to require ~200 hours of effort. Where the student's project does not require both a compiled and a data-analysis language, the languages to be used will be selected by the CO. As well as providing students with scientific computing experience explicitly on their transcript, the student experience should be enhanced in that students will not be dissuaded from choosing projects requiring mature computing skills.
Course description Note that this schedule is for illustrative purposes only. Material covered will vary from year to year depending on the requirements of the students for their research project, the availability of IS-provided training courses etc.

Week 1: No class, instructor on 4th-year geophysics field course
Week 2: The nature of computing. What is a computer, and how does it work? Data formats. ASCII text vs raw binary vs self-describing binary (HDF, NetCDF etc).
Week 3: Languages. Compiled vs interpreted. Getting started with a compiled language. First assessed exercise handed out.
Week 4: More on compiled languages: modules, functions, subroutines, debugging.
Week 5: Presentation of data. Caption vs legend. Colour scales etc. Second assessed exercise handed out.
Week 6: More on Languages. Styles: procedural vs functional vs object-oriented. Documenting of code. It isn't just the comments. How good structure leads to readability.
Week 7: Packaging of code. What to do with a source tar file. How to make one. How code is packaged up in the languages of choice (e.g. R packages)
Week 8: Graphics formats, and how to hack them. Images vs vector graphics. How to avoid your figures getting in a mess once they are in a document. Deadline for first assessed exercise.
Week 9: Other stuff we do with computers
Week 10: Held in reserve
Week 11: Deadline for second assessed exercise.

Further Course Information

Entry Requirements (not applicable to Visiting Students)
Pre-requisites Students MUST have passed: Mathematical and computational methods in Geophysics (EASC09054)
Co-requisites Students MUST also take: Geoscience Research Project (GESC11002)
Prohibited Combinations Other requirements None
Additional Costs None
Course Delivery Information
Academic year 2023/24, Not available to visiting students (SS1) Quota:  None
Course Start Semester 1
Timetable Timetable
Learning and Teaching activities (Further Info) Total Hours: 200 ( Lecture Hours 20, Programme Level Learning and Teaching Hours 4, Directed Learning and Independent Learning Hours 176 )
Assessment (Further Info) Written Exam 0 %, Coursework 100 %, Practical Exam 0 %
Additional Information (Assessment) Assessment details
Written Exam: 0%, Course Work: 100 %, Practical Exam: 0%.

Additional information (assessment)

The coursework consists of two extended programming exercises. Each exercise is worth 50% of the total mark The first exercise is set by the CO and done by the whole class in a compiled programming language. The second exercise is set by your project supervisor, so each student will carry out a different task.

Assessment deadlines

Formative computing tasks: weeks 2--5
First assessment: Week 8
Second assessment: Week 11

Assessment and Feedback information
All details related to extensions procedures and late penalties can be found in the School of GeoSciences General Information Handbook 2016-17
Feedback A short coding exercise in Fortran will be set every week for the first few weeks. Students will be expected to hand their code in for rapid feedback
Weekly classes will consist of small-group discussions allowing verbal feedback.
The first assessed exercise is set and marked early enough in the semester to provide useful feedback for the second exercise.

Examples of feedback can be found here:
No Exam Information
Learning Outcomes
On completion of this course, the student will be able to:
  1. Understand the difference between a compiled language and an interpreted language, and appreciate which class of languages is suited to which sorts of problems.
  2. Achieve tasks involving data handling, mathematical manipulation, and data visualisation, in one of Matlab, IDL, Python/numpy/matplotlib, R, PerlDL (or another interpreted data-analysis language).
  3. Achieve tasks involving numerical analysis/modelling in one of C, Fortran, Java or another compiled language.
  4. Use strategies for structuring and testing scientific computing code.
  5. Write code which is appropriately commented and documented.
Reading List
Additional Information
Graduate Attributes and Skills Not entered
KeywordsProgramming. Data analysis.
Course organiserDr Hugh Pumphrey
Tel: (0131 6)50 6026
Course secretaryMr Johan De Klerk
Tel: (0131 6)50 7010
Help & Information
Search DPTs and Courses
Degree Programmes
Browse DPTs
Humanities and Social Science
Science and Engineering
Medicine and Veterinary Medicine
Other Information
Combined Course Timetable
Important Information