Postgraduate Course: Programming Skills (PGPH11079)
|School||School of Physics and Astronomy
||College||College of Science and Engineering
|Credit level (Normal year taken)||SCQF Level 11 (Postgraduate)
||Availability||Not available to visiting students
|Summary||Writing code can be easy. Writing modular, robust, reliable, maintainable, efficient and understandable code can be more challenging. This course provides a practical introduction to skills and knowledge covering program design and development. It is designed to help you to produce higher quality code, more rapidly and with less effort. These programming skills are applicable to any programming language and the course is illustrated with examples from C, Fortran 90, Java and Python. Areas of specific relevance to high-performance computing, including the use of batch systems, scientific libraries, profilers and performance analysis, are also covered.
Lectures cover key aspects of good programming practice:
* How programs run - fundamentals of operating systems and compilers.
* What makes a good program - writing programs for people.
* Code design - abstract data types and object-orientation.
* Automated testing.
* Analysis, profiling and performance.
You must have some experience in a programming language e.g. C, C++, FORTRAN, Java or Python, and be familiar with programming concepts including conditionals, loops, arrays and functions.
Entry Requirements (not applicable to Visiting Students)
||Other requirements|| You must have experience in a programming language e.g. C, C++, FORTRAN, Java or Python, and be familiar with programming concepts including conditionals, loops, arrays and functions.
Course Delivery Information
|Academic year 2015/16, Not available to visiting students (SS1)
|Learning and Teaching activities (Further Info)
Lecture Hours 14,
Seminar/Tutorial Hours 7,
Programme Level Learning and Teaching Hours 2,
Directed Learning and Independent Learning Hours
|Additional Information (Learning and Teaching)
Please contact the School for further information
|Assessment (Further Info)
|Additional Information (Assessment)
||Three submissions: 20% individual report, 60% group-based source code, 20% individual report.
|No Exam Information
On completion of this course, the student will be able to:
- Develop code in a Linux/Unix environment.
- Develop code that is modular, robust, reliable, maintainable, efficient and understandable.
- Use software development tools including integrated development environments, code browsers, debuggers, revision control, build management, test frameworks, and profilers.
- Design, execute, analyse and write-up software performance experiments.
|Graduate Attributes and Skills
|Course organiser||Dr Michael Jackson
|Course secretary|| Yuhua Lei
Tel: (0131 6) 517067
© Copyright 2015 The University of Edinburgh - 18 January 2016 4:37 am