PHY2027 Scientific Programming in C 2017-18
Dr J.M. Rowe
Delivery Weeks: T1:01-11
Level: 5 (NQF)
Credits: 15 NICATS / 7.5 ECTS
Enrolment: 147 students (approx)


A knowledge of a computing language and how to write programs to solve physics related problems is a valuable transferable skill. It is taught though a series of practical sessions in which the student will initially learn to understand the logic of the source code and are required to modify the code for a number of prepared projects. This module yeaches the C programming lanaguage, but the principles involved are applicable to almost every procedural programming language.

This module provides a general introduction to programming in C and to the main elements of ANSI C. It is designed to give students the ability to write clearly structured, debuggable and maintainable computer programs in C and to be able to understand such programs written by others.

Module Aims

This module pre-dates the current template; refer to the description above and the following ILO sections.

Intended Learning Outcomes (ILOs)

A student who has passed this module should be able to:

Syllabus Plan

  1. Introduction
    Brief historical survey.
  2. ANSI C
  3. The Xcode Integrated Development Environment and C-compiler
  4. Local and global variables (integers, real, character)
  5. Arithmetic expressions, relational, logical, increment and decrement operators
  6. Input/output (formats, data files, etc.)
  7. Functions and program structure (standard functions, user-defined functions)
  8. Header files
  9. Arrays (strings, multidimensional arrays)
  10. Rounding errors and accuracy considerations
  11. Good programming practice
  12. Program design
  13. Data design
  14. Functions
    1. Variables and scope.
    2. Initialisation.
    3. Function Prototypes.
  15. Memory
    1. Pointers
    2. Arrays
    3. Memory allocation
  16. Structures
    1. Pointers to structures
    2. Using structures to pass data between functions
    3. Linked lists
  17. Projects
    A number of projects based upon the Stage 2 physics course. The background physics required for each project is provided for the student in the project description.

Learning and Teaching

Learning Activities and Teaching Methods

Description Study time KIS type
16×1-hour lectures 16 hours SLT
6×3-hour and 5×2-hour supervised computer labs 28 hours SLT
Directed self-study and project work 56 hours GIS
Reading to support own learning requirements 50 hours GIS


Weight Form Size When ILOS assessed Feedback
13% Homework assignment 8 hours Deadline Monday week T1:04 1-16 Written and verbal
13% Homework assignment 8 hours Deadline Monday week T1:06 1-16 Written and verbal
30% Programming Knowledge and Skills Test 1 hour 30 T1:06 1-9, 11, 13-16 Written and verbal
13% Homework assignment 8 hours Deadline Monday week T1:09 1-16 Written and verbal
31% Programming Project 32 hours Deadline Friday week T1:12 (Friday) 1-16 Written and verbal


The following list is offered as an indication of the type & level of information that students are expected to consult. Further guidance will be provided by the Module Instructor(s).

Core text:

Supplementary texts:


Further Information

Prior Knowledge Requirements

Pre-requisite Modules Mathematics Skills (PHY1025)
Co-requisite Modules none


Re-assessment is not available except when required by referral or deferral.

Original form of assessment Form of re-assessment ILOs re-assessed Time scale for re-assessment

Notes: Re-assessment is not available for this module.

KIS Data Summary

Learning activities and teaching methods
SLT - scheduled learning & teaching activities 44 hrs
GIS - guided independent study 106 hrs
PLS - placement/study abroad 0 hrs
Total 150 hrs
Summative assessment
Coursework 70%
Written exams 0%
Practical exams 30%
Total 100%


IoP Accreditation Checklist
  • Not applicable, this is an optional module.
Availability unrestricted
Distance learning NO
Keywords Physics; Program; Structures; Function; Codes; Project; Data; Computing; Ansi; Arrays; Designing.
Created 01-Oct-10
Revised 01-Oct-11