Bachelor of Science (BSc)

BSc Computer Science and Mathematics

One of the most sought-after subject combinations in industry, this course is designed to provide the perfect balance of creativity and logic.
  • Duration: 3 years
  • Year of entry: 2025
  • UCAS course code: GG14 / Institution code: M20
  • Key features:
  • Scholarships available

Full entry requirementsHow to apply

Course unit details:
Introduction to Programming 1

Course unit fact file
Unit code COMP16321
Credit rating 20
Unit level Level 1
Teaching period(s) Semester 1
Available as a free choice unit? No

Overview

This course offers a comprehensive introduction to programming through Python, one of the most accessible and widely used programming languages today. Students will explore core programming concepts including variables, control structures, functions, file handling, and modular design. The curriculum also covers practical skills such as using libraries, building graphical user interfaces, implementing animations, and visualising data. With an emphasis on writing maintainable and secure code, students will gain the confidence to analyse, design, and implement solutions to real-world problems. Through a blend of foundational theory and hands-on coding experience, this course equips learners with the essential tools and mindset to begin their journey as capable, problem-solving developers.

Pre/co-requisites

Unit title Unit code Requirement type Description
Introduction to Programming 2 COMP16412 Co-Requisite Compulsory
COMP16321 has co-requisite of COMP16412

Aims

The aim of this course unit is to provide students with a solid foundation in programming principles, practices, and problem-solving techniques, using Python as a modern, versatile, and widely adopted programming language.


The course introduces programming as a key computational thinking skill, enabling students to analyse problems, design algorithms, and translate these into functional, maintainable code. It explores the fundamental constructs of programming variables, data types, control flow, and modular design while also encouraging an understanding of how these constructs manifest in different programming paradigms and languages.
A strong emphasis is placed on structured and maintainable code development, including the use of functions, libraries, and file handling to build reusable, efficient solutions. Students will gain practical experience using standard development tools and environments, and will learn how to structure projects for clarity, scalability, and reuse.
The course explores user interaction through graphical user interfaces (GUIs) and introduces techniques for creating visual and animated content using Python libraries. These experiences are supported by an introduction to secure coding practices, including input validation, error handling, and awareness of common vulnerabilities in software development.


Object-oriented programming (OOP) is introduced as a key approach to structuring more complex programs, providing a foundation for future software development. Students will learn basic class design and encapsulation, setting the stage for further exploration in more advanced modules.


The course also introduces data visualisation, enabling students to present and interpret data effectively using Python libraries. This supports not only programming skill development but also broader competencies in communication and analytical thinking.
Throughout the course, students will apply their learning through hands-on programming exercises and projects, gradually developing the ability to design, implement, evaluate, and refine software solutions. By the end of the unit, students will be well-equipped to continue their programming journey with confidence and a clear understanding of the tools, techniques, and mindsets required for success.
 

 

Learning outcomes

On the successful completion of the course, students will be able to: 
ILO 1: Explain basic programming constructs and describe their manifestation in different programming languages. 
ILO 2: Explain what a given (simple) program does. 
ILO 3: Design programs to solve given (simple) problems. 
ILO 4: Implement maintainable solutions to problems using appropriate development tools. 
ILO 5: Evaluate the quality of code (correctness, maintainability, efficiency). 
ILO 6: Estimate the development time needed to implement a solution to a problem. 
ILO 7: Identify appropriate programming resources (tools, libraries) needed to implement a solution to a problem.
 

 

 

Syllabus

Week 1: Variable, States & Types
Week 2: Selection & Iteration
Week 3: File Handling
Week 4: Functions
Week 5: Packages & Libraries
Week 6: Reading Week
Week 7: Graphics & User Interfaces
Week 8: Graphics & Animation
Week 9: Secure Coding
Week 10: General Intro to OOP
Week 11: Data Visualisation in Python
 

Teaching and learning methods

Lectures [10 in total]
Videos [ various each week]
Workshops [8 in total]
Drop-In Laboratory Session [1 per week]
Formative Quizzes [1 per week]
Additional Reading 
 

Employability skills

Analytical skills
Innovation/creativity
Project management
Oral communication
Problem solving
Written communication

Assessment methods

Method Weight
Written exam 50%
Practical skills assessment 50%

Feedback methods

Workshops, Drop-In Labs, Discussion Boards, Formal through Coursework

Recommended reading

We do not use a recommended textbook instead providing various resources including articles, papers and blogs throughout the semester.

Study hours

Scheduled activity hours
Assessment written exam 2
Lectures 10
Practical classes & workshops 18
Independent study hours
Independent study 170

Teaching staff

Staff member Role
Gareth Henshall Unit coordinator

Return to course details