Introduction to Programming 1
| Unit code | COMP16321 |
|---|---|
| Credits | 20 |
| Unit level | Level 1 |
| Teaching period(s) | Semester 1 |
| Offered by | Department of Computer Science |
Overview
Programming is a core skill in the digital era, underpinning innovation in virtually every domain of computing, from web and mobile apps to scientific research and intelligent systems. This unit introduces students to the foundational concepts of programming through Python, a widely-used and versatile programming language known for its readability and broad ecosystem.
The course begins by exploring the building blocks of programming: variables, data types, and control structures such as selection and iteration. From these fundamentals, students’ progress into practical techniques like file handling and modular programming using functions. They will learn to structure their programs using functions, leverage external libraries and packages, and apply best practices for writing clean, maintainable, and secure code.
As students gain confidence, they will investigate more applied topics such as graphical interfaces and animation, enabling the development of interactive applications. Object-oriented programming principles will be introduced to illustrate how complex software systems are structured and maintained. The course also places a strong emphasis on real-world applicability, teaching secure coding practices and exploring how to visualize data effectively, skills increasingly vital across industries.
Throughout the unit, students will not only learn how to write Python programs, but also how to think computationally, analysing problems, designing algorithmic solutions, and evaluating code quality in terms of performance, maintainability, and correctness. They will build confidence in estimating development effort, selecting appropriate libraries and tools, and reflecting on the purpose and structure of existing code.
By combining theory, hands-on programming, and creative problem-solving, this unit equips students with the essential skills to begin their journey as confident, capable software developers.
Pre/co-requisites
| Unit title | Unit code | Requirement type | Description |
|---|---|---|---|
| Introduction to Programming 2 | COMP16412 | Co-Requisite | Compulsory |
COMP16412 is a co-requisite which means it must be taken with this unit.
Aims
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.
Learning outcomes
ILO 1: Evaluate the quality of code (correctness, maintainability, efficiency).
ILO 2: Estimate the development time needed to implement a solution to a problem.
ILO 3: Explain what a given (simple) program does.
ILO 4: Design programs to solve given (simple) problems.
ILO 5: Explain basic programming constructs and describe their manifestation in different programming languages.
ILO 6: Identify appropriate programming resources (tools, libraries) needed to implement a solution to a problem.
ILO 7: Implement maintainable solutions to problems using appropriate development tools.
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 | 70% |
| Practical skills assessment | 30% |
Feedback methods
Workshops, Drop-In Labs, Discussion Boards, Formal through Coursework
Study hours
| Scheduled activity hours | |
|---|---|
| Assessment written exam | 2 |
| Lectures | 11 |
| Practical classes & workshops | 22 |
| Work based learning | 40 |
| Independent study hours | |
|---|---|
| Independent study | 125 |
Teaching staff
| Staff member | Role |
|---|---|
| Gareth Henshall | Unit coordinator |
