Programming 2

Module aims

  • Learn how to create a set of instructions for completing a specific task
  • Learn how to write, debug, compile, and run C++ code
  • Learn data structures
  • Learn object oriented programming
  • Learn algorithm design and implementation

Learning outcomes

Learning Outcomes - Knowledge and Understanding

  • Understand dynamic data structures and memory management in C++
  • Know how to create and use algorithms for ordering data structures
  • Understand concepts of data objects and the C++ class, function overloading, polymorphism

Learning Outcomes - Intellectual Skills

  • Appreciation of complexity in real-life problems
  • Feel competent to deal with complex and messy problems
  • Appreciation of the professional criteria of biomedical software development

Learning Outcomes - Practical Skills

  • Using C++, write, debug, compile, and run programs

Learning Outcomes - Transferable Skills

  • Learning: read purposefully, evaluate information 
  • Information gathering: locate information sources, extract relevant information 
  • Organisational: manage your time, manage a project, set aims and objectives 
  • Communication: present your solutions in a clear and professional way 
  • Problem solving: identify, define, analyse, be creative, make decisions

Module syllabus

  • Fundamentals of computers and programming in C++. 
  • Data and memory. Understanding expressions, literals, types, operators, etc.
  • Computing and parsing. How to process data, receive input and print output, parse strings, etc.
  • Flow of control. Decision and loop structures; passing to functions; command line processing; function overloading.
  • Modularity and file handling. How to work with header files and handle files.
  • Structures and classes. How to code with structures and classes. The life cycle of a class.
  • Object oriented programming. Principles of object-oriented programming, inheritance, polymorphism, etc.
  • Data structures.
  • Algorithms. Searching and sorting


BE1-HPROG1 Programming 1

Teaching methods

Lectures: 18 hours
Labs: 20 hours

Reading list


Module leaders

Dr James Choi