PHY2027 Scientific Programming in C 2020-21
Prof. R.J. Hicken
 
Delivery Weeks: T1:01-11
Level: 5 (NQF)
Credits: 15 NICATS / 7.5 ECTS
Enrolment: 60 students (approx)

Description

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 language, but the principles involved are applicable to almost every procedural programming language.

Module Aims

This module aims to give students the ability to write clearly structured, debuggable and maintainable computer programs in ANSI C and to be able to understand such programs written by others.

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
11×1-hour lectures 11 hours SLT
11×2-hour supervised computer labs 22 hours SLT
Directed self-study and project work 56 hours GIS
Reading to support own learning requirements 61 hours GIS

Assessment

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

Resources

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:

ELE:

Further Information

Prior Knowledge Requirements

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

Re-assessment

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
Programming Knowledge and Skills Test Test (1hr 30min) 30% wt 1-9, 11, 13-16 August/September assessment period
Programming Project and Homework Assignments Programming Project (32 hours) 70% wt 1-16 August/September assessment period

KIS Data Summary

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

Miscellaneous

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 27-Jun-19