The aim of the module is to deepen the students' understanding of fundamental programming concepts and introduce more advanced concepts for applications development. Throughout the module, the concepts will be contextualised through case studies relevant to the students' programmes of study, namely cybersecurity, digital forensics and networking. Additionally, the module integrates some fundamental aspects of mathematics, particularly discrete maths, which are important in Computing and Cybersecurity. Python is used throughout as this is a general purpose programming and scripting language which is used extensively in computer security and related fields. The syllabus includes topics such as:• Introduction to Python and Building Applications using a general purpose scripting language• Functions, Modules, packages and libraries• Coding and scripting techniques including Exception handling, Testing and Debugging• Working with external data and applications (e.g. text files, databases, network traces)• Algorithms, including examples such as searching and sorting• Measuring the efficiency of algorithms - theoretically (Big-O) and practically (e.g. by timing code)• Mathematical and stochastic concepts including permutations, sampling and randomness, and generation of random numbers and assessment of their suitability in cryptographyExample case studies:• Encryption and Decryption using a simple algorithm such as Caesar cipher;• Cracking passwords - brute force and dictionary attacks;• Web reconnaissance – e.g. scraping email addresses and links from websites;• Network traffic analysis – working with network logs to extract traffic patterns, mapping the geolocation of IP addresses.• Comparison of the performance of several algorithms, e.g. spell-checking.