Undergraduate 

Physics / Theoretical Physics BSc/MSci

Physics 2T: Programming Under Linux PHYS2003

  • Academic Session: 2024-25
  • School: School of Physics and Astronomy
  • Credits: 10
  • Level: Level 2 (SCQF level 8)
  • Typically Offered: Semester 2
  • Available to Visiting Students: Yes
  • Collaborative Online International Learning: No

Short Description

Provides students with a solid grounding in C programming, together with an understanding of the use of the LINUX operating system and experience of using the tools available under LINUX for C programming.

Timetable

The lectures will be on Tuesdays and Thursdays at 14:00 during Semester 2. During enrolment, students will need to register for one of the supervised laboratory sessions that are offered on Monday, Wednesday, and Friday afternoons.

 

The laboratory will also be available to students at other times during weekdays provided the PCs are not in use by another timetabled class.

Assessment

Practical work 25%, Programming test 25%, Degree examination 50%

Main Assessment In: April/May

Course Aims

The aims of the course are to provide students with a solid grounding in C programming, together with an understanding of the use of the LINUX operating system and experience of using the tools available under LINUX for C programming.

Intended Learning Outcomes of Course

By the end of the course, students should be able to:

 

1) Compose multi-file C programs to solve moderate tasks, conforming to the latest published edition of the C standard, in the procedural paradigm, with good style.

2) Understand the three stage (preprocessor, compiler, linker) paradigm for C compilation.

3) Analyse C programs written by others, determining both the intent of the program and its components, and bugs and flaws in its implementation.

4) Recall useful functions from the C Standard Library, including those for I/O and Pseudo-Random number generation (amongst others).

5) Apply knowledge of the BASH shell to complete tasks in the Linux operating system; locating, accessing and manipulating files.

6) Compose single-file BASH programs to solve simple tasks, in a procedural paradigm, with good style.

7) Understand the Linux model for processes, applying this to manipulate processes' inputs and outputs to compose them into functional chains.

8) Apply tools for building and managing software to automate aspects of C compilation, and understand their use to debug or manage changes in programs.

Minimum Requirement for Award of Credits

A minimum of 50% of the laboratory projects must be submitted. The practical test and written exam must be taken.