Module overview
This module introduces the principles and practise of programming, with the assumption that students may not have any prior experience in programming. The teaching language is Python, as this is relatively accessible to new programmers, but also an important language for describing and coordinating computation in real-world problems. The module will introduce the key concepts of imperative and structured programming, and use examples of solving real-world problems with actual data inputs and outputs. By the end of the course, students should be competent programmers, and able to use programming as a tool to solve previously unseen problems.
Aims and Objectives
Learning Outcomes
Knowledge and Understanding
Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:
- Describe the use of encapsulation to hide implementation details
- Explain the behaviour of recursive functions
- Explain basic imperative programming constructs, including variables, statements, expressions, and functions
- Describe simple data structures including vectors, maps, and dictionaries
Subject Specific Practical Skills
Having successfully completed this module you will be able to:
- Use libraries and classes to access application-specific functionality
- Create and deliver functionally correct programs that meet a specification
- Implement and run interpreted programs that read and write files
- Install, manage, and use a command-line environment
Subject Specific Intellectual and Research Skills
Having successfully completed this module you will be able to:
- Model real-world entities using objects and data structures
- Convert a simple problem into a program specification
Transferable and Generic Skills
Having successfully completed this module you will be able to:
- Plan and record self-learning while performing practical work.
Syllabus
- Environment
- Command-line and REPL
- Version control
- Imperative programming
- Variables
- Branches
- Loops
- File-based IO
- Procedural programming
- Functions and arguments
- Scopes
- Recursion
- Lists, Tuples, Sets, and Maps
- Building Better Programs
- Testing and Error Handling
- Computational Thinking
- Software Design Principles
- Application Design
- Object-Oriented Programming
- Classes and objects
- Methods
- Encapsulation, Inheritance, and Polymorphism
- Maintenance
- Libraries
- Programming Style
Learning and Teaching
Teaching and learning methods
The module consists of:
- Lectures
- Guided self-study
- Labs as part of the AICE Lab Programme which will cover practical aspects
Type | Hours |
---|---|
Independent Study | 46 |
Completion of assessment task | 42 |
Lecture | 32 |
Specialist Laboratory | 30 |
Total study time | 150 |
Assessment
Summative
This is how we’ll formally assess what you have learned in this module.
Method | Percentage contribution |
---|---|
Computing assignment | 45% |
CAA Exam | 10% |
CAA Exam | 20% |
Computing Laboratories | 25% |
Referral
This is how we’ll assess you if you don’t meet the criteria to pass this module.
Method | Percentage contribution |
---|---|
Coursework | 45% |
CAA Exam | 30% |
Lab Marks carried forward | 25% |