Principles and Practice of Programming - COMP70083
Aims
This module aims to allow you to understand and grasp the principles of programming, and to be able to apply your skills to design and implement solutions to computational programming problems. You will learn to design and implement your solutions starting from a problem specification, both in a procedural manner and in an object-oriented manner. You will be given the opportunity to practice writing programs and to apply methods and techniques learned through laboratory sessions, coursework, and frequent and regular feedback.
Role
Course Leader
Principles of Distributed Ledgers - COMP70017
Aims
Decentralised ledgers, such as Bitcoin and Ethereum, have gained considerable popularity, attracting the attention of academics, entrepreneurs, and policy-makers. They promise new disruptive markets, and revolutionise how we think of money and financial infrastructure. In this module you will have the opportunity to explore the foundational principles behind decentralised ledgers and learn about current research in cryptocurrencies. This will include the foundations of distributed computing, applied cryptography and incentive mechanisms.
Most topics discussed during the module require a general knowledge of computer networks, distributed systems and programming languages.
Recommended (not required) prerequisites: Networks and Communications, Network and Web Security, Cryptography Engineering
Related modules (if running): Privacy Engineering, Scalable Systems and Data, Systems Verification, Advanced Databases, Distributed Algorithms
Role
Course Leader