Skip to main content Skip to navigation

WM187-15 Programming for Cyber Security

Department
WMG
Level
Undergraduate Level 1
Module leader
Bharath Sadasivaiah
Credit value
15
Module duration
10 weeks
Assessment
40% coursework, 60% exam
Study location
University of Warwick main campus, Coventry

Introductory description

Fluency in the process of software development is a prerequisite to the study of much of the remainder of this programme. In order to use computers to solve cyber security problems effectively, students must be competent at reading and writing programs in multiple programming languages. This module brings together fundamental concepts and skills related to the software development process. As such, this module provides a foundation for other software-oriented aspects of the programme: programming languages for cyber security, data science for algorithms and complexity in the cyber context, and the cyber context of software engineering. This module focuses on the cyber context of the entire software development process, identifying those concepts and skills that should be mastered in the first year of the programme. This includes the design and simple analysis of fundamental programming concepts and data structures, and basic software development methods and tools. A significant feature of the module is the use of group development projects. A single programming language and development environment will be used to exemplify the abstract concepts being developed. There will necessarily be some significant proportion of the module's independent study time being spent gaining familiarity with the language and its associated environment.

Module aims

To introduce, develop, and affirm fundamental programming knowledge and skills
Outline and affirm secure coding principles

Outline syllabus

This is an indicative module outline only to give an indication of the sort of topics that may be covered. Actual sessions held may differ.

Outline content
Fundamentally this module develops core programming concepts aimed at assisting the learner progress through further modules which requires this key skill.

Learners will be introduced to fundamental programming concepts and guided through the process of designing, developing, and testing software solutions using a programming language selected by the tutor.

The content of this module will be taught from a cyber security perspective.

Key topics include but are not limited to:

  • Fundamental programming concepts
  • Fundamental data structures
  • Secure software development methods
  • Testing strategies

Learning outcomes

By the end of the module, students should be able to:

  • Explain and apply basic programming principles [CITP 2.1.1, 2.1.12, 2.2.3]
  • Design and implement a software component that meets a given problem [CITP 2.2.1, 2.2.4, 2.2.6]
  • Appraise the behaviour of a program in response to various combinations of interesting inputs [CITP 2.1.11, 2.2.2]
  • Employ standard algorithms and data structures in the solution to well defined problems [CITP 2.1.1, 2.1.2, 2.2.5]

Indicative reading list

Reading lists can be found in Talis

Specific reading list for the module

Subject specific skills

  • Use of object-oriented programming concepts including classes, objects, inheritance, and methods (SFIA Skill: PROG)
  • Use of basic programming environments and tools to support development and testing (SFIA Skill: TOOL)
  • Application of good programming style, code readability, and maintainability (SFIA Skill: METL)
  • Use of basic programming constructs such as sequence, selection, and iteration (SFIA Skill: DESN)
  • Use of identifiers, variables, expressions, and a range of data types (SFIA Skill: DATM)
  • Modelling problems using object-oriented principles (SFIA Skill: DTAN)
  • Designing, compiling, debugging, and testing short programs (SFIA Skill: TEST)

Transferable skills

Problem solving, teamwork, ability to solve problems using a range of sources and techniques

Study time

Type Required
Lectures 12 sessions of 1 hour (8%)
Supervised practical classes 12 sessions of 1 hour (8%)
Online learning (independent) 22 sessions of 1 hour (15%)
Private study 44 hours (29%)
Assessment 60 hours (40%)
Total 150 hours

Private study description

Combination of lab continuation work and online study

Costs

No further costs have been identified for this module.

You must pass all assessment components to pass the module.

Assessment group D
Weighting Study time Eligible for self-certification
Assessment component
Individual Report 40% 24 hours Yes (extension)

A written report assessing a cybersecurity student typically showcases their understanding, technical skills, and practical application of cybersecurity principles in programming and software development, supported by a collection of evidence drawn from relevant learning activities such as tasks, exercises, or practical engagements undertaken during the module.

Reassessment component is the same
Assessment component
End-of-module exam 60% 36 hours No

An open-book exam assessing students' understanding of the programming concepts taught in the module. The only notes the students may use are in class provided resources.

~Platforms - WAS


  • Online examination: No Answerbook required
Reassessment component is the same
Feedback on assessment

Written feedback for each report, verbal feedback during sessions.
For the exam, a per-question breakdown of students' marks, together with any marker comments, may be given.

Past exam papers for WM187

Courses

This module is Core for:

  • UWMA-H651 Undergraduate Cyber Security
    • Year 1 of H651 Cyber Security
    • Year 1 of H651 Cyber Security
    • Year 1 of H651 Cyber Security