Skip to content

Introduction

This repository is designed to support the module 4061CEM: Programming and Algorithms on the Ethical Hacking and Cybersecurity course at Coventry University.

Rather than replace the many excellent resources already available on the web, the goal of this repository is to have be the most concise collection of information required for the module, with examples and challenges along the way to add context and help you test your knowledge.

It is also an on-going project. As the module progresses, the material will be expanded, and will remain accessible to everyone even after they have completed the module. The hope is that you can make use of this resource in the future, after your time on the module is complete.

How to use this repository

The repository is in roughly the order you will be expected to learn things for the module. However, in the module many topics will be reviewed in a lighter form initially and expanded upon later. The repository, however, will have all of the information for a given topic in one place. So, remember to check back as your experience grows to see if there is more to learn on the early topics that might help with later projects.

Test Your Knowledge

Throughout the pages here, you will find questions, challenges and puzzles. Often they will be scattered through the documents, and most pages will also have a collection of such challenges at the end. These are not assessed, but provided to help you test your knowledge and understanding. Some of these problems will be highlighted in the module as tasks to complete for a given week, but others are here for when you are reading at your own pace.

Question

Some questions are open-ended, with no provided answer. They are intended to help you think about things that don't have definite answers, or provoke you to explore context.

Others should be answered before seeing the provided answer: click to see

This is where the answer would be.

Code samples

Throughout these pages you will see code samples like the one below:

hello_world.py from the beginning to the end Download this file
#!//usr/bin/env python
print("Hello World!")
Output
Hello World!

You can see the filename, the code, the fact that it is complete (not a section from one given line to another) and a download link. Below that, you can see the output.

You won't always have a download link. Not all code is complete and could be shown just to explain syntax. Sometimes there will be no output, if the code wouldn't provide output or is not something easily shown in a web page.

Sometimes you will also see input fed into the program. The example below demonstrates this:

hello_name.py from the beginning to the end Download this file
#!/usr/bin/env python
name=input("Enter your name: ")
print(f"Hello {name}! Welcome to the world of Python!")
Given input
James
Output
Enter your name: James
Hello James! Welcome to the world of Python!

How to suggest edits and get your name in the credits

If you spot a typo, or think you can see an area for expansion or improvement, let the module team know. If we agree with your contribution, we will make the changes and mention you as a contributor.

Better still, why not fork the repository and create a pull-request? Successful contributions like this will have you mentioned as a co-developer.