Undergraduate Course: Scientific Computing Skills (EASC11005)
Course Outline
School | School of Geosciences |
College | College of Science and Engineering |
Credit level (Normal year taken) | SCQF Level 11 (Year 5 Undergraduate) |
Availability | Not available to visiting students |
SCQF Credits | 20 |
ECTS Credits | 10 |
Summary | MEarthPhys 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: 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 2: Languages. Compiled vs interpreted. Getting started with a compiled language. First assessed exercise handed out.
Week 3: No class, instructor on 4th-year geophysics field course.
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.
|
Course Delivery Information
|
Academic year 2024/25, 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.
http://www.ed.ac.uk/student-administration/exams/regulations/common-marking-scheme
Assessment deadlines:
Formative computing tasks: weeks 2--5
First assessment: Week 8, Thursday
Second assessment: Week 11, Thursday
Students must attain an overall mark of 40% (or above) to pass the course. |
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: http://www.ed.ac.uk/schools-departments/geosciences/teaching-organisation/staff/feedback-and-marking
|
No Exam Information |
Learning Outcomes
On completion of this course, the student will be able to:
- Understand the difference between a compiled language and an interpreted language, and appreciate which class of languages is suited to which sorts of problems.
- 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).
- Achieve tasks involving numerical analysis/modelling in one of C, Fortran, Java or another compiled language.
- Use strategies for structuring and testing scientific computing code.
- Write code which is appropriately commented and documented.
|
Additional Information
Graduate Attributes and Skills |
Programming, data analysis, other computing skills. |
Keywords | Programming. Data analysis. |
Contacts
Course organiser | Dr Hugh Pumphrey
Tel: (0131 6)50 6026
Email: Hugh.Pumphrey@ed.ac.uk |
Course secretary | Mr Johan De Klerk
Tel: (0131 6)50 7010
Email: johan.deklerk@ed.ac.uk |
|
|