diff --git a/templates/_folder_Lectures/_folder_Lecture 11/Handout - Performance Optimisation/Stopwatch.cpp b/templates/_folder_Lectures/_folder_Lecture 11/Handout - Performance Optimisation/Stopwatch.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..a4be1c713aee747fd38ae5ad501e6a18470ac223
--- /dev/null
+++ b/templates/_folder_Lectures/_folder_Lecture 11/Handout - Performance Optimisation/Stopwatch.cpp	
@@ -0,0 +1,12 @@
+#include "Stopwatch.h"
+
+void Stopwatch::start() {
+    startTime = std::chrono::steady_clock::now();
+}
+
+double Stopwatch::stop() {
+    std::chrono::time_point endTime = std::chrono::steady_clock::now();
+    long durationInMicroseconds = std::chrono::duration_cast<std::chrono::microseconds>(endTime - startTime).count();
+    double durationInSeconds = double(durationInMicroseconds)/1000000.0;
+    return durationInSeconds;
+}
\ No newline at end of file
diff --git a/templates/_folder_Lectures/_folder_Lecture 11/Handout - Performance Optimisation/Stopwatch.h b/templates/_folder_Lectures/_folder_Lecture 11/Handout - Performance Optimisation/Stopwatch.h
new file mode 100644
index 0000000000000000000000000000000000000000..5d7b1c36ed69d9685d1072f1fcc8b332dd7d18b6
--- /dev/null
+++ b/templates/_folder_Lectures/_folder_Lecture 11/Handout - Performance Optimisation/Stopwatch.h	
@@ -0,0 +1,19 @@
+#pragma once
+#include <chrono>
+
+// This class abstracts some (somewhat) nasty code that is
+// definitely outside the scope of this course.
+// Its main purpose is to return the amount of time 
+// taken by the program in main.cpp
+
+// Calling start() starts the stopwatch
+// Calling stop() stops it and returns the amount of time
+// that has elapsed since start() was called in seconds
+
+class Stopwatch {
+    std::chrono::time_point<std::chrono::steady_clock> startTime;
+
+public:
+    void start();
+    double stop();
+};
\ No newline at end of file
diff --git a/templates/_folder_Lectures/_folder_Lecture 11/Handout - Performance Optimisation/main.cpp b/templates/_folder_Lectures/_folder_Lecture 11/Handout - Performance Optimisation/main.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..bf12b73a7b639d6b3fda5f43e896f67ea47b5e3d
--- /dev/null
+++ b/templates/_folder_Lectures/_folder_Lecture 11/Handout - Performance Optimisation/main.cpp	
@@ -0,0 +1,25 @@
+#include <iostream>
+#include <chrono>
+#include <vector>
+#include "Stopwatch.h"
+
+int main() {
+    Stopwatch watch;
+    watch.start();
+
+    constexpr int gridSize = 25000;
+
+    std::vector<std::array<int, gridSize>> grid(gridSize);
+
+    long long sum = 0;
+    for(int row = 0; row < gridSize; row++) {
+        for(int col = 0; col < gridSize; col++) {
+            //std::string hello = "Hello there!";
+            sum += grid.at(row).at(col);
+        }
+    }
+
+    std::cout << "Time taken: " << watch.stop() << " seconds" << std::endl;
+
+    return 0;
+}
\ No newline at end of file