diff --git a/assignments/src/MV3500Cohort2024JulySeptember/homework1/Timberlake/Client.java b/assignments/src/MV3500Cohort2024JulySeptember/homework1/Timberlake/Client.java
new file mode 100644
index 0000000000000000000000000000000000000000..0a41995d93457e101d038b4f734c7043e198c572
--- /dev/null
+++ b/assignments/src/MV3500Cohort2024JulySeptember/homework1/Timberlake/Client.java
@@ -0,0 +1,40 @@
+package MV3500Cohort2024JulySeptember.homework1.Timberlake;
+
+import java.net.DatagramPacket;
+import java.net.DatagramSocket;
+import java.net.InetAddress;
+
+/**
+ *
+ * @author Jack
+ */
+public class Client {
+    public static void main(String[] args) {
+        DatagramSocket socket = null;
+        try {
+            // Create a socket to communicate with the server
+            socket = new DatagramSocket();
+            InetAddress serverAddress = InetAddress.getByName("localhost"); // Server address (localhost for testing)
+            byte[] sendData = new byte[1024]; // Buffer to store data to send
+            byte[] receiveData = new byte[1024]; // Buffer to store received data
+
+            // Send message to server
+            String message = "Hello from client!"; // Message to send
+            sendData = message.getBytes(); // Convert message to bytes
+            DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, serverAddress, 9876);
+            socket.send(sendPacket); // Send packet to server
+
+            // Receive response from server
+            DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
+            socket.receive(receivePacket); // Blocking call until a packet is received
+            String responseMessage = new String(receivePacket.getData(), 0, receivePacket.getLength());
+            System.out.println("Client Received: " + responseMessage); // Print received response
+        } catch (Exception e) {
+            e.printStackTrace(); // Print any exceptions that occur
+        } finally {
+            if (socket != null && !socket.isClosed()) {
+                socket.close(); // Close the socket to release resources
+            }
+        }
+    }
+}
diff --git a/assignments/src/MV3500Cohort2024JulySeptember/homework1/Timberlake/Server.java b/assignments/src/MV3500Cohort2024JulySeptember/homework1/Timberlake/Server.java
new file mode 100644
index 0000000000000000000000000000000000000000..bf279722e7def83d24e8ea1b70ee0c7ea138e57c
--- /dev/null
+++ b/assignments/src/MV3500Cohort2024JulySeptember/homework1/Timberlake/Server.java
@@ -0,0 +1,44 @@
+package MV3500Cohort2024JulySeptember.homework1.Timberlake;
+
+import java.net.DatagramPacket;
+import java.net.DatagramSocket;
+import java.net.InetAddress;
+
+/**
+ *
+ * @author Jack
+ */
+public class Server {
+    public static void main(String[] args) {
+        DatagramSocket socket = null;
+        
+        try {
+            // Create a socket to listen on port 9876
+            socket = new DatagramSocket(9876);
+            byte[] receiveData = new byte[1024]; // Buffer to store incoming data
+            byte[] sendData = new byte[1024]; // Buffer to store outgoing data
+
+            while (true) {
+                // Receive packet from client
+                DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
+                socket.receive(receivePacket); // Blocking call until a packet is received
+                String message = new String(receivePacket.getData(), 0, receivePacket.getLength());
+                System.out.println("Server Received: " + message); // Print received message
+
+                // Prepare response to client
+                InetAddress clientAddress = receivePacket.getAddress(); // Get client's address
+                int clientPort = receivePacket.getPort(); // Get client's port
+                String responseMessage = "Hello from server!"; // Response message
+                sendData = responseMessage.getBytes(); // Convert response message to bytes
+                DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, clientAddress, clientPort);
+                socket.send(sendPacket); // Send response packet to client
+            }
+        } catch (Exception e) {
+            e.printStackTrace(); // Print any exceptions that occur
+        } finally {
+            if (socket != null && !socket.isClosed()) {
+                socket.close(); // Close the socket to release resources
+            }
+        }
+    }
+}
diff --git a/presentations/03_TCPIP.pptx b/presentations/03_TCPIP.pptx
index cfeb46d5f8201f8c3a86fb7fef0282772a0ffb6a..0df55519be43aef782da3a3e8254d9073f34c138 100644
Binary files a/presentations/03_TCPIP.pptx and b/presentations/03_TCPIP.pptx differ