Module Information

Module Identifier
Module Title
Introduction to Programming
Academic Year
Semester 1
Exclusive (Any Acad Year)
Reading List
Other Staff

Course Delivery



Assessment Type Assessment length / details Proportion
Semester Assessment 30 Hours   Assignment relevant to degree scheme  70%
Semester Exam 1.5 Hours   Online Exam  30%
Supplementary Assessment 30 Hours   One assignment  70%
Supplementary Exam 1.5 Hours   Online Exam  30%

Learning Outcomes

On successful completion of this module students should be able to:

Describe and explain the types and uses of variables.

Apply abstraction to a design problem, resulting in code that uses functions for separation and reuse of functionality.

Design and implement programs to solve problems relevant to their degree scheme.

Use third party code and libraries as part of their software solution, and to understand the relevance of software licenses and IPR attribution.

Brief description

This module will provide a common baseline of programming skills to all students on single honours degree schemes. Students will be taught the code programming skills using a small form factor lightweight computing platform such as the Arduino platform and development environment. This module will provide the foundation for CS12320 Programming Using An Object-oriented Language.


This module will introduce students to procedural programming, covering the use of variables, conditionals and loops and the structure of a program. The first 5 weeks will be lecture driven with supporting practical sessions. Weeks 5-10 of the course will be project based, with periods of lecture and practical work mixed within practical sessions. Students will be allocated to project groups based on their degree scheme, and will cover the same core material within a project that is tailored to their scheme.


Week 1 - introduction to the hardware and programming environment. Variables and arithmetic. Providing user output.
Week 2 and 3 - Conditional statements, Loops and arrays. Reading user input. C operators. Handling different data types (text vs. numeric)
Week 4 - functions and parameters. Breaking down a problem into reusable chunks.
Week 5 - Hardware interaction with onboard functionality. Persistent storage using EEPROM.
Week 6 - 10 - Tutorial style project-based practicals
The students will be split into project groups by degree scheme, and each project group's work will be designed by an academic involved in that topic area. Different projects will cover the following topics, but in an order that is relevant to that project.
  • Learning by repetition of software design and implementation
  • The use of structs
  • Pointers
  • The use of libraries and other third party code.
  • Communication between devices, and creating a communication protocol that is relevant to their project.
  • These projects will cover the same core ground but with applications tailored by degree scheme. Week 11 - review lectures

Module Skills

Skills Type Skills details
Application of Number Inherent to the subject.
Improving own Learning and Performance Learning and performance is improved through feedback.
Information Technology Inherent to the subject.
Personal Development and Career planning This module provides more information on what computer scientists do, and practical experience related to the students' degree scheme.
Problem solving Developed solving design problems
Research skills Developed through basic computer use
Subject Specific Skills This module gives a better appreciation of a topic relevant to the degree scheme and an understanding of different areas of computer science.
Team work Students will work together on communication protocols in project practicals.


This module is at CQFW Level 4