diff --git a/LectureCodeExamples/Week2/Callback.js b/LectureCodeExamples/Week2/Callback.js
new file mode 100644
index 0000000000000000000000000000000000000000..5119bccc3188e051a0ceeaea3d55394790a0dc11
--- /dev/null
+++ b/LectureCodeExamples/Week2/Callback.js
@@ -0,0 +1,45 @@
+// Function Declaration
+
+function printName(name, cb) {
+    console.log("Inside the printName function")
+    console.log(name)
+    cb(name)
+}
+
+
+// function expression
+let printReverseName = function(name) {
+    console.log(name.split("").reverse().join(""))
+}
+
+
+// arrow function
+let returnReverseString = str => {
+   return str.split("").reverse().join("")
+}
+
+printName("Nikola", printReverseName)
+
+console.log(returnReverseString("THis is reversing a string"))
+
+let sports = ["rowing", "cycling", "tennis", "padel", "soccer"]
+
+let newSports = sports.map(sport => {
+    console.log("this is a multiline function")
+    return returnReverseString(sport)
+})
+
+console.log(sports)
+console.log(newSports)
+
+let shortSports = sports.filter(sport => sport.length <= 5)
+let longerSports = sports.filter((sport) => sport.length > 5)
+console.log(shortSports)
+console.log(longerSports)
+
+let initial = 0
+let sum = sports.reduce((sum, sport) => {
+    return sum + sport.length
+}, initial)
+
+console.log(`The sum of all the lengths in the sports array is ${sum}`)
\ No newline at end of file