Postgraduate Course: Programming Skills (PGPH11079)
Course Outline
School | School of Physics and Astronomy |
College | College of Science and Engineering |
Course type | Standard |
Availability | Not available to visiting students |
Credit level (Normal year taken) | SCQF Level 11 (Postgraduate) |
Credits | 10 |
Home subject area | Postgraduate (School of Physics and Astronomy) |
Other subject area | None |
Course website |
None |
Taught in Gaelic? | No |
Course description | It is one thing to write a program. It is another to write a modular, robust, reliable, maintainable program upon which others can depend, and to be able to write it efficiently. This course provides you with practical experience of tools and techniques which will help you to become a more effective programmer. These fundamentals of good programming are applicable to any programming language. Examples are highlighted using C, Java and Fortran 90 to see how good practice applies to contrasting languages. Areas of specific relevance to HPC programming, including the use of batch systems, scientific libraries, profilers and performance analysis, are also covered.
The course covers the following topics:
-Linux/Unix tools useful to programmers - editors, file and process managers.
-How programs run - fundamentals of operating systems and compilers.
-Programming languages.
-C, Fortran 90 and Java - features, strengths and weaknesses.
-What makes a good program.
-How a program evolves - managing versions using source code repositories.
-Managing large programs - modularity and compiling multi-file programs with build tools.
-Testing programs using unit tests.
-Tracking down and fixing bugs - code browsing and debugging.
-Measuring speed and resource usage - profiling and performance.
-Running scientific codes as experiments.
-Using scientific libraries.
Lectures are followed by tutored practical sessions illustrating the key concepts. |
Entry Requirements (not applicable to Visiting Students)
Pre-requisites |
|
Co-requisites | |
Prohibited Combinations | |
Other requirements | None |
Additional Costs | None |
Course Delivery Information
|
Delivery period: 2012/13 Semester 1, Not available to visiting students (SS1)
|
WebCT enabled: Yes |
Quota: None |
Location |
Activity |
Description |
Weeks |
Monday |
Tuesday |
Wednesday |
Thursday |
Friday |
King's Buildings | Lecture | | 1-11 | | 14:00 - 14:50 | | | | King's Buildings | Lecture | | 1-11 | | | | | 14:00 - 14:50 | King's Buildings | Laboratory | | 1-11 | | | | | 10:00 - 10:50 |
First Class |
First class information not currently available |
No Exam Information |
Summary of Intended Learning Outcomes
On completion of this course you should be able to:
-Develop code in a Linux/Unix environment and understand the stages involved.
-Describe the features and relative strengths and weaknesses of C, Java and Fortran 90.
-Write code that is readable, understandable and maintainable.
-Write a modular program with code in multiple files and which calls external libraries.
-Use the make and ANT build tools to build multi-file programs.
-Use CVS and SVN to manage source code within a single repository.
-Write codes using a defensive style of programming to minimise bugs.
-Test and debug programs using a systematic and methodical approach.
-Understand the importance of performance and Amdahl's law.
-Undertake performance measurement and analysis of your codes.
-Collect "experimental" data from simulation codes. |
Assessment Information
100% Group-based Coursework |
Special Arrangements
None |
Additional Information
Academic description |
Not entered |
Syllabus |
Not entered |
Transferable skills |
Not entered |
Reading list |
Not entered |
Study Abroad |
Not entered |
Study Pattern |
Not entered |
Keywords | PS |
Contacts
Course organiser | Dr Judy Hardy
Tel: (0131 6)50 6716
Email: |
Course secretary | Yuhua Lei
Tel: (0131 6) 517067
Email: |
|
© Copyright 2012 The University of Edinburgh - 6 March 2012 6:26 am
|