This course aims to introduce you to the principles and techniques of securing computers and computer networks, with focus on Internet security. The course is effectively split into two parts: first introducing the theory of cryptography, including how many classical and popular algorithms work (e.g. DES, RSA, digital signatures); and second providing details of real Internet security protocols, algorithms and threats (e.g. IPsec, viruses, firewalls). Hence you will learn both theoretical aspects of computer and network security, as well as how that theory is applied in the Internet. This knowledge will help you in designing and developing secure applications and network protocols, as well as building secure networks.