THE UNIVERSITY of EDINBURGH

DEGREE REGULATIONS & PROGRAMMES OF STUDY 2011/2012
- ARCHIVE for reference only
THIS PAGE IS OUT OF DATE

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. 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: 2011/12 Semester 1, Not available to visiting students (SS1) WebCT enabled:  Yes Quota:  None
Location Activity Description Weeks Monday Tuesday Wednesday Thursday Friday
King's BuildingsLecture1-11 14:00 - 14:50
King's BuildingsLecture1-11 14:00 - 14:50
King's BuildingsLaboratory1-11 10:00 - 10:50
First Class Week 1, Tuesday, 14:00 - 14:50, Zone: King's Buildings. Room 6206 JCMB
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
KeywordsPS
Contacts
Course organiserDr Judy Hardy
Tel: (0131 6)50 6716
Email: j.hardy@ed.ac.uk
Course secretary Yuhua Lei
Tel: (0131 6) 517067
Email: yuhua.lei@ed.ac.uk
Navigation
Help & Information
Home
Introduction
Glossary
Search DPTs and Courses
Regulations
Regulations
Degree Programmes
Introduction
Browse DPTs
Courses
Introduction
Humanities and Social Science
Science and Engineering
Medicine and Veterinary Medicine
Other Information
Timetab
Prospectuses
Important Information
 
© Copyright 2011 The University of Edinburgh - 16 January 2012 6:35 am