Unlock the power of programming!
This course unit, led by Dr Gareth Henshall, aims to demystify the art of programming for those outside the realm of computer science.
Whether you're in business, humanities, or any other field, understanding programming fundamentals is a valuable skill in today's tech-driven world.
This course takes a practical approach, guiding you through the essentials of programming and demonstrating how it can be a game-changer in your specific area of study.
This unit is designed for those with zero programming and coding experience as we will go back to the very start and build from the ground up.
Work with students from across the University.
About
Equip yourself with the skills to thrive in an increasingly digital landscape
This course is designed to teach people from various backgrounds the basics of programming and how it can be applied in their specific fields.
- We'll start by looking at how programming is used in real-world situations, both in industry and academic settings.
- After that, we'll dive into hands-on learning to understand and create simple computer programs.

Unit details
What should I know about this unit?
Programming: What? Why? How?
Course Unit Code
UCIL22212
Course Unit Details
- 10 credits
- Department of Computer Science
- Level 2
This course aims to:
- Explain what a given (simple) program does, showing a good grasp of code structures and logic.
- Design programs to solve specific (simple) problems, emphasizing a practical approach to programming.
- Explore how programming fits into different fields of study, recognizing its importance across various disciplines.
- Identify and choose the right tools for different programming tasks, demonstrating an understanding of tool capabilities.
- Evaluate different programming styles and techniques, applying them to real-world situations for effective problem-solving.
By the end of this course, participants will have a solid understanding of programming basics and the skills to apply this knowledge in their chosen fields.
On successful completion of the unit you will be able to:
- Explain the fundamental concepts of programming, including variables, data types, and control structures.
- Identify and describe the role of algorithms and data structures in programming.
- Explain version control systems, such as Git, for collaborative coding and code maintenance.
- Articulate the software development life cycle and its various phases.
- Analyse and evaluate the functionality of given (simple) programs, demonstrating a critical understanding of code structures and logic.
- Apply problem-solving strategies to design programs that effectively address specific (simple) problems.
- Assess and compare different programming styles and techniques, understanding their implications in real-world scenarios.
- Evaluate and discuss the ethical and legal considerations related to programming, showcasing critical thinking skills.
- Write simple computer programs using appropriate programming languages.
- Apply coding best practices, including code readability, documentation, and maintainability.
- Demonstrate proficiency in using programming tools for various tasks and scenarios.
- Communicate effectively about programming concepts and solutions to both technical and non-technical audiences.
- Reflect on personal learning and assess progress in programming skills, fostering a mindset of continuous improvement.
- Exhibit adaptability and a willingness to learn new programming languages and technologies.
- Develop and demonstrate time management skills through the completion of coding exercises, projects, and assessments.
Themes for the unit are split into two main areas: What & Why and How.
The What and Why are likely to cover topics such as:
- A history of computing and programming
- What does it mean to be a programmer?
- What tools do we use for the job?
- What does programming really look like in industry (styles of work, project types, hacking)
- ChatGPT and other AI systems
- How does all of this apply to you and your discipline?
The How is likely to cover topics such as:
- State and Types
- Iterations & Selection
- File Handling
- Functions
- Packages and Libraries
- And more...
5 x Online Modules
Looking into the fundamental "What" and "Why" aspects of programming. These modules explore:
- The essence of programming,
- Breaking down its foundational elements, and
- Shedding light on its relevance
5 x Bi-Weekly Workshops
Each workshop two hours long, led by Dr Gareth Henshall, and will focus on the practical 'How' of programming.
Students will gain hands-on experience using the Python programming language. Additionally, they will be exposed to other languages, such as SQL for databases and HTML for websites.
10 x Lectures
Including guest lectures from esteemed academics and industry professionals representing diverse fields.
- Individual Programming Portfolio, automatically marked using Gradescope (60%)
- Code Analysis Group Presentation (40%)
Dr. Gareth Henshall, Lecturer of Computer Science
Excluded programmes include:
Computer Science, and any other programmes with introductory programming units already built into their curriculum. If you are unsure about your eligibility then please contact ucil@manchester.ac.uk. UCIL units are designed to be accessible to undergraduate students from all disciplines.
UCIL units are credit-bearing and it is not possible to audit UCIL units or take them for additional/extra credits. You must enrol following the standard procedure for your School when adding units outside of your home School.
If you are not sure if you are able to enrol on UCIL units you should contact your School Undergraduate office. You may wish to contact your programme director if your programme does not currently allow you to take a UCIL unit.
You can also contact the UCIL office if you have any questions.
How to enrol
UCIL units are designed to be accessible to undergraduate students from all disciplines. Depending on your School enrolment can be completed in one of two ways:
Enrolment using the Course Selection System
You may be able to enrol directly onto a UCIL unit using the Course Unit Enrolment System.
Enrolment via your School
If you cannot see the UCIL unit you wish to study or it is blocked out on the Course Unit Enrolment System you may need to request approval to study the unit directly from your School.
Please get in touch with the UCIL team at ucil@manchester.ac.uk if you have any questions.