- UCAS course code
- GG14
- UCAS institution code
- M20
Bachelor of Science (BSc)
BSc Computer Science and Mathematics
- Typical A-level offer: A*A*A including specific subjects
- Typical contextual A-level offer: AAA including specific subjects
- Refugee/care-experienced offer: AAB including specific subjects
- Typical International Baccalaureate offer: 38 points overall with 7,7,6 at HL, including specific requirements
Course unit details:
Introduction to Programming 1
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 |
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 |