Programming Skills
This course is designed to help you to produce higher quality code that is readable, maintainable, usable, correct, and efficient in less time and with less effort. These programming skills are applicable to programs in any language and the course is illustrated with examples from C, Python, Fortran, and Java.
This online course covers best practices for scientific computing. It provides an introduction to operating systems, compilers and batch systems. Participants will learn how to write programs that are readable, maintainable and usable.
Participants will learn how to review code to identify bugs and share expertise. They will also learn how to debug using code browsers and debuggers. The course covers managing versions and collaborating using revision control. Participants will learn how to automate common tasks and build programs using a build tool. They will also learn about automated regression and unit testing to help ensure and maintain program correctness. The course covers profiling and performance analysis to identify and improve a program’s use of processing and memory resources. Participants will also learn about security, authentication and authorisation concepts, REST application programming interfaces and open source software.
This course is designed for individuals looking to enhance or refresh their programming skills.
By joining the course learners will gain a range of desirable programming skills including:
- Understanding how to build, run and develop software in a Linux/ Unix environment
- Evaluating and writing readable source code
- Analysing code and creating unit and regression tests
- Designing, implementing, analysing and writing-up software performance experiments
- Evaluating and applying software development tools including version control systems, code browsers, automated test frameworks and profilers.
This is an introductory/intermediate Masters-level course (SCQF Level 11). It develops your skills and/or provides a detailed overview of the subject – some foundational knowledge or experience is required. Please see the entry requirements for further details. Masters-level courses are relatively intensive and require independent learning, critical thinking, analysis, and reflection.
A UK 2:1 honours degree, or its international equivalent.
You must have experience in a programming language e.g. C, C++, Python, FORTRAN or Java. You must be familiar with programming concepts including conditionals, loops, arrays and functions. A knowledge of bash shell is highly recommended.
No knowledge of parallel programming is required. If you're unsure if you have the required level of programming please send your CV to upskilling@ed.ac.uk. Some of the above relevant prerequisite material will be made available for self-study, but will not be taught in classes.
- Understand how to build, run and develop software in a Linux/Unix environment
- Evaluate, and write, readable source code
- Analyse code and create unit and regression tests
- Design, implement, analyse and write-up software performance experiments
- Evaluate and apply software development tools including version control systems, code browsers, automated test frameworks and profilers
This is a 12-week course, comprising a total of 100 hours study (Lecture Hours 9, Online Activities 12, Feedback/Feedforward Hours 1, Programme Level Learning and Teaching Hours 2, Directed Learning and Independent Learning Hours 76).
Assessment is 100% coursework and is comprised of two pieces:
1. Develop code and automated tests (50%)
2. Measure and report performance of an application code (50%)
Each piece of coursework will be in one of the example languages of the course (C, Python, Fortran, and Java). Links and resources will be provided for those unfamiliar with the language.
Course fees for 23/24 are £1,065 but funded places are available for people employed or unemployed in Scotland (residency requirements apply).
Funding
Through the Scottish Funding Council (SFC) Upskilling Fund, a limited number of fully-funded places are available on Data Upskilling Short Courses at The University of Edinburgh.
Eligibility
Funded places are available to those who meet SFC fee waiver criteria:
“Courses/provision is open to all Scottish-domiciled/’home fee’ students, which is consistent with SFC’s policy for core funded student places. Students from the rest of the UK (rUK) are not normally considered eligible for SFC funding. If however a university is working with a Scottish/UK employer which has a physical presence or operating in Scotland, rUK employees of that employer would be eligible.”
If you are from outside Scotland, you need to have settled status in the UK and meet other residency criteria:
- be ordinarily resident in the United Kingdom, the Channel Islands or the Isle of Man for the three years immediately before course start date, and
- have ‘settled status’ in the UK (as set out in the Immigration Act 1971) at the course start date, and
- be ordinarily resident in Scotland at the course start date.
You can find out more about residency criteria on the SAAS website or in this summary
Funding eligibility will be assessed at the point of each application for each course; you may be asked to provide further information if you do not meet the general residence conditions. You can check your likely fee status here: https://www.ed.ac.uk/tuition-fees/fee-status/work-out Please email us at upskilling@ed.ac.uk if you would like to discuss your funding eligibility before applying.
Please note that full-time students (including full-time PhD students) are not eligible for funding.
You will receive a certificate of completion after the final assessment date if you have submitted your coursework.
Applications for September 2023 have now closed.
You may also be able to use credits achieved on this course towards other University of Edinburgh postgraduate programmes, subject to the approval of the relevant Programme Director:
Contact Us