Warning: include(/home/domains/top.php) [function.include]: failed to open stream: No such file or directory in /srv/disk8/924569/www/billy.scienceontheweb.net/deep/2014/cloud.php on line 1

Warning: include() [function.include]: Failed opening '/home/domains/top.php' for inclusion (include_path='.:/usr/local/php-5.3.29/share/pear') in /srv/disk8/924569/www/billy.scienceontheweb.net/deep/2014/cloud.php on line 1
> DEEP > 2014 > Cloud Computing and Computer Security

Course Modules

Module 0 - Welcome and Introduction

This module introduces students to the course structure, goals and expectations.

Lecture Slides
Classroom recording
Video lecture

Module 1 - What is cloud computing?

Introduction goes here...

Lecture Slides
Classroom recording
Video lecture

Module 2 - How computers work

In order to understand cloud computing, we must first understand computing. This module takes us from the ground up, starting with gates based on transistors based on the properties to semiconductors, up to CPU design and binary arithmetic and finally machine code, assembly language and how computers communicate with their peripheral devices. It's a whirlwind of a unit, but critical to understanding how higher levels of cloud computing work, and how computer security professionals protect against even the lowest-level attacks.

Lecture Slides
Gates, Transistors and Binary numbers
Binary Arithmetic, Calculation circuits, Machine code and CPU design
Test yourself
Hexadecimal numbers, Assembly language and Stacks
Assembly Exercise
Machine code exercise, Buses
Video lecture

Module 3 - How the internet works

Now that we have covered computing, what about the "cloud"? Module 3 examines how computers communicate, starting with buses driving wired connexions, the ethernet protocol, and looking at the layers on top of that (IP, TCP, UDP). It then gets into the application layer with HTTP.

Lecture Slides
Physical connexions, Ethernet, IP Addresses
Video lecture

Module 4 - Another look at cloud computing

With all this new information under our belts we can revisit cloud computing to see what it takes on a low-level to build a successful cloud system.

Lecture Slides
Video lecture

Module 5 - HTML

One of the most common delivery and presentation mechanisms for Software as a Service cloud applications is web browsers. These in turn use HTML to format content; HTML is the backbone of the front-end of websites.

Lecture Slides
Video lecture

Module 6 - The Amazon EC2

Our class used the Amazon EC2 to create our applications. This module introduces them to it, and to using virtual private servers in general.

Lecture Slides
Video lecture

Module 7 - Python, for the PC and the web

In order to make truly robust applications, we must understand basic, high-level programming. Python allows us to work both with high-performance computing and programming for the web. This module introduces us to it.

Lecture Slides
Introduction to Python
Python for the Web
Video lecture

Module 8 - High-performance computing, SciNet

One important type of cloud computing application is the High-Performance Computing cluster (called a supercomputer in common language). In this medule we learn how they work, how people need to program for them, and students tried it themselves using SciNet, the University of Toronto's HPC cluster.

Lecture Slides
Introduction to HPC, general concepts
Running jobs on SciNet
Video lecture

Module 9 - Parallel Python for HPC

Now that we know how to run jobs on HPC clusters, how do we write programmes for them? In this module we'll look at this in more depth, and in particular at implementing embarassingly parallel algorithms, and basic message passing and broadcasting.

Lecture Slides
Basic pypar setup
Video lecture

Module 10 - Introduction to Security

Any reasonably-sized deployment becomes a target for attackers, especially anything using the WWW. This module gives us an overview of how that happens.

Lecture Slides
Introduction to Security
Phishing
Bots and CAPTCHAs
Students' created CAPTCHAs
Viruses
Video lecture

Module 11 - Encryption: Caesar to Public-Key to Quantum

Communication is central to cloud computing. This module looks at the groundwork of secure communication: encryption.

Lecture Slides
Mathematical foundations, simple ciphers
Compound ciphers and public-key encryption
Authentication: SSL certificates and how to obtain them
Video lecture

Module 12 - Code injection: XSS, SQL injection, buffer overflows

Lecture Slides
Classroom recording (entire module)
Video lecture

Module 13 - Reverse-engineering and trojan horses

Lecture Slides
Machine-code reverse-engineering
Disassembly
Video lecture

Warning: include(/home/domains/bottom.php) [function.include]: failed to open stream: No such file or directory in /srv/disk8/924569/www/billy.scienceontheweb.net/deep/2014/cloud.php on line 85

Warning: include() [function.include]: Failed opening '/home/domains/bottom.php' for inclusion (include_path='.:/usr/local/php-5.3.29/share/pear') in /srv/disk8/924569/www/billy.scienceontheweb.net/deep/2014/cloud.php on line 85