In this unit, you will develop the core skills needed to turn real-world problems into clear, implementable software solutions. You will explore how programming languages operate within computer systems and learn how to choose an appropriate language for a given scenario. You will practise designing algorithms using pseudocode as a platform-agnostic method to express logic, structure solutions, and communicate design decisions before implementation.
You will apply problem decomposition, abstraction, and stepwise refinement to create and evaluate algorithm designs for practical tasks. Using contemporary AI tools and large language models (LLMs), you will learn how to draft and improve pseudocode, generate code in specified programming languages, and support debugging, testing, and documentation. You will also develop the critical judgement needed to verify AI-generated outputs, identify errors or limitations, and justify your final solutions in line with academic integrity and professional practice.
By the end of the unit, you will be able to design robust algorithmic solutions, present them effectively using pseudocode, and implement them as working programs using AI-supported development workflows
On successful completion of this unit, students will be able to:
Selected readings will be available in VU Collaborate.
This unit is studied as part of the following course(s):