diff --git a/manifests/lec1.md b/manifests/lec1.md
deleted file mode 100644
index 4abecace316831481a5f35a733a232491a3073f6..0000000000000000000000000000000000000000
--- a/manifests/lec1.md
+++ /dev/null
@@ -1 +0,0 @@
-lectorials/week7/lectorial1.md
\ No newline at end of file
diff --git a/manifests/week10.md b/manifests/week10.md
deleted file mode 100644
index f330aca70f02709c9cad3b92bc7b8a939da26d28..0000000000000000000000000000000000000000
--- a/manifests/week10.md
+++ /dev/null
@@ -1,3 +0,0 @@
-practicals/week10/tasks.md
-practicals/week10/notes.md
-practicals/week10/code.py
\ No newline at end of file
diff --git a/manifests/week11.md b/manifests/week11.md
deleted file mode 100644
index 1e894d45de17a36f5fb4afaf5e8408f9642563b3..0000000000000000000000000000000000000000
--- a/manifests/week11.md
+++ /dev/null
@@ -1,3 +0,0 @@
-practicals/week11/tasks.md
-practicals/week11/notes.md
-practicals/week11/code.py
\ No newline at end of file
diff --git a/manifests/week12.md b/manifests/week12.md
deleted file mode 100644
index 82d05b2d1a8f562f343d1d2e945074c28f2744cf..0000000000000000000000000000000000000000
--- a/manifests/week12.md
+++ /dev/null
@@ -1,3 +0,0 @@
-practicals/week12/tasks.md
-practicals/week12/notes.md
-practicals/week12/code.py
\ No newline at end of file
diff --git a/manifests/week13.md b/manifests/week13.md
deleted file mode 100644
index 71deeeae630fee213df96fd81edaee52454d4f0c..0000000000000000000000000000000000000000
--- a/manifests/week13.md
+++ /dev/null
@@ -1,2 +0,0 @@
-practicals/week13/recap-practical-1.md
-practicals/week13/recap-practical-2.md
\ No newline at end of file
diff --git a/manifests/week14.md b/manifests/week14.md
deleted file mode 100644
index 36480139ead7322ebb57e237de931e4f2e7208f1..0000000000000000000000000000000000000000
--- a/manifests/week14.md
+++ /dev/null
@@ -1,3 +0,0 @@
-practicals/week14/tasks.md
-practicals/week14/notes.md
-practicals/week14/code.py
\ No newline at end of file
diff --git a/manifests/week15.md b/manifests/week15.md
deleted file mode 100644
index 696e78944ce792d139f368334705ac76e75d7750..0000000000000000000000000000000000000000
--- a/manifests/week15.md
+++ /dev/null
@@ -1,3 +0,0 @@
-practicals/week15/tasks.md
-practicals/week15/notes.md
-practicals/week15/code.py
\ No newline at end of file
diff --git a/manifests/week8.md b/manifests/week8.md
index ea3bf4d59aac2e1c71451d193fddfb08f167c672..24f014d552ed8150b79acfc973342cf84e6bb0cf 100644
--- a/manifests/week8.md
+++ b/manifests/week8.md
@@ -1,3 +1,2 @@
-practicals/week8/tasks.md
 practicals/week8/week8.md
 practicals/week8/week8.py
\ No newline at end of file
diff --git a/manifests/week9.md b/manifests/week9.md
deleted file mode 100644
index d390dbba65028505f8cc9dcc2e91c97b811a01a1..0000000000000000000000000000000000000000
--- a/manifests/week9.md
+++ /dev/null
@@ -1,3 +0,0 @@
-practicals/week9/tasks.md
-practicals/week9/notes.md
-practicals/week9/code.py
\ No newline at end of file
diff --git a/manifests/wordcount.md b/manifests/wordcount.md
deleted file mode 100644
index 4cdb5012d7e567091e41b13bb94befa126819f0b..0000000000000000000000000000000000000000
--- a/manifests/wordcount.md
+++ /dev/null
@@ -1 +0,0 @@
-.scripts/wc.py
\ No newline at end of file
diff --git a/practicals/week8/tasks.md b/practicals/week8/tasks.md
deleted file mode 100644
index c605d6156a0957f0f596eb31221a889ac24f1ad8..0000000000000000000000000000000000000000
--- a/practicals/week8/tasks.md
+++ /dev/null
@@ -1,145 +0,0 @@
-# Week 8 Tasks for practicals
-
-# Task 1 - Intro to Python
-
-In Task 1 we will begin to build up a set of notes (in week8.md) about python as we learn new concepts. The process for this should include the following for each of the following headings:
-- writing simple bits of code in `week8.py` 
-- testing the code by running and observing the output
-- copying the code into code blocks in `week8.md` and providing your own descriptions for future reference
-
-> (Optional) If you already feel confident and more experienced with Python, you can still find and document more advanced feature(s) for each of these categories. Some ideas may include tuples, sets, dictionaries or lists for variables, pattern matching, iterators and lambda functions for other topics respectively.
-
-## Printing in python
-
-We have covered printing in python during our lecture session. We also have a description available in the `ctap-resources/guides` [here](https://gitlab.uwe.ac.uk/ctap/ctap-resources/-/blob/main/guides/printing-in-python.md).
-
-## Variables
-
-In Python, variables are used to store and manipulate data. They act as containers that hold values, which can be of different types such as numbers, strings, or boolean values. Variables are created by assigning a value to a name using the assignment operator (=). For example, `x = 5` creates a variable named "x" and assigns it the value of 5. Variables can be updated by assigning a new value to them. Python is a dynamically typed language, which means that variables can hold values of different types throughout the program execution.
-
-```python
-# Example 1: Assigning a value to a variable 
-x = 5   
-```
-  
-In this example, a variable named "x" is created and assigned the value of 5.  
-
-```python
-# Example 2: Updating the value of a variable   
-x = 5   
-x = x + 3
-```
-  
-In this example, the value of the variable "x" is updated by adding 3 to its current value. After the update, "x" will hold the value of 8.  
-  
-```python
-# Example 3: Variables with different data types
-name = "John"
-age = 25
-is_student = True
-```
-In this example, three variables are created: "name" holds a string value, "age" holds an integer value, and "is_student" holds a boolean value.  
-  
-```python
-# Example 4: In python variables can change their data type
-x = 5
-x = "Hello" 
-``` 
-  
-In this example, the variable "x" initially holds an integer value of 5, but later its value is updated to a string "Hello". Python allows variables to change their data type during program execution.  
-  
-These examples demonstrate the basic usage of variables in Python, including assigning values, updating values, and handling different data types.
-
-> Task: In a similar style to above, document the use of a data type that is not used in the example above (such as decimal numbers).
-
-## Conditionals
-
-Conditionals primarily refer to the use of the keywords `if`, `else` and `elif`. 
-
-> Task: In the style of the Variables section, program, test and document the use of these keywords, creating some simple examples
-
-## Loops
-
-Loops primarily refer to the use of the keywords `for`,and `while` in python. 
-In Python, the `for` loop is used to iterate over a sequence of elements. The `for` loop with `range` is a common way to iterate a specific number of times. Here's a brief description of `for` loops using 'for in range' syntax:  
-
-```python
-# Example 1: Basic usage of for loop with range
-for i in range(5):
-	print(i)
-```
-  
-In this example, the `for` loop iterates over the sequence of numbers generated by `range(5)`, which produces numbers from 0 to 4. The loop variable `i` takes on each value in the sequence, and the code inside the loop (indented under the `for` statement) is executed for each iteration. The output will be the numbers 0 to 4 printed on separate lines.
-
-> Task: In the style of the Variables section, program, test and document the use of the `for` keyword, creating some simple examples
-
-## Functions
-Functions are defined using the `def` keyword, followed by the function name and parentheses containing any input parameters. The function body is indented below the definition.
-```python
-# example function 1
-def print_hello():  
-	print('hello!')
-```
-```python
-# example function 2
-def square(number):  
-	result = number ** 2  
-	return result
-```
-> Task:  In the style of the Variables section, program, test and document the use of the functions, creating some simple examples using both parameters and return values.
-
-# Task 2 - Some Simple Puzzles
-
-### Puzzle 1: Print Even Numbers
-
-Write a program that prints all even numbers from 1 to 10.
-
-### Puzzle 2: Sum of Odd Numbers
-
-Write a program that calculates the sum of all odd numbers from 1 to 10
-
-### Puzzle 3: Guess the Number
-
-Write a program that asks the user to guess a number between 1 and 10. If the user guesses the correct number, print "Congratulations!", otherwise, print "Try again!".
-
-# (Optional) Task 3
-
-> Task: Implement a Caesar Cypher encrypt and decrypt function
-
-A Caesar cipher is a simple encryption technique that involves shifting the letters of the alphabet by a certain number of positions. It is named after Julius Caesar, who is said to have used this method to communicate secretly with his generals.  
-  
-Here's how a Caesar cipher works:  
-  
-- Choose a shift value: The shift value determines how many positions each letter should be shifted in the alphabet. For example, a shift value of 3 means that 'A' will be encrypted as 'D', 'B' as 'E', and so on.  
-  
-- Encrypting a message: To encrypt a message using a Caesar cipher, each letter in the message is shifted by the chosen shift value. Non-alphabetic characters, such as spaces or punctuation, are left unchanged. The shifted letters wrap around to the beginning of the alphabet if they go beyond 'Z'.  
-  
-- Decrypting a message: To decrypt a message encrypted with a Caesar cipher, the same shift value is used in reverse. Each letter in the encrypted message is shifted back by the chosen shift value to reveal the original message.  
-  
-Here's an example to illustrate the Caesar cipher:  
-  
-Original message: "HELLO"  
-Shift value: 3  
-  
-Encryption:  
-- 'H' shifted by 3 positions becomes 'K'  
-- 'E' shifted by 3 positions becomes 'H'  
-- 'L' shifted by 3 positions becomes 'O'  
-- 'L' shifted by 3 positions becomes 'O'  
-- 'O' shifted by 3 positions becomes 'R'  
-  
-Encrypted message: "KHOOR"  
-  
-Decryption:  
-- 'K' shifted back by 3 positions becomes 'H'  
-- 'H' shifted back by 3 positions becomes 'E'  
-- 'O' shifted back by 3 positions becomes 'L'  
-- 'O' shifted back by 3 positions becomes 'L'  
-- 'R' shifted back by 3 positions becomes 'O'  
-  
-Decrypted message: "HELLO"  
-  
-The Caesar cipher is a basic encryption technique and can be easily cracked through brute force or frequency analysis. However, it serves as a good introduction to the concept of encryption and can be a starting point for more complex encryption algorithms. If you are able to complete this exercise, you could further explore the concept of using a more advanced cypher such as Vigenère Cipher.
-
-> The Vigenère cipher is an extension of the Caesar cipher. Instead of using a single shift value, it uses a keyword to determine multiple shift values. Each letter of the keyword corresponds to a shift value, and the message is encrypted by shifting each letter by its corresponding shift value.  
-
diff --git a/practicals/week8/week8.md b/practicals/week8/week8.md
index 4ff24c8d0dc0001ca037b33dfad1ab9c1040301e..e1a13df74af3a81887b1794ec96fbe4bfda6ebed 100644
--- a/practicals/week8/week8.md
+++ b/practicals/week8/week8.md
@@ -1,27 +1,194 @@
-# Task 1
-## Variables
-## Conditionals
-## Loops
-## Functions
 
-# Task 2
-## Puzzle 1: Print Even Numbers
+# Week 8
+
+We will aim to do two things this week:
+- pick our scenarios and start researching them / writing the intro section
+- begin to explore the basics of python
+
+Split your sessions so that you spend half of your time on each of these goals this week (either the first hour of each session or one session on each, depending on your preference).
+
+# Assignment Scenarios - Goal 1
+
+Working with your tutors choose a scenario from the assignment scenarios from blackboard and start researching some related content to begin wrinting an intro section in your report.
+
+
+# Intro to Python
+
+As a second goal for this week, this document introduces a few basic concepts of python for us to start getting familiar with. Complete these python tasks by following below and writing code in the week8.py file. Don't forget to run your code.
+
+> (Optional) If you already feel confident and more experienced with Python, you can still find and document more advanced feature(s) for each of these categories. Some ideas may include tuples, sets, dictionaries or lists for variables, pattern matching, iterators and lambda functions for other topics respectively.
+
+## Printing in python
 
+The `print()` function in Python is used to display output to the console or terminal. It allows you to print text, variables, or expressions for debugging purposes or to provide information to the user. The `print()` function takes one or more arguments, which can be strings, variables, or expressions, and displays them as output.  
+  
+Here are a few examples to illustrate the use of the `print()` function:  
+  
 ```python
-# After testing, paste your solution here to reference in future
-# A program that prints all even numbers from 1 to 10:
+# Example 1: Printing a string   
+print("Hello, World!")
+```   
+  
+In this example, the `print()` function is used to display the string "Hello, World!" as output.  
+  
+```python   
+# Example 2: Printing variables   
+name = "John"   
+age = 25   
 
+print("Name:", name)
+print("Age:", age)   
 ```
+  
+In this example, the `print()` function is used to display the values of the variables `name` and `age`. The output will be:  
+  
+```
+Name: John
+Age: 25 
+```
+  
+```python
+# Example 3: Printing expressions
+x = 5
+y = 3
+print("Sum:", x + y)
+print("Product:", x * y)
+```
+In this example, the `print()` function is used to display the results of arithmetic expressions involving the variables `x` and `y`. The output will be:  
+  
+```
+Sum: 8
+Product: 15
+```
+  
+The `print()` function is a useful tool for displaying information during program execution and can be used in various ways to provide output to the user or for debugging purposes.
+
+## Variables
+
+In Python, variables are used to store and manipulate data. They act as containers that hold values, which can be of different types such as numbers, strings, or boolean values. Variables are created by assigning a value to a name using the assignment operator (=). For example, `x = 5` creates a variable named "x" and assigns it the value of 5. Variables can be updated by assigning a new value to them. Python is a dynamically typed language, which means that variables can hold values of different types throughout the program execution.
 
-## Puzzle 2: Sum of Odd Numbers
 ```python
-# A program that calculates the sum of all odd numbers from 1 to 10:
+# Example 1: Assigning a value to a variable 
+x = 5   
+```
+  
+In this example, a variable named "x" is created and assigned the value of 5.  
 
+```python
+# Example 2: Updating the value of a variable   
+x = 5   
+x = x + 3
+```
+  
+In this example, the value of the variable "x" is updated by adding 3 to its current value. After the update, "x" will hold the value of 8.  
+  
+```python
+# Example 3: Variables with different data types
+name = "John"
+age = 25
+is_student = True
 ```
+In this example, three variables are created: "name" holds a string value, "age" holds an integer value, and "is_student" holds a boolean value.  
+  
+```python
+# Example 4: In python variables can change their data type
+x = 5
+x = "Hello" 
+``` 
+  
+In this example, the variable "x" initially holds an integer value of 5, but later its value is updated to a string "Hello". Python allows variables to change their data type during program execution.  
+  
+These examples demonstrate the basic usage of variables in Python, including assigning values, updating values, and handling different data types.
+
+> Task: In a similar style to above, document the use of a data type that is not used in the example above (such as decimal numbers).
+
+## Conditionals
 
-## Puzzle 3: Guess the Number
+Conditionals primarily refer to the use of the keywords `if`, `else` and `elif`. 
+
+> Task: In the style of the Variables section, program, test and document the use of these keywords, creating some simple examples
+
+## Loops
+
+Loops primarily refer to the use of the keywords `for`,and `while` in python. 
+In Python, the `for` loop is used to iterate over a sequence of elements. The `for` loop with `range` is a common way to iterate a specific number of times. Here's a brief description of `for` loops using 'for in range' syntax:  
 
 ```python
-# a simple guess the number game:
+# Example 1: Basic usage of for loop with range
+for i in range(5):
+	print(i)
+```
+  
+In this example, the `for` loop iterates over the sequence of numbers generated by `range(5)`, which produces numbers from 0 to 4. The loop variable `i` takes on each value in the sequence, and the code inside the loop (indented under the `for` statement) is executed for each iteration. The output will be the numbers 0 to 4 printed on separate lines.
+
+> Task: In the style of the Variables section, program, test and document the use of the `for` keyword, creating some simple examples
 
+## Functions
+Functions are defined using the `def` keyword, followed by the function name and parentheses containing any input parameters. The function body is indented below the definition.
+```python
+# example function 1
+def print_hello():  
+	print('hello!')
+```
+```python
+# example function 2
+def square(number):  
+	result = number ** 2  
+	return result
 ```
+
+# Task 2 - Some Simple Puzzles
+
+### Puzzle 1: Print Even Numbers
+
+Write a program that prints all even numbers from 1 to 10.
+
+### Puzzle 2: Sum of Odd Numbers
+
+Write a program that calculates the sum of all odd numbers from 1 to 10
+
+### Puzzle 3: Guess the Number
+
+Write a program that asks the user to guess a number between 1 and 10. If the user guesses the correct number, print "Congratulations!", otherwise, print "Try again!".
+
+# (Optional) Task 3
+
+> Task: Implement a Caesar Cypher encrypt and decrypt function
+
+A Caesar cipher is a simple encryption technique that involves shifting the letters of the alphabet by a certain number of positions. It is named after Julius Caesar, who is said to have used this method to communicate secretly with his generals.  
+  
+Here's how a Caesar cipher works:  
+  
+- Choose a shift value: The shift value determines how many positions each letter should be shifted in the alphabet. For example, a shift value of 3 means that 'A' will be encrypted as 'D', 'B' as 'E', and so on.  
+  
+- Encrypting a message: To encrypt a message using a Caesar cipher, each letter in the message is shifted by the chosen shift value. Non-alphabetic characters, such as spaces or punctuation, are left unchanged. The shifted letters wrap around to the beginning of the alphabet if they go beyond 'Z'.  
+  
+- Decrypting a message: To decrypt a message encrypted with a Caesar cipher, the same shift value is used in reverse. Each letter in the encrypted message is shifted back by the chosen shift value to reveal the original message.  
+  
+Here's an example to illustrate the Caesar cipher:  
+  
+Original message: "HELLO"  
+Shift value: 3  
+  
+Encryption:  
+- 'H' shifted by 3 positions becomes 'K'  
+- 'E' shifted by 3 positions becomes 'H'  
+- 'L' shifted by 3 positions becomes 'O'  
+- 'L' shifted by 3 positions becomes 'O'  
+- 'O' shifted by 3 positions becomes 'R'  
+  
+Encrypted message: "KHOOR"  
+  
+Decryption:  
+- 'K' shifted back by 3 positions becomes 'H'  
+- 'H' shifted back by 3 positions becomes 'E'  
+- 'O' shifted back by 3 positions becomes 'L'  
+- 'O' shifted back by 3 positions becomes 'L'  
+- 'R' shifted back by 3 positions becomes 'O'  
+  
+Decrypted message: "HELLO"  
+  
+The Caesar cipher is a basic encryption technique and can be easily cracked through brute force or frequency analysis. However, it serves as a good introduction to the concept of encryption and can be a starting point for more complex encryption algorithms. If you are able to complete this exercise, you could further explore the concept of using a more advanced cypher such as Vigenère Cipher.
+
+> The Vigenère cipher is an extension of the Caesar cipher. Instead of using a single shift value, it uses a keyword to determine multiple shift values. Each letter of the keyword corresponds to a shift value, and the message is encrypted by shifting each letter by its corresponding shift value.  
+
diff --git a/practicals/week8/week8.py b/practicals/week8/week8.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..a1a8fd7b29b4e58177f7b069fe6d49db1f9f422c 100644
--- a/practicals/week8/week8.py
+++ b/practicals/week8/week8.py
@@ -0,0 +1,21 @@
+# Task 1
+## Variables
+
+## Conditionals
+
+## Loops
+
+## Functions
+
+# Task 2
+## Puzzle 1: Print Even Numbers
+
+# A program that prints all even numbers from 1 to 10:
+
+
+## Puzzle 2: Sum of Odd Numbers
+# A program that calculates the sum of all odd numbers from 1 to 10:
+
+
+## Puzzle 3: Guess the Number
+# a simple guess the number game:
diff --git a/readme.md b/readme.md
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391