IY1S414 - Programming for Cyber Security 01 Sep 2024 - 30 Jul 2030 | Version 0

Associated Module Information

Module Code: IY1S414
Module Title: Programming for Cyber Security
Faculty: Faculty of Computing, Engineering and Science
Faculty Group: Cyber Security
Faculty Sub Group: Cyber Security
Module Leader: Christopher Tubb
Module Team: Ashley Nute, Barbara Hayman, David Reed, Gaynor Davies, Robert James, Christopher Harrison, Michael Aubrey, Dafydd Griffiths
First Intended Intake: SEP 2024 Final Year of Intake: 2029
Date Closed:
Credit Value: 20 Credit Level: 4
Language: English
Percentage of Module Taught in Welsh: 0
Equivalent Module:
HECOS codes: 100376 - computer and information security 100956 - programming
HECOS Code Weighting: 40 60

Document Version Information

Version 0
Valid From 01 Sep 2024
Valid To 30 Jul 2030

Module Aims

To introduce the fundamentals of programming to engender an understanding of the factors associated with the development of applications, and the ability to customise and build simple applications. 

Content Summary

Paradigms: Procedural, Object Orientated, Functional, Scripting etc. 

Programming fundamentals; data types, control statements, functions, lists and sets, modules and files, algorithms, secure coding practice. 

Programming security issues. 

Examples of published exploits written in the delivery language (from CVE database). 

Testing code for security. 

Object-Orientated programming concepts. 

How to write secure code; Secure Software Development Lifecycle; Safecode, MS SDL, DevOps and testing methodologies, Security by Design principles 

Development and version control tools (Github) 

Learning and Teaching Methods

Activity Type Hours
Practical classes and Workshops 48
Independent Study 72
Direct Study (including online independent learning) 36
Formative Assessment (scheduled) 2
Groupwork 8
Interdisciplinary Work 10
Problem/Challenge based learning 24
Total Hours Selected 200

Learning Outcomes

# Learning Outcome
LO1 Apply program design and implementation techniques to satisfy a specific requirement.
LO2 Demonstrate a knowledge of security issues in relation to software development and how to write secure code.

Module Requisites

N/A

Assessment Criteria

Assessment Category Assessment Type Description Duration Word Count Weight (%) Best of? Pass Mark
Asynchronous Assessment Practical Coursework 1 (Asynch) Exercises undertaken in class or in laboratory aimed at assessing the application of knowledge, analytical, problem-solving, or evaluative skills 0 2000 40 No 40
Asynchronous Assessment Practical Written Work 1 A write up of a piece of practical work that has been undertaken. 0 2000 60 No 40

Assessment Matrix

Assessment Type Learning Outcomes
LO1 LO2
Practical Coursework 1 (Asynch)
Practical Written Work 1

Reading List

https://rl.talis.com/3/southwales/lists/40C5A9D9-7A2C-E3DF-5FF4-034D8338EF1B.html?lang=en&login=1 

 

Essential Reading: 

 

Parker, JR (2016), Python : An Introduction to Programming, Mercury Learning & Information, Bloomfield. Available from: ProQuest Ebook Central. 

 

Seitz, J (2014), Black Hat Python : Python Programming for Hackers and Pentesters, No Starch Press, Incorporated, San Francisco. Available from: ProQuest Ebook Central. 

 

Recommended Reading: 

 

Bradbury, A, Everard, B, & Winder, R (2014), Learning Python with Raspberry Pi, John Wiley & Sons, Incorporated, New York. Available from: ProQuest Ebook Central. 

 

Fankar Armash Aslam et al. (2015) Efficient Way Of Web Development Using Python And Flask. International journal of advanced research in computer science. 

 

Romano, F. (2018), Learn Python Programming : The No-Nonsense, Beginner's Guide to Programming, Data Science, and Web Development with Python 3. 7, 2nd Edition, Packt Publishing, Limited, Birmingham. Available from: ProQuest Ebook Central.