CSC-44102 - Foundations of Programming and Software Engineering
Coordinator: Alastair Channon Room: CR035 Tel: +44 1782 7 34270
Lecture Time: See Timetable...
Level: Level 7
Credits: 15
Study Hours: 150
School Office: 01782 733075

Programme/Approved Electives for 2025/26

None

Available as a Free Standing Elective

No

Co-requisites

None

Prerequisites

None

Barred Combinations

None

Description for 2025/26

Programming is an essential skill in all areas of Computer Science. This module is specifically designed for students from non-computing backgrounds, building confidence and competence in programming, using Python, the most widely used programming language in the world. Through a series of closely supported practicals, you will gain an understanding of concepts such as Data Types, Variables, Functions and Control Structures, as well as the basics of Software Engineering and industry tools such as GitHub to manage your projects.

Aims
This module aims to enable students to:
- Develop Programming Skills: Equip students from non-computing backgrounds with fundamental programming skills using Python.
- Build Confidence and Competence: Foster confidence and competence in programming through hands-on practical sessions.
- Understand Core Concepts: Provide a solid understanding of key programming concepts such as Data Types, Variables, Functions, Recursion, Error Handling, and Control Structures.
- Introduce Software Development Practices: Introduce the basics of Software Engineering and software development practices.
- Utilize Industry Tools: Teach students to use industry-standard tools like GitHub for project management and version control.

Intended Learning Outcomes

implement common algorithms to solve programming problems using programming constructs and data structures: 1
design and implement practical applications using Python to meet a set of requirements: 1
demonstrate best practices and conventions for writing clean and efficient code: 1,2
utilise standard software engineering tools and techniques: 2

Study hours

12 hours interactive lectures
36 hours practicals
32 hours guided study
40 hours programming practice
30 hours assessment preparation

School Rules

None

Description of Module Assessment

1: Assignment weighted 80%
Programming Solution: Code and data
The assessment for this module will involve designing and implementing a comprehensive programming solution to a given problem. The submission for this component will be in the form of a zip file containing Python code and data files. This will be the equivalent of 4000 words.

2: Website weighted 20%
Programming Solution: Repository
The assessment for this module will involve designing and implementing a comprehensive programming solution to a given problem. The submission for this component will be in the form of a link to a GitHub repository where students have been committing regular versions of their code to. This will be the equivalent of 1000 words.