Archive for reference only

University Homepage
DRPS Homepage
DRPS Search
DRPS Contact
DRPS : Course Catalogue : School of Physics and Astronomy : Postgraduate (School of Physics and Astronomy)

Postgraduate Course: Programming Skills (PGPH11079)

Course Outline
SchoolSchool of Physics and Astronomy CollegeCollege of Science and Engineering
Course typeStandard AvailabilityNot available to visiting students
Credit level (Normal year taken)SCQF Level 11 (Postgraduate) Credits10
Home subject areaPostgraduate (School of Physics and Astronomy) Other subject areaNone
Course website None Taught in Gaelic?No
Course descriptionIt 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, to do more, to a higher degree of quality in less time and with less effort. These fundamentals of good programming are applicable to any programming language. Examples are highlighted using C, Java, Fortran 90 and Python 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:
1.Useful Linux/Unix tools for programmers - editors, file and process managers, shell scripting.
2.How programs run - fundamentals of operating systems and compilers.
3.What makes a good program - choosing a language, strengths and weaknesses of C, Fortran 90 and Java, good design, layout and commenting.
4.Writing code using an editor versus using an integrated development environment.
5.Tracking down and fixing bugs using code browsers and debuggers.
6.Using source code repositories to save everything you write and to collaborate within a team.
7.Using unit tests to the ensure correctness, robustness and scalability of your code.
8.Using build tools to manage multi-file programs and save time.
9.Profiling your code to measure performance and resource usage.
10.Running scientific codes as experiments.
11.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: 2013/14 Semester 1, Not available to visiting students (SS1) Learn enabled:  Yes Quota:  40
Web Timetable Web Timetable
Course Start Date 16/09/2013
Breakdown of Learning and Teaching activities (Further Info) Total Hours: 100 ( Lecture Hours 22, Seminar/Tutorial Hours 11, Programme Level Learning and Teaching Hours 2, Directed Learning and Independent Learning Hours 65 )
Additional Notes Please contact the School for further information
Breakdown of Assessment Methods (Further Info) Written Exam 0 %, Coursework 100 %, Practical Exam 0 %
No Exam Information
Summary of Intended Learning Outcomes
On completion of this course you should be able to:
1. Develop code in a Linux/Unix environment and understand the stages involved.
2. Write code that is readable, understandable and maintainable.
3. Write a modular program with code in multiple files and which calls external libraries and understand why this should be done
4. Use the make and ANT build tools to build multi-file programs.
5. Use Subversion and Git to manage source code within a single repository.
6. Write codes using a defensive style of programming to minimise bugs.
7. Test and debug programs using a systematic and methodical approach.
8. Understand the importance of performance and Amdahl's law.
9. Undertake performance measurement and analysis of your codes.
10. Collect "experimental" data from simulation codes.
Assessment Information
100% group-based coursework
Special Arrangements
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
KeywordsPS (S1)
Course organiserDr Michael Jackson
Course secretary Yuhua Lei
Tel: (0131 6) 517067
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
© Copyright 2013 The University of Edinburgh - 13 January 2014 4:53 am