diff --git a/README.md b/README.md
index 56c6d0f..7dd87af 100644
--- a/README.md
+++ b/README.md
@@ -42,201 +42,201 @@ Course material and references for Campus To Corporate course, 2017.
Session 1
-
-1. [Session 1](Session01)
- 1. [Intro to Java](Session01#intro)
- 1. [What is Java](Session01#what-is-java)
- 2. [Flavors of Java](Session01#flavors)
- 3. [Compilation of a Java file](Session01#compilation)
- 4. [Naming Conventions](Session01#conventions)
- 5. [Hello, World](Session01#hello)
- 6. [Primitive Data Types](Session01#primitives)
- 2. [Some Real Coding](Session01#some-real-coding)
- 1. [Conditionals](Session01#conditionals)
- 2. [Conditionals practice](Session01#conditionals-practice)
- 3. [Loops](Session01#loops)
- 4. [Loop practice](Session01#loop-practice)
- 3. [Assignments](Session01#assignments)
- 1. [HackerRank](Session01#hackerrank)
- 2. [Miscellaneous](Session01#miscellaneous)
+
+1. [Session 1](Session01%20-%20Introduction)
+ 1. [Intro to Java](Session01%20-%20Introduction#intro)
+ 1. [What is Java](Session01%20-%20Introduction#what-is-java)
+ 2. [Flavors of Java](Session01%20-%20Introduction#flavors)
+ 3. [Compilation of a Java file](Session01%20-%20Introduction#compilation)
+ 4. [Naming Conventions](Session01%20-%20Introduction#conventions)
+ 5. [Hello, World](Session01%20-%20Introduction#hello)
+ 6. [Primitive Data Types](Session01%20-%20Introduction#primitives)
+ 2. [Some Real Coding](Session01%20-%20Introduction#some-real-coding)
+ 1. [Conditionals](Session01%20-%20Introduction#conditionals)
+ 2. [Conditionals practice](Session01%20-%20Introduction#conditionals-practice)
+ 3. [Loops](Session01%20-%20Introduction#loops)
+ 4. [Loop practice](Session01%20-%20Introduction#loop-practice)
+ 3. [Assignments](Session01%20-%20Introduction#assignments)
+ 1. [HackerRank](Session01%20-%20Introduction#hackerrank)
+ 2. [Miscellaneous](Session01%20-%20Introduction#miscellaneous)
Session 2
-
-1. [Session 2](Session02)
- 1. [Revision](Session02#revision)
- 2. [Arrays](Session02#arrays)
- 1. [Declaration, Intialization and Use](Session02#array-intro)
- 2. [Iteration](Session02#array-iteration)
- 3. [Array Practice](Session02#array-practice)
- 2. [Functions](Session02#functions)
- 1. [Basic Syntax](Session02#function-syntax)
- 2. [Recursion](Session02#function-recursion)
- 3. [Memoization](Session02#memoization)
- 4. [VarArgs](Session02#varargs)
- 5. [2D Arrays](Session02#2d-arrays)
- 6. [Assignments](Session02#assignments)
- 1. [HackerRank](Session02#hackerrank)
- 2. [Miscellaneous](Session02#miscellaneous)
- 7. [Test](Session02#test)
-
+
+1. [Session 2](Session02%20-%20Arrays%2C%20Functions)
+ 1. [Revision](Session02%20-%20Arrays%2C%20Functions#revision)
+ 2. [Arrays](Session02%20-%20Arrays%2C%20Functions#arrays)
+ 1. [Declaration, Intialization and Use](Session02%20-%20Arrays%2C%20Functions#array-intro)
+ 2. [Iteration](Session02%20-%20Arrays%2C%20Functions#array-iteration)
+ 3. [Array Practice](Session02%20-%20Arrays%2C%20Functions#array-practice)
+ 2. [Functions](Session02%20-%20Arrays%2C%20Functions#functions)
+ 1. [Basic Syntax](Session02%20-%20Arrays%2C%20Functions#function-syntax)
+ 2. [Recursion](Session02%20-%20Arrays%2C%20Functions#function-recursion)
+ 3. [Memoization](Session02%20-%20Arrays%2C%20Functions#memoization)
+ 4. [VarArgs](Session02%20-%20Arrays%2C%20Functions#varargs)
+ 5. [2D Arrays](Session02%20-%20Arrays%2C%20Functions#2d-arrays)
+ 6. [Assignments](Session02%20-%20Arrays%2C%20Functions#assignments)
+ 1. [HackerRank](Session02%20-%20Arrays%2C%20Functions#hackerrank)
+ 2. [Miscellaneous](Session02%20-%20Arrays%2C%20Functions#miscellaneous)
+ 7. [Test](Session02%20-%20Arrays%2C%20Functions#test)
+
Session 3
-1. [Session 3](Session03)
- 1. [Function Overloading](Session03#function-overload)
- 2. [Classes](Session03#classes)
- 1. [Constructors](Session03#class-constructor)
- 2. [Instance Variables](Session03#class-instance-var)
- 3. [Instance Methods](Session03#class-instance-method)
- 4. [Static Methods and Instances](Session03#class-static)
- 5. [Practice](Session03#class-practice)
- 6. [The final modifier](Session03#class-final)
- 2. [The String class](Session03#string)
- 3. [Assignments](Session03#assignments)
- 1. [HackerRank](Session03#hackerrank)
- 2. [Miscellaneous](Session03#miscellaneous)
- 4. [Test](Session03#test)
-
+1. [Session 3](Session03%20-%20Classes%2C%20Fn%20Overloading)
+ 1. [Function Overloading](Session03%20-%20Classes%2C%20Fn%20Overloading#function-overload)
+ 2. [Classes](Session03%20-%20Classes%2C%20Fn%20Overloading#classes)
+ 1. [Constructors](Session03%20-%20Classes%2C%20Fn%20Overloading#class-constructor)
+ 2. [Instance Variables](Session03%20-%20Classes%2C%20Fn%20Overloading#class-instance-var)
+ 3. [Instance Methods](Session03%20-%20Classes%2C%20Fn%20Overloading#class-instance-method)
+ 4. [Static Methods and Instances](Session03%20-%20Classes%2C%20Fn%20Overloading#class-static)
+ 5. [Practice](Session03%20-%20Classes%2C%20Fn%20Overloading#class-practice)
+ 6. [The final modifier](Session03%20-%20Classes%2C%20Fn%20Overloading#class-final)
+ 2. [The String class](Session03%20-%20Classes%2C%20Fn%20Overloading#string)
+ 3. [Assignments](Session03%20-%20Classes%2C%20Fn%20Overloading#assignments)
+ 1. [HackerRank](Session03%20-%20Classes%2C%20Fn%20Overloading#hackerrank)
+ 2. [Miscellaneous](Session03%20-%20Classes%2C%20Fn%20Overloading#miscellaneous)
+ 4. [Test](Session03%20-%20Classes%2C%20Fn%20Overloading#test)
+
Session 4
-
-1. [Session 4](Session04)
- 1. [Revision](Session04#session3-revise)
- 2. [Initializer Blocks](Session04#initializer)
- 1. [Instance Initializer Block](Session04#instance-initializer)
- 2. [Static Initializer Block](Session04#static-initializer)
- 3. [Call Stack](Session04#call-stack)
- 4. [Object Heap](Session04#object-heap)
- 5. [Some Traps and Pitfalls](Session04#traps)
- 6. [Recursion And Memoization Practice](Session04#recursion)
- 7. [BufferedReader - The Faster Way Of Accepting Input](Session04#buffered-reader)
- 8. [Sorting - A High Level Perspective](Session04#sorting)
- 9. [Assignments](Session04#assignments)
- 1. [HackerRank](Session04#hackerrank)
- 2. [Miscellaneous](Session04#miscellaneous)
- 10. [Test](Session04#test)
-
+
+1. [Session 4](Session04%20-%20Stack%2C%20Heap%2C%20Sorting)
+ 1. [Revision](Session04%20-%20Stack%2C%20Heap%2C%20Sorting#session3-revise)
+ 2. [Initializer Blocks](Session04%20-%20Stack%2C%20Heap%2C%20Sorting#initializer)
+ 1. [Instance Initializer Block](Session04%20-%20Stack%2C%20Heap%2C%20Sorting#instance-initializer)
+ 2. [Static Initializer Block](Session04%20-%20Stack%2C%20Heap%2C%20Sorting#static-initializer)
+ 3. [Call Stack](Session04%20-%20Stack%2C%20Heap%2C%20Sorting#call-stack)
+ 4. [Object Heap](Session04%20-%20Stack%2C%20Heap%2C%20Sorting#object-heap)
+ 5. [Some Traps and Pitfalls](Session04%20-%20Stack%2C%20Heap%2C%20Sorting#traps)
+ 6. [Recursion And Memoization Practice](Session04%20-%20Stack%2C%20Heap%2C%20Sorting#recursion)
+ 7. [BufferedReader - The Faster Way Of Accepting Input](Session04%20-%20Stack%2C%20Heap%2C%20Sorting#buffered-reader)
+ 8. [Sorting - A High Level Perspective](Session04%20-%20Stack%2C%20Heap%2C%20Sorting#sorting)
+ 9. [Assignments](Session04%20-%20Stack%2C%20Heap%2C%20Sorting#assignments)
+ 1. [HackerRank](Session04%20-%20Stack%2C%20Heap%2C%20Sorting#hackerrank)
+ 2. [Miscellaneous](Session04%20-%20Stack%2C%20Heap%2C%20Sorting#miscellaneous)
+ 10. [Test](Session04%20-%20Stack%2C%20Heap%2C%20Sorting#test)
+
Session 5
-
-1. [Session 5](Session05)
- 1. [Call By Value / Call By Copy Of Reference](Session05#parameter-passing)
- 2. [The `this` keyword](Session05#this-keyword)
- 3. [Inheritance](Session05#inheritance)
- 1. [Inheritance Models](Session05#inheritance-models)
- 2. [Access Modifiers](Session05#access-modifiers)
- 3. [The `extends` keyword](Session05#extends-keyword)
- 4. [The Point Example](Session05#point-example)
- 4. [Overriding](Session05#overriding)
- 5. [Abstract Data Structures - an Overview](Session05#ads)
- 6. [Assignments](Session05#assignments)
- 1. [HackerRank](Session05#hackerrank)
- 2. [Miscellaneous](Session05#miscellaneous)
- 7. [Test](Session05#test)
-
+
+1. [Session 5](Session05%20-%20Inheritance%2C%20Overriding)
+ 1. [Call By Value / Call By Copy Of Reference](Session05%20-%20Inheritance%2C%20Overriding#parameter-passing)
+ 2. [The `this` keyword](Session05%20-%20Inheritance%2C%20Overriding#this-keyword)
+ 3. [Inheritance](Session05%20-%20Inheritance%2C%20Overriding#inheritance)
+ 1. [Inheritance Models](Session05%20-%20Inheritance%2C%20Overriding#inheritance-models)
+ 2. [Access Modifiers](Session05%20-%20Inheritance%2C%20Overriding#access-modifiers)
+ 3. [The `extends` keyword](Session05%20-%20Inheritance%2C%20Overriding#extends-keyword)
+ 4. [The Point Example](Session05%20-%20Inheritance%2C%20Overriding#point-example)
+ 4. [Overriding](Session05%20-%20Inheritance%2C%20Overriding#overriding)
+ 5. [Abstract Data Structures - an Overview](Session05%20-%20Inheritance%2C%20Overriding#ads)
+ 6. [Assignments](Session05%20-%20Inheritance%2C%20Overriding#assignments)
+ 1. [HackerRank](Session05%20-%20Inheritance%2C%20Overriding#hackerrank)
+ 2. [Miscellaneous](Session05%20-%20Inheritance%2C%20Overriding#miscellaneous)
+ 7. [Test](Session05%20-%20Inheritance%2C%20Overriding#test)
+
Session 6
-
-1. [Session 6](Session06)
- 1. [RapidFire Revision](Session06#rapid-revision)
- 2. [The `final` modifier (again)](Session06#final-modifier)
- 3. [The `this` keyword (again)](Session06#this-keyword)
- 4. [The `super` keyword (again)](Session06#super-keyword)
- 5. [Abstract Classes](Session06#abstract-classes)
- 6. [Interfaces](Session06#interfaces)
- 7. [Dynamic Method Dispatch](Session06#dynamic-method-dispatch)
- 8. [Order of Instance Variable Initialization](Session06#instance-initialization-order)
- 6. [Assignments](Session06#assignments)
- 1. [HackerRank](Session06#hackerrank)
- 2. [Miscellaneous](Session06#miscellaneous)
-
+
+1. [Session 6](Session06%20-%20Abstract%20Classes%2C%20Interfaces)
+ 1. [RapidFire Revision](Session06%20-%20Abstract%20Classes%2C%20Interfaces#rapid-revision)
+ 2. [The `final` modifier (again)](Session06%20-%20Abstract%20Classes%2C%20Interfaces#final-modifier)
+ 3. [The `this` keyword (again)](Session06%20-%20Abstract%20Classes%2C%20Interfaces#this-keyword)
+ 4. [The `super` keyword (again)](Session06%20-%20Abstract%20Classes%2C%20Interfaces#super-keyword)
+ 5. [Abstract Classes](Session06%20-%20Abstract%20Classes%2C%20Interfaces#abstract-classes)
+ 6. [Interfaces](Session06%20-%20Abstract%20Classes%2C%20Interfaces#interfaces)
+ 7. [Dynamic Method Dispatch](Session06%20-%20Abstract%20Classes%2C%20Interfaces#dynamic-method-dispatch)
+ 8. [Order of Instance Variable Initialization](Session06%20-%20Abstract%20Classes%2C%20Interfaces#instance-initialization-order)
+ 6. [Assignments](Session06%20-%20Abstract%20Classes%2C%20Interfaces#assignments)
+ 1. [HackerRank](Session06%20-%20Abstract%20Classes%2C%20Interfaces#hackerrank)
+ 2. [Miscellaneous](Session06%20-%20Abstract%20Classes%2C%20Interfaces#miscellaneous)
+
Session 7
-
-1. [Session 7](Session07)
- 1. [Linked Lists](Session07#linked-list)
- 2. [Sorting](Session07#sorting)
- 3. [Assignments](Session07#assignments)
- 1. [HackerRank](Session07#hackerrank)
- 2. [Miscellaneous](Session07#miscellaneous)
-
+
+1. [Session 7](Session07%20-%20Linked%20Lists%2C%20Sorting)
+ 1. [Linked Lists](Session07%20-%20Linked%20Lists%2C%20Sorting#linked-list)
+ 2. [Sorting](Session07%20-%20Linked%20Lists%2C%20Sorting#sorting)
+ 3. [Assignments](Session07%20-%20Linked%20Lists%2C%20Sorting#assignments)
+ 1. [HackerRank](Session07%20-%20Linked%20Lists%2C%20Sorting#hackerrank)
+ 2. [Miscellaneous](Session07%20-%20Linked%20Lists%2C%20Sorting#miscellaneous)
+
Session 8
-
-1. [Session 8](Session08)
- 1. [The Collections Framework - Part I](Session08#cfw)
- 1. [The Collection Hierarchy](Session08#hierarchy)
- 2. [Lists, Queues and Sets](Session08#list-queue-set)
- 3. [Problems](Session08#cfwproblems)
- 2. [Trees](Session08#trees)
- 1. [Binary Trees](Session08#binary-trees)
- 2. [Binary Search Trees](Session08#bst)
- 3. [Assignments](Session08#assignments)
- 1. [HackerRank](Session08#hackerrank)
- 2. [Miscellaneous](Session08#miscellaneous)
-
+
+1. [Session 8](Session08%20-%20Collections%2C%20Trees)
+ 1. [The Collections Framework - Part I](Session08%20-%20Collections%2C%20Trees#cfw)
+ 1. [The Collection Hierarchy](Session08%20-%20Collections%2C%20Trees#hierarchy)
+ 2. [Lists, Queues and Sets](Session08%20-%20Collections%2C%20Trees#list-queue-set)
+ 3. [Problems](Session08%20-%20Collections%2C%20Trees#cfwproblems)
+ 2. [Trees](Session08%20-%20Collections%2C%20Trees#trees)
+ 1. [Binary Trees](Session08%20-%20Collections%2C%20Trees#binary-trees)
+ 2. [Binary Search Trees](Session08%20-%20Collections%2C%20Trees#bst)
+ 3. [Assignments](Session08%20-%20Collections%2C%20Trees#assignments)
+ 1. [HackerRank](Session08%20-%20Collections%2C%20Trees#hackerrank)
+ 2. [Miscellaneous](Session08%20-%20Collections%2C%20Trees#miscellaneous)
+
Session 9
-
-1. [Session 9](Session09)
- 1. [The Object Class, `equals` and `hashCode`](Session09#object)
- 2. [The Collections Framework - Part II](Session09#cfw)
- 1. [Maps!](Session09#maps)
- 2. [Problems](Session09#cfwproblems)
- 3. [Graphs](Session09#graphs)
- 1. [Applications](Session09#applications)
- 2. [Classification](Session09#classification)
- 3. [Representation](Session09#representation)
- 4. [Terminology](Session09#terminology)
- 5. [Traversals and Algorithms](Session09#traversals)
- 6. [Problems](Session09#problems)
- 7. [An Extensive List of Graph Topics](Session09#gfg-graphs)
- 4. [Assignments](Session09#assignments)
- 1. [HackerRank](Session09#hackerrank)
- 2. [Miscellaneous](Session09#miscellaneous)
-
+
+1. [Session 9](Session09%20-%20Maps%2C%20Graphs)
+ 1. [The Object Class, `equals` and `hashCode`](Session09%20-%20Maps%2C%20Graphs#object)
+ 2. [The Collections Framework - Part II](Session09%20-%20Maps%2C%20Graphs#cfw)
+ 1. [Maps!](Session09%20-%20Maps%2C%20Graphs#maps)
+ 2. [Problems](Session09%20-%20Maps%2C%20Graphs#cfwproblems)
+ 3. [Graphs](Session09%20-%20Maps%2C%20Graphs#graphs)
+ 1. [Applications](Session09%20-%20Maps%2C%20Graphs#applications)
+ 2. [Classification](Session09%20-%20Maps%2C%20Graphs#classification)
+ 3. [Representation](Session09%20-%20Maps%2C%20Graphs#representation)
+ 4. [Terminology](Session09%20-%20Maps%2C%20Graphs#terminology)
+ 5. [Traversals and Algorithms](Session09%20-%20Maps%2C%20Graphs#traversals)
+ 6. [Problems](Session09%20-%20Maps%2C%20Graphs#problems)
+ 7. [An Extensive List of Graph Topics](Session09%20-%20Maps%2C%20Graphs#gfg-graphs)
+ 4. [Assignments](Session09%20-%20Maps%2C%20Graphs#assignments)
+ 1. [HackerRank](Session09%20-%20Maps%2C%20Graphs#hackerrank)
+ 2. [Miscellaneous](Session09%20-%20Maps%2C%20Graphs#miscellaneous)
+
Session 10
-
-1. [Session 10](Session10)
- 1. [Exception Handling](Session10#exceptions)
- 1. [The Exception Hierarchy](Session10#hierarchy)
- 2. [Checked and Unchecked Exceptions](Session10#checked-unchecked)
- 3. [`throw` and `throws`](Session10#throw-throws)
- 4. [try-catch-finally](Session10#tcf)
- 5. [Variants of try-catch-finally](Session10#tcf-variants)
- 6. [Call Stack propagation](Session10#propagation)
- 7. [Some "Exceptional" Cases](Session10#tcf-cases)
- 2. [Garbage Collection](Session10#gc)
- 1. [The Garbage Collector](Session10#gc-core)
- 2. [The `finalize` method](Session10#finalize)
- 3. [Assignments](Session10#assignments)
- 1. [HackerRank](Session10#hackerrank)
- 2. [Miscellaneous](Session10#miscellaneous)
-
+
+1. [Session 10](Session10%20-%20Exception%20Handling)
+ 1. [Exception Handling](Session10%20-%20Exception%20Handling#exceptions)
+ 1. [The Exception Hierarchy](Session10%20-%20Exception%20Handling#hierarchy)
+ 2. [Checked and Unchecked Exceptions](Session10%20-%20Exception%20Handling#checked-unchecked)
+ 3. [`throw` and `throws`](Session10%20-%20Exception%20Handling#throw-throws)
+ 4. [try-catch-finally](Session10%20-%20Exception%20Handling#tcf)
+ 5. [Variants of try-catch-finally](Session10%20-%20Exception%20Handling#tcf-variants)
+ 6. [Call Stack propagation](Session10%20-%20Exception%20Handling#propagation)
+ 7. [Some "Exceptional" Cases](Session10%20-%20Exception%20Handling#tcf-cases)
+ 2. [Garbage Collection](Session10%20-%20Exception%20Handling#gc)
+ 1. [The Garbage Collector](Session10%20-%20Exception%20Handling#gc-core)
+ 2. [The `finalize` method](Session10%20-%20Exception%20Handling#finalize)
+ 3. [Assignments](Session10%20-%20Exception%20Handling#assignments)
+ 1. [HackerRank](Session10%20-%20Exception%20Handling#hackerrank)
+ 2. [Miscellaneous](Session10%20-%20Exception%20Handling#miscellaneous)
+
Session 11
-
+
1. [Session 11](Session11%20-%20StuffWeLeftOut)
1. [Data Structures and Algorithms](Session11%20-%20StuffWeLeftOut#dsa)
1. [Heaps](Session11%20-%20StuffWeLeftOut#heaps)
diff --git a/Session01/PrimitiveDataTypes.java b/Session01 - Introduction/PrimitiveDataTypes.java
similarity index 100%
rename from Session01/PrimitiveDataTypes.java
rename to Session01 - Introduction/PrimitiveDataTypes.java
diff --git a/Session01/README.md b/Session01 - Introduction/README.md
similarity index 100%
rename from Session01/README.md
rename to Session01 - Introduction/README.md
diff --git a/Session02/MemoizedFactorial.java b/Session02 - Arrays, Functions/MemoizedFactorial.java
similarity index 100%
rename from Session02/MemoizedFactorial.java
rename to Session02 - Arrays, Functions/MemoizedFactorial.java
diff --git a/Session02/README.md b/Session02 - Arrays, Functions/README.md
similarity index 100%
rename from Session02/README.md
rename to Session02 - Arrays, Functions/README.md
diff --git a/Session03/README.md b/Session03 - Classes, Fn Overloading/README.md
similarity index 100%
rename from Session03/README.md
rename to Session03 - Classes, Fn Overloading/README.md
diff --git a/Session03/StaticVariableExampleRunner.java b/Session03 - Classes, Fn Overloading/StaticVariableExampleRunner.java
similarity index 100%
rename from Session03/StaticVariableExampleRunner.java
rename to Session03 - Classes, Fn Overloading/StaticVariableExampleRunner.java
diff --git a/Session03/StringMethods.java b/Session03 - Classes, Fn Overloading/StringMethods.java
similarity index 100%
rename from Session03/StringMethods.java
rename to Session03 - Classes, Fn Overloading/StringMethods.java
diff --git a/Session04/README.md b/Session04 - Stack, Heap, Sorting/README.md
similarity index 100%
rename from Session04/README.md
rename to Session04 - Stack, Heap, Sorting/README.md
diff --git a/Session05/PointRunner.java b/Session05 - Inheritance, Overriding/PointRunner.java
similarity index 100%
rename from Session05/PointRunner.java
rename to Session05 - Inheritance, Overriding/PointRunner.java
diff --git a/Session05/README.md b/Session05 - Inheritance, Overriding/README.md
similarity index 100%
rename from Session05/README.md
rename to Session05 - Inheritance, Overriding/README.md
diff --git a/Session05/inheritance-models.png b/Session05 - Inheritance, Overriding/inheritance-models.png
similarity index 100%
rename from Session05/inheritance-models.png
rename to Session05 - Inheritance, Overriding/inheritance-models.png
diff --git a/Session06/Conway.java b/Session06 - Abstract Classes, Interfaces/Conway.java
similarity index 100%
rename from Session06/Conway.java
rename to Session06 - Abstract Classes, Interfaces/Conway.java
diff --git a/Session06/README.md b/Session06 - Abstract Classes, Interfaces/README.md
similarity index 98%
rename from Session06/README.md
rename to Session06 - Abstract Classes, Interfaces/README.md
index fa320d4..3cefa9d 100644
--- a/Session06/README.md
+++ b/Session06 - Abstract Classes, Interfaces/README.md
@@ -27,7 +27,7 @@
10. What does the final modifier do to variables? (makes them initializable only once)
11. Where can you assign to a final instance variable? (declaration, all constructors, instance initialization block)
12. Where can you assign to a final static variable? (declaration, static block)
-13. When I say “new”, what happens? (object is created on the heap_
+13. When I say “new”, what happens? (object is created on the heap)
14. What is the first method to be pushed onto the call stack? (main)
15. Where are primitives stored? (call stack)
16. Where are object references stored? (call stack)
@@ -72,25 +72,25 @@ class Point3D {
private int x;
private int y;
private int z;
-
+
public Point3D() {
this.x = 0;
this.y = 0;
this.z = 0;
}
-
+
public Point3D(int x) {
this.x = x; // "this" is necessary here to distinguish from the local variable x
this.y = 0;
this.z = 0;
}
-
+
public Point3D(int x, int y) {
this.x = x; // "this" is necessary here to distinguish from the local variable x
this.y = y; // "this" is necessary here to distinguish from the local variable y
this.z = 0;
}
-
+
public Point3D(int x, int y, int z) {
this.x = x; // "this" is necessary here to distinguish from the local variable x
this.y = y; // "this" is necessary here to distinguish from the local variable y
@@ -106,19 +106,19 @@ class Point3D {
private int x;
private int y;
private int z;
-
+
public Point3D() {
this(0, 0, 0);
}
-
+
public Point3D(int x) {
this(x, 0, 0);
}
-
+
public Point3D(int x, int y) {
this(x, y, 0);
}
-
+
public Point3D(int x, int y, int z) {
this.x = x;
this.y = y;
@@ -225,15 +225,15 @@ As we have seen before, you can explicitly call the parent class constructor by
```java
class Point {
private int x;
-
+
Point(int x) {
this.x = x;
}
}
-class Point2D {
+class Point2D extends Point {
private int y;
-
+
Point2D(int x, int y) {
super(x);
this.y = y;
@@ -243,7 +243,7 @@ class Point2D {
### Abstract Classes
-Abstract classes are classes that are declared abstract, and may or may not have abstract methods.
+Abstract classes are classes that are declared abstract, and may or may not have abstract methods.
Important points:
1. Abstract classes cannot be instantiated, only subclassed.
@@ -255,7 +255,7 @@ abstract class BankAccount {
abstract void deposit(double amount);
abstract void withdraw(double amount);
abstract void getBalance();
-
+
// A default implementation since 4% is a standard interest rate
double getInterestRate() {
return 4.0;
@@ -264,7 +264,7 @@ abstract class BankAccount {
class UCUCUBankAccount extends BankAccount {
private double balance;
-
+
void deposit(double amount) {
if (amount < 1000) {
System.out.println("Cannot deposit less than 1000");
@@ -273,22 +273,22 @@ class UCUCUBankAccount extends BankAccount {
balance += amount;
}
}
-
+
void withdraw(double amount) {
// Ugh, 1% transaction charge
balance = balance - amount - 0.01 * amount;
}
-
+
void getBalance() {
return balance;
}
-
+
// Does not override getInterestRate, gives the usual interest rate of 4%
}
class LenaBankAccount extends BankAccount {
private double balance;
-
+
void deposit(double amount) {
// More lenient :)
if (amount < 200) {
@@ -298,16 +298,16 @@ class LenaBankAccount extends BankAccount {
balance += amount;
}
}
-
+
void withdraw(double amount) {
// No transaction charge :)
balance = balance - amount;
}
-
+
void getBalance() {
return balance;
}
-
+
// Override getInterestRate to get a better interest rate
double getInterestRate() {
return 6.0;
@@ -315,7 +315,7 @@ class LenaBankAccount extends BankAccount {
}
```
-An excellent resource is the [Oracle Javadoc for abstract classes](https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html)
+An excellent resource is the [Oracle Javadoc for abstract classes](https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html)
### Interfaces
@@ -338,15 +338,15 @@ interface Shape {
class Circle implements Shape {
private int radius;
-
+
public Circle(int radius) {
this.radius = radius;
}
-
+
double getArea() {
return Math.PI * radius * radius;
}
-
+
double getPerimeter() {
return 2 * Math.PI * radius;
}
@@ -354,15 +354,15 @@ class Circle implements Shape {
class Square implements Shape {
private int length;
-
+
public Square(int length) {
this.length = length;
}
-
+
double getArea() {
return length * length;
}
-
+
double getPerimeter() {
return 4 * length;
}
@@ -378,11 +378,11 @@ class VolumeCalculator {
public static double getVolume(Shape s, double h) {
return s.getArea() * h;
}
-
+
public static void main(String[] args) {
Circle c = new Circle(10);
System.out.println(getVolume(c, 10));
-
+
Square s = new Square(10);
System.out.println(getVolume(s, 10));
}
@@ -402,14 +402,14 @@ class DmdExample {
public static void main(String[] args) {
Shape c = new Circle(10);
System.out.println(c.getArea());
-
+
Shape s = new Square(10);
System.out.println(s.getArea());
}
}
```
-As you can see, the reference is of the parent `Shape`, and the instance is of the child `Circle` or `Square`. When the method `getArea` is called, the runtime checks for an overridden method in the **instance**.
+As you can see, the reference is of the parent `Shape`, and the instance is of the child `Circle` or `Square`. When the method `getArea` is called, the runtime checks for an overridden method in the **instance**.
This now clarifies the two types of polymorphism and their implementations in Java:
1. Static Polymorphism = Overloading (Decided at **Compile time** )
@@ -418,7 +418,7 @@ This now clarifies the two types of polymorphism and their implementations in Ja
### Order of Instance Variable Initialization
TODO
-### Assignments
+### Assignments
#### HackerRank
@@ -449,4 +449,3 @@ Here are some interersting images and gifs from the Wiki page, which make Conway
Try to understand how the above gifs are behaving.
In the file Conway.java, there is an interface. Implement the interface.
-
diff --git a/Session06.5/README.md b/Session06.5 - Arrays, Strings, Recursion/README.md
similarity index 100%
rename from Session06.5/README.md
rename to Session06.5 - Arrays, Strings, Recursion/README.md
diff --git a/Session07/README.md b/Session07 - Linked Lists, Sorting/README.md
similarity index 100%
rename from Session07/README.md
rename to Session07 - Linked Lists, Sorting/README.md
diff --git a/Session07/linkedlist/problems/ILinkedList.java b/Session07 - Linked Lists, Sorting/linkedlist/problems/ILinkedList.java
similarity index 100%
rename from Session07/linkedlist/problems/ILinkedList.java
rename to Session07 - Linked Lists, Sorting/linkedlist/problems/ILinkedList.java
diff --git a/Session07/linkedlist/problems/Node.java b/Session07 - Linked Lists, Sorting/linkedlist/problems/Node.java
similarity index 100%
rename from Session07/linkedlist/problems/Node.java
rename to Session07 - Linked Lists, Sorting/linkedlist/problems/Node.java
diff --git a/Session07/linkedlist/solutions/ILinkedList.java b/Session07 - Linked Lists, Sorting/linkedlist/solutions/ILinkedList.java
similarity index 100%
rename from Session07/linkedlist/solutions/ILinkedList.java
rename to Session07 - Linked Lists, Sorting/linkedlist/solutions/ILinkedList.java
diff --git a/Session07/linkedlist/solutions/LinkedListImpl.java b/Session07 - Linked Lists, Sorting/linkedlist/solutions/LinkedListImpl.java
similarity index 100%
rename from Session07/linkedlist/solutions/LinkedListImpl.java
rename to Session07 - Linked Lists, Sorting/linkedlist/solutions/LinkedListImpl.java
diff --git a/Session07/linkedlist/solutions/LinkedListImplDriver.java b/Session07 - Linked Lists, Sorting/linkedlist/solutions/LinkedListImplDriver.java
similarity index 100%
rename from Session07/linkedlist/solutions/LinkedListImplDriver.java
rename to Session07 - Linked Lists, Sorting/linkedlist/solutions/LinkedListImplDriver.java
diff --git a/Session07/linkedlist/solutions/Node.java b/Session07 - Linked Lists, Sorting/linkedlist/solutions/Node.java
similarity index 100%
rename from Session07/linkedlist/solutions/Node.java
rename to Session07 - Linked Lists, Sorting/linkedlist/solutions/Node.java
diff --git a/Session07/sorting/problems/BubbleSorter.java b/Session07 - Linked Lists, Sorting/sorting/problems/BubbleSorter.java
similarity index 100%
rename from Session07/sorting/problems/BubbleSorter.java
rename to Session07 - Linked Lists, Sorting/sorting/problems/BubbleSorter.java
diff --git a/Session07/sorting/problems/InsertionSorter.java b/Session07 - Linked Lists, Sorting/sorting/problems/InsertionSorter.java
similarity index 100%
rename from Session07/sorting/problems/InsertionSorter.java
rename to Session07 - Linked Lists, Sorting/sorting/problems/InsertionSorter.java
diff --git a/Session07/sorting/problems/IntSorter.java b/Session07 - Linked Lists, Sorting/sorting/problems/IntSorter.java
similarity index 100%
rename from Session07/sorting/problems/IntSorter.java
rename to Session07 - Linked Lists, Sorting/sorting/problems/IntSorter.java
diff --git a/Session07/sorting/problems/IntSorterTimer.java b/Session07 - Linked Lists, Sorting/sorting/problems/IntSorterTimer.java
similarity index 100%
rename from Session07/sorting/problems/IntSorterTimer.java
rename to Session07 - Linked Lists, Sorting/sorting/problems/IntSorterTimer.java
diff --git a/Session07/sorting/problems/MergeSorter.java b/Session07 - Linked Lists, Sorting/sorting/problems/MergeSorter.java
similarity index 100%
rename from Session07/sorting/problems/MergeSorter.java
rename to Session07 - Linked Lists, Sorting/sorting/problems/MergeSorter.java
diff --git a/Session07/sorting/problems/SelectionSorter.java b/Session07 - Linked Lists, Sorting/sorting/problems/SelectionSorter.java
similarity index 100%
rename from Session07/sorting/problems/SelectionSorter.java
rename to Session07 - Linked Lists, Sorting/sorting/problems/SelectionSorter.java
diff --git a/Session07/sorting/solutions/BubbleSorter.java b/Session07 - Linked Lists, Sorting/sorting/solutions/BubbleSorter.java
similarity index 100%
rename from Session07/sorting/solutions/BubbleSorter.java
rename to Session07 - Linked Lists, Sorting/sorting/solutions/BubbleSorter.java
diff --git a/Session07/sorting/solutions/InsertionSorter.java b/Session07 - Linked Lists, Sorting/sorting/solutions/InsertionSorter.java
similarity index 100%
rename from Session07/sorting/solutions/InsertionSorter.java
rename to Session07 - Linked Lists, Sorting/sorting/solutions/InsertionSorter.java
diff --git a/Session07/sorting/solutions/IntSorter.java b/Session07 - Linked Lists, Sorting/sorting/solutions/IntSorter.java
similarity index 100%
rename from Session07/sorting/solutions/IntSorter.java
rename to Session07 - Linked Lists, Sorting/sorting/solutions/IntSorter.java
diff --git a/Session07/sorting/solutions/IntSorterTimer.java b/Session07 - Linked Lists, Sorting/sorting/solutions/IntSorterTimer.java
similarity index 100%
rename from Session07/sorting/solutions/IntSorterTimer.java
rename to Session07 - Linked Lists, Sorting/sorting/solutions/IntSorterTimer.java
diff --git a/Session07/sorting/solutions/MergeSorter.java b/Session07 - Linked Lists, Sorting/sorting/solutions/MergeSorter.java
similarity index 100%
rename from Session07/sorting/solutions/MergeSorter.java
rename to Session07 - Linked Lists, Sorting/sorting/solutions/MergeSorter.java
diff --git a/Session07/sorting/solutions/SelectionSorter.java b/Session07 - Linked Lists, Sorting/sorting/solutions/SelectionSorter.java
similarity index 100%
rename from Session07/sorting/solutions/SelectionSorter.java
rename to Session07 - Linked Lists, Sorting/sorting/solutions/SelectionSorter.java
diff --git a/Session07/test/point-sorting/PointSorting.java b/Session07 - Linked Lists, Sorting/test/point-sorting/PointSorting.java
similarity index 100%
rename from Session07/test/point-sorting/PointSorting.java
rename to Session07 - Linked Lists, Sorting/test/point-sorting/PointSorting.java
diff --git a/Session07/test/point-sorting/PointSortingTestGenerator.java b/Session07 - Linked Lists, Sorting/test/point-sorting/PointSortingTestGenerator.java
similarity index 100%
rename from Session07/test/point-sorting/PointSortingTestGenerator.java
rename to Session07 - Linked Lists, Sorting/test/point-sorting/PointSortingTestGenerator.java
diff --git a/Session07/test/point-sorting/testcases/input/input00.txt b/Session07 - Linked Lists, Sorting/test/point-sorting/testcases/input/input00.txt
similarity index 100%
rename from Session07/test/point-sorting/testcases/input/input00.txt
rename to Session07 - Linked Lists, Sorting/test/point-sorting/testcases/input/input00.txt
diff --git a/Session07/test/point-sorting/testcases/input/input01.txt b/Session07 - Linked Lists, Sorting/test/point-sorting/testcases/input/input01.txt
similarity index 100%
rename from Session07/test/point-sorting/testcases/input/input01.txt
rename to Session07 - Linked Lists, Sorting/test/point-sorting/testcases/input/input01.txt
diff --git a/Session07/test/point-sorting/testcases/input/input02.txt b/Session07 - Linked Lists, Sorting/test/point-sorting/testcases/input/input02.txt
similarity index 100%
rename from Session07/test/point-sorting/testcases/input/input02.txt
rename to Session07 - Linked Lists, Sorting/test/point-sorting/testcases/input/input02.txt
diff --git a/Session07/test/point-sorting/testcases/input/input03.txt b/Session07 - Linked Lists, Sorting/test/point-sorting/testcases/input/input03.txt
similarity index 100%
rename from Session07/test/point-sorting/testcases/input/input03.txt
rename to Session07 - Linked Lists, Sorting/test/point-sorting/testcases/input/input03.txt
diff --git a/Session07/test/point-sorting/testcases/input/input04.txt b/Session07 - Linked Lists, Sorting/test/point-sorting/testcases/input/input04.txt
similarity index 100%
rename from Session07/test/point-sorting/testcases/input/input04.txt
rename to Session07 - Linked Lists, Sorting/test/point-sorting/testcases/input/input04.txt
diff --git a/Session07/test/point-sorting/testcases/input/input05.txt b/Session07 - Linked Lists, Sorting/test/point-sorting/testcases/input/input05.txt
similarity index 100%
rename from Session07/test/point-sorting/testcases/input/input05.txt
rename to Session07 - Linked Lists, Sorting/test/point-sorting/testcases/input/input05.txt
diff --git a/Session07/test/point-sorting/testcases/input/input06.txt b/Session07 - Linked Lists, Sorting/test/point-sorting/testcases/input/input06.txt
similarity index 100%
rename from Session07/test/point-sorting/testcases/input/input06.txt
rename to Session07 - Linked Lists, Sorting/test/point-sorting/testcases/input/input06.txt
diff --git a/Session07/test/point-sorting/testcases/output/output00.txt b/Session07 - Linked Lists, Sorting/test/point-sorting/testcases/output/output00.txt
similarity index 100%
rename from Session07/test/point-sorting/testcases/output/output00.txt
rename to Session07 - Linked Lists, Sorting/test/point-sorting/testcases/output/output00.txt
diff --git a/Session07/test/point-sorting/testcases/output/output01.txt b/Session07 - Linked Lists, Sorting/test/point-sorting/testcases/output/output01.txt
similarity index 100%
rename from Session07/test/point-sorting/testcases/output/output01.txt
rename to Session07 - Linked Lists, Sorting/test/point-sorting/testcases/output/output01.txt
diff --git a/Session07/test/point-sorting/testcases/output/output02.txt b/Session07 - Linked Lists, Sorting/test/point-sorting/testcases/output/output02.txt
similarity index 100%
rename from Session07/test/point-sorting/testcases/output/output02.txt
rename to Session07 - Linked Lists, Sorting/test/point-sorting/testcases/output/output02.txt
diff --git a/Session07/test/point-sorting/testcases/output/output03.txt b/Session07 - Linked Lists, Sorting/test/point-sorting/testcases/output/output03.txt
similarity index 100%
rename from Session07/test/point-sorting/testcases/output/output03.txt
rename to Session07 - Linked Lists, Sorting/test/point-sorting/testcases/output/output03.txt
diff --git a/Session07/test/point-sorting/testcases/output/output04.txt b/Session07 - Linked Lists, Sorting/test/point-sorting/testcases/output/output04.txt
similarity index 100%
rename from Session07/test/point-sorting/testcases/output/output04.txt
rename to Session07 - Linked Lists, Sorting/test/point-sorting/testcases/output/output04.txt
diff --git a/Session07/test/point-sorting/testcases/output/output05.txt b/Session07 - Linked Lists, Sorting/test/point-sorting/testcases/output/output05.txt
similarity index 100%
rename from Session07/test/point-sorting/testcases/output/output05.txt
rename to Session07 - Linked Lists, Sorting/test/point-sorting/testcases/output/output05.txt
diff --git a/Session07/test/point-sorting/testcases/output/output06.txt b/Session07 - Linked Lists, Sorting/test/point-sorting/testcases/output/output06.txt
similarity index 100%
rename from Session07/test/point-sorting/testcases/output/output06.txt
rename to Session07 - Linked Lists, Sorting/test/point-sorting/testcases/output/output06.txt
diff --git a/Session07/test/selectionsort/SelectionSortTestGenerator.java b/Session07 - Linked Lists, Sorting/test/selectionsort/SelectionSortTestGenerator.java
similarity index 100%
rename from Session07/test/selectionsort/SelectionSortTestGenerator.java
rename to Session07 - Linked Lists, Sorting/test/selectionsort/SelectionSortTestGenerator.java
diff --git a/Session07/test/selectionsort/SelectionSorterTest.java b/Session07 - Linked Lists, Sorting/test/selectionsort/SelectionSorterTest.java
similarity index 100%
rename from Session07/test/selectionsort/SelectionSorterTest.java
rename to Session07 - Linked Lists, Sorting/test/selectionsort/SelectionSorterTest.java
diff --git a/Session07/test/selectionsort/testcases/input/input00.txt b/Session07 - Linked Lists, Sorting/test/selectionsort/testcases/input/input00.txt
similarity index 100%
rename from Session07/test/selectionsort/testcases/input/input00.txt
rename to Session07 - Linked Lists, Sorting/test/selectionsort/testcases/input/input00.txt
diff --git a/Session07/test/selectionsort/testcases/input/input01.txt b/Session07 - Linked Lists, Sorting/test/selectionsort/testcases/input/input01.txt
similarity index 100%
rename from Session07/test/selectionsort/testcases/input/input01.txt
rename to Session07 - Linked Lists, Sorting/test/selectionsort/testcases/input/input01.txt
diff --git a/Session07/test/selectionsort/testcases/input/input02.txt b/Session07 - Linked Lists, Sorting/test/selectionsort/testcases/input/input02.txt
similarity index 100%
rename from Session07/test/selectionsort/testcases/input/input02.txt
rename to Session07 - Linked Lists, Sorting/test/selectionsort/testcases/input/input02.txt
diff --git a/Session07/test/selectionsort/testcases/input/input03.txt b/Session07 - Linked Lists, Sorting/test/selectionsort/testcases/input/input03.txt
similarity index 100%
rename from Session07/test/selectionsort/testcases/input/input03.txt
rename to Session07 - Linked Lists, Sorting/test/selectionsort/testcases/input/input03.txt
diff --git a/Session07/test/selectionsort/testcases/input/input04.txt b/Session07 - Linked Lists, Sorting/test/selectionsort/testcases/input/input04.txt
similarity index 100%
rename from Session07/test/selectionsort/testcases/input/input04.txt
rename to Session07 - Linked Lists, Sorting/test/selectionsort/testcases/input/input04.txt
diff --git a/Session07/test/selectionsort/testcases/input/input05.txt b/Session07 - Linked Lists, Sorting/test/selectionsort/testcases/input/input05.txt
similarity index 100%
rename from Session07/test/selectionsort/testcases/input/input05.txt
rename to Session07 - Linked Lists, Sorting/test/selectionsort/testcases/input/input05.txt
diff --git a/Session07/test/selectionsort/testcases/output/output00.txt b/Session07 - Linked Lists, Sorting/test/selectionsort/testcases/output/output00.txt
similarity index 100%
rename from Session07/test/selectionsort/testcases/output/output00.txt
rename to Session07 - Linked Lists, Sorting/test/selectionsort/testcases/output/output00.txt
diff --git a/Session07/test/selectionsort/testcases/output/output01.txt b/Session07 - Linked Lists, Sorting/test/selectionsort/testcases/output/output01.txt
similarity index 100%
rename from Session07/test/selectionsort/testcases/output/output01.txt
rename to Session07 - Linked Lists, Sorting/test/selectionsort/testcases/output/output01.txt
diff --git a/Session07/test/selectionsort/testcases/output/output02.txt b/Session07 - Linked Lists, Sorting/test/selectionsort/testcases/output/output02.txt
similarity index 100%
rename from Session07/test/selectionsort/testcases/output/output02.txt
rename to Session07 - Linked Lists, Sorting/test/selectionsort/testcases/output/output02.txt
diff --git a/Session07/test/selectionsort/testcases/output/output03.txt b/Session07 - Linked Lists, Sorting/test/selectionsort/testcases/output/output03.txt
similarity index 100%
rename from Session07/test/selectionsort/testcases/output/output03.txt
rename to Session07 - Linked Lists, Sorting/test/selectionsort/testcases/output/output03.txt
diff --git a/Session07/test/selectionsort/testcases/output/output04.txt b/Session07 - Linked Lists, Sorting/test/selectionsort/testcases/output/output04.txt
similarity index 100%
rename from Session07/test/selectionsort/testcases/output/output04.txt
rename to Session07 - Linked Lists, Sorting/test/selectionsort/testcases/output/output04.txt
diff --git a/Session07/test/selectionsort/testcases/output/output05.txt b/Session07 - Linked Lists, Sorting/test/selectionsort/testcases/output/output05.txt
similarity index 100%
rename from Session07/test/selectionsort/testcases/output/output05.txt
rename to Session07 - Linked Lists, Sorting/test/selectionsort/testcases/output/output05.txt
diff --git a/Session08/README.md b/Session08 - Collections, Trees/README.md
similarity index 100%
rename from Session08/README.md
rename to Session08 - Collections, Trees/README.md
diff --git a/Session08/binarytree/problems/BinarySearchTree.java b/Session08 - Collections, Trees/binarytree/problems/BinarySearchTree.java
similarity index 100%
rename from Session08/binarytree/problems/BinarySearchTree.java
rename to Session08 - Collections, Trees/binarytree/problems/BinarySearchTree.java
diff --git a/Session08/binarytree/problems/BinaryTree.java b/Session08 - Collections, Trees/binarytree/problems/BinaryTree.java
similarity index 100%
rename from Session08/binarytree/problems/BinaryTree.java
rename to Session08 - Collections, Trees/binarytree/problems/BinaryTree.java
diff --git a/Session08/binarytree/problems/TreeNode.java b/Session08 - Collections, Trees/binarytree/problems/TreeNode.java
similarity index 100%
rename from Session08/binarytree/problems/TreeNode.java
rename to Session08 - Collections, Trees/binarytree/problems/TreeNode.java
diff --git a/Session08/test/bst-array/BstArray.java b/Session08 - Collections, Trees/test/bst-array/BstArray.java
similarity index 100%
rename from Session08/test/bst-array/BstArray.java
rename to Session08 - Collections, Trees/test/bst-array/BstArray.java
diff --git a/Session08/test/bst-array/bst1.png b/Session08 - Collections, Trees/test/bst-array/bst1.png
similarity index 100%
rename from Session08/test/bst-array/bst1.png
rename to Session08 - Collections, Trees/test/bst-array/bst1.png
diff --git a/Session08/test/bst-array/bst2.png b/Session08 - Collections, Trees/test/bst-array/bst2.png
similarity index 100%
rename from Session08/test/bst-array/bst2.png
rename to Session08 - Collections, Trees/test/bst-array/bst2.png
diff --git a/Session08/test/bst-array/generateTests.bat b/Session08 - Collections, Trees/test/bst-array/generateTests.bat
similarity index 100%
rename from Session08/test/bst-array/generateTests.bat
rename to Session08 - Collections, Trees/test/bst-array/generateTests.bat
diff --git a/Session08/test/bst-array/testcases/input/input00.txt b/Session08 - Collections, Trees/test/bst-array/testcases/input/input00.txt
similarity index 100%
rename from Session08/test/bst-array/testcases/input/input00.txt
rename to Session08 - Collections, Trees/test/bst-array/testcases/input/input00.txt
diff --git a/Session08/test/bst-array/testcases/input/input01.txt b/Session08 - Collections, Trees/test/bst-array/testcases/input/input01.txt
similarity index 100%
rename from Session08/test/bst-array/testcases/input/input01.txt
rename to Session08 - Collections, Trees/test/bst-array/testcases/input/input01.txt
diff --git a/Session08/test/bst-array/testcases/input/input02.txt b/Session08 - Collections, Trees/test/bst-array/testcases/input/input02.txt
similarity index 100%
rename from Session08/test/bst-array/testcases/input/input02.txt
rename to Session08 - Collections, Trees/test/bst-array/testcases/input/input02.txt
diff --git a/Session08/test/bst-array/testcases/input/input03.txt b/Session08 - Collections, Trees/test/bst-array/testcases/input/input03.txt
similarity index 100%
rename from Session08/test/bst-array/testcases/input/input03.txt
rename to Session08 - Collections, Trees/test/bst-array/testcases/input/input03.txt
diff --git a/Session08/test/bst-array/testcases/input/input04.txt b/Session08 - Collections, Trees/test/bst-array/testcases/input/input04.txt
similarity index 100%
rename from Session08/test/bst-array/testcases/input/input04.txt
rename to Session08 - Collections, Trees/test/bst-array/testcases/input/input04.txt
diff --git a/Session08/test/bst-array/testcases/input/input05.txt b/Session08 - Collections, Trees/test/bst-array/testcases/input/input05.txt
similarity index 100%
rename from Session08/test/bst-array/testcases/input/input05.txt
rename to Session08 - Collections, Trees/test/bst-array/testcases/input/input05.txt
diff --git a/Session08/test/bst-array/testcases/input/input06.txt b/Session08 - Collections, Trees/test/bst-array/testcases/input/input06.txt
similarity index 100%
rename from Session08/test/bst-array/testcases/input/input06.txt
rename to Session08 - Collections, Trees/test/bst-array/testcases/input/input06.txt
diff --git a/Session08/test/bst-array/testcases/input/input07.txt b/Session08 - Collections, Trees/test/bst-array/testcases/input/input07.txt
similarity index 100%
rename from Session08/test/bst-array/testcases/input/input07.txt
rename to Session08 - Collections, Trees/test/bst-array/testcases/input/input07.txt
diff --git a/Session08/test/bst-array/testcases/output/output00.txt b/Session08 - Collections, Trees/test/bst-array/testcases/output/output00.txt
similarity index 100%
rename from Session08/test/bst-array/testcases/output/output00.txt
rename to Session08 - Collections, Trees/test/bst-array/testcases/output/output00.txt
diff --git a/Session08/test/bst-array/testcases/output/output01.txt b/Session08 - Collections, Trees/test/bst-array/testcases/output/output01.txt
similarity index 100%
rename from Session08/test/bst-array/testcases/output/output01.txt
rename to Session08 - Collections, Trees/test/bst-array/testcases/output/output01.txt
diff --git a/Session08/test/bst-array/testcases/output/output02.txt b/Session08 - Collections, Trees/test/bst-array/testcases/output/output02.txt
similarity index 100%
rename from Session08/test/bst-array/testcases/output/output02.txt
rename to Session08 - Collections, Trees/test/bst-array/testcases/output/output02.txt
diff --git a/Session08/test/bst-array/testcases/output/output03.txt b/Session08 - Collections, Trees/test/bst-array/testcases/output/output03.txt
similarity index 100%
rename from Session08/test/bst-array/testcases/output/output03.txt
rename to Session08 - Collections, Trees/test/bst-array/testcases/output/output03.txt
diff --git a/Session08/test/bst-array/testcases/output/output04.txt b/Session08 - Collections, Trees/test/bst-array/testcases/output/output04.txt
similarity index 100%
rename from Session08/test/bst-array/testcases/output/output04.txt
rename to Session08 - Collections, Trees/test/bst-array/testcases/output/output04.txt
diff --git a/Session08/test/bst-array/testcases/output/output05.txt b/Session08 - Collections, Trees/test/bst-array/testcases/output/output05.txt
similarity index 100%
rename from Session08/test/bst-array/testcases/output/output05.txt
rename to Session08 - Collections, Trees/test/bst-array/testcases/output/output05.txt
diff --git a/Session08/test/bst-array/testcases/output/output06.txt b/Session08 - Collections, Trees/test/bst-array/testcases/output/output06.txt
similarity index 100%
rename from Session08/test/bst-array/testcases/output/output06.txt
rename to Session08 - Collections, Trees/test/bst-array/testcases/output/output06.txt
diff --git a/Session08/test/bst-array/testcases/output/output07.txt b/Session08 - Collections, Trees/test/bst-array/testcases/output/output07.txt
similarity index 100%
rename from Session08/test/bst-array/testcases/output/output07.txt
rename to Session08 - Collections, Trees/test/bst-array/testcases/output/output07.txt
diff --git a/Session08/test/string-perms/StringPermute.java b/Session08 - Collections, Trees/test/string-perms/StringPermute.java
similarity index 100%
rename from Session08/test/string-perms/StringPermute.java
rename to Session08 - Collections, Trees/test/string-perms/StringPermute.java
diff --git a/Session08/test/string-perms/generateTests.bat b/Session08 - Collections, Trees/test/string-perms/generateTests.bat
similarity index 100%
rename from Session08/test/string-perms/generateTests.bat
rename to Session08 - Collections, Trees/test/string-perms/generateTests.bat
diff --git a/Session08/test/string-perms/testcases/input/input00.txt b/Session08 - Collections, Trees/test/string-perms/testcases/input/input00.txt
similarity index 100%
rename from Session08/test/string-perms/testcases/input/input00.txt
rename to Session08 - Collections, Trees/test/string-perms/testcases/input/input00.txt
diff --git a/Session08/test/string-perms/testcases/input/input01.txt b/Session08 - Collections, Trees/test/string-perms/testcases/input/input01.txt
similarity index 100%
rename from Session08/test/string-perms/testcases/input/input01.txt
rename to Session08 - Collections, Trees/test/string-perms/testcases/input/input01.txt
diff --git a/Session08/test/string-perms/testcases/input/input02.txt b/Session08 - Collections, Trees/test/string-perms/testcases/input/input02.txt
similarity index 100%
rename from Session08/test/string-perms/testcases/input/input02.txt
rename to Session08 - Collections, Trees/test/string-perms/testcases/input/input02.txt
diff --git a/Session08/test/string-perms/testcases/input/input03.txt b/Session08 - Collections, Trees/test/string-perms/testcases/input/input03.txt
similarity index 100%
rename from Session08/test/string-perms/testcases/input/input03.txt
rename to Session08 - Collections, Trees/test/string-perms/testcases/input/input03.txt
diff --git a/Session08/test/string-perms/testcases/input/input04.txt b/Session08 - Collections, Trees/test/string-perms/testcases/input/input04.txt
similarity index 100%
rename from Session08/test/string-perms/testcases/input/input04.txt
rename to Session08 - Collections, Trees/test/string-perms/testcases/input/input04.txt
diff --git a/Session08/test/string-perms/testcases/input/input05.txt b/Session08 - Collections, Trees/test/string-perms/testcases/input/input05.txt
similarity index 100%
rename from Session08/test/string-perms/testcases/input/input05.txt
rename to Session08 - Collections, Trees/test/string-perms/testcases/input/input05.txt
diff --git a/Session08/test/string-perms/testcases/input/input06.txt b/Session08 - Collections, Trees/test/string-perms/testcases/input/input06.txt
similarity index 100%
rename from Session08/test/string-perms/testcases/input/input06.txt
rename to Session08 - Collections, Trees/test/string-perms/testcases/input/input06.txt
diff --git a/Session08/test/string-perms/testcases/input/input07.txt b/Session08 - Collections, Trees/test/string-perms/testcases/input/input07.txt
similarity index 100%
rename from Session08/test/string-perms/testcases/input/input07.txt
rename to Session08 - Collections, Trees/test/string-perms/testcases/input/input07.txt
diff --git a/Session08/test/string-perms/testcases/output/output00.txt b/Session08 - Collections, Trees/test/string-perms/testcases/output/output00.txt
similarity index 100%
rename from Session08/test/string-perms/testcases/output/output00.txt
rename to Session08 - Collections, Trees/test/string-perms/testcases/output/output00.txt
diff --git a/Session08/test/string-perms/testcases/output/output01.txt b/Session08 - Collections, Trees/test/string-perms/testcases/output/output01.txt
similarity index 100%
rename from Session08/test/string-perms/testcases/output/output01.txt
rename to Session08 - Collections, Trees/test/string-perms/testcases/output/output01.txt
diff --git a/Session08/test/string-perms/testcases/output/output02.txt b/Session08 - Collections, Trees/test/string-perms/testcases/output/output02.txt
similarity index 100%
rename from Session08/test/string-perms/testcases/output/output02.txt
rename to Session08 - Collections, Trees/test/string-perms/testcases/output/output02.txt
diff --git a/Session08/test/string-perms/testcases/output/output03.txt b/Session08 - Collections, Trees/test/string-perms/testcases/output/output03.txt
similarity index 100%
rename from Session08/test/string-perms/testcases/output/output03.txt
rename to Session08 - Collections, Trees/test/string-perms/testcases/output/output03.txt
diff --git a/Session08/test/string-perms/testcases/output/output04.txt b/Session08 - Collections, Trees/test/string-perms/testcases/output/output04.txt
similarity index 100%
rename from Session08/test/string-perms/testcases/output/output04.txt
rename to Session08 - Collections, Trees/test/string-perms/testcases/output/output04.txt
diff --git a/Session08/test/string-perms/testcases/output/output05.txt b/Session08 - Collections, Trees/test/string-perms/testcases/output/output05.txt
similarity index 100%
rename from Session08/test/string-perms/testcases/output/output05.txt
rename to Session08 - Collections, Trees/test/string-perms/testcases/output/output05.txt
diff --git a/Session08/test/string-perms/testcases/output/output06.txt b/Session08 - Collections, Trees/test/string-perms/testcases/output/output06.txt
similarity index 100%
rename from Session08/test/string-perms/testcases/output/output06.txt
rename to Session08 - Collections, Trees/test/string-perms/testcases/output/output06.txt
diff --git a/Session08/test/string-perms/testcases/output/output07.txt b/Session08 - Collections, Trees/test/string-perms/testcases/output/output07.txt
similarity index 100%
rename from Session08/test/string-perms/testcases/output/output07.txt
rename to Session08 - Collections, Trees/test/string-perms/testcases/output/output07.txt
diff --git a/Session09/README.md b/Session09 - Maps, Graphs/README.md
similarity index 99%
rename from Session09/README.md
rename to Session09 - Maps, Graphs/README.md
index 591bde9..040ec46 100644
--- a/Session09/README.md
+++ b/Session09 - Maps, Graphs/README.md
@@ -206,7 +206,7 @@ Note that both the algorithms are identical, except for a single data structure
3. The shortest path from the source vertex to the goal vertex
Write your code step by step, using the pseudo code above as a starting point. Think and reason about whether your algorithm would work for directed graphs as well. Then try it out.
4. Implement the DFS algorithm for an unweighted, undirected graph, to determine whether or not there are cycles in the graph. (Hint: you will ALWAYS encounter a vertex that is already on the stack in case there is a cycle)
-5. Study and implement [Djikstra's algorithm](https://www.hackerearth.com/practice/notes/dijkstras-algorithm/) for the shortest path in a weighted, directed graph. (It is pronounced as Dyke-stra)
+5. Study and implement [Dijkstra's algorithm](https://www.hackerearth.com/practice/notes/dijkstras-algorithm/) for the shortest path in a weighted, directed graph. (It is pronounced as Dyke-stra)
#### An Extensive List of Graph Topics
Go through the topic list for the [Graph section at GeeksForGeeks](http://www.geeksforgeeks.org/graph-data-structure-and-algorithms/), and read the following topics thoroughly:
diff --git a/Session10/README.md b/Session10 - Exception Handling/README.md
similarity index 100%
rename from Session10/README.md
rename to Session10 - Exception Handling/README.md
diff --git a/Session10/exception_hierarchy.png b/Session10 - Exception Handling/exception_hierarchy.png
similarity index 100%
rename from Session10/exception_hierarchy.png
rename to Session10 - Exception Handling/exception_hierarchy.png
diff --git a/Session10/gc/README.md b/Session10 - Exception Handling/gc/README.md
similarity index 100%
rename from Session10/gc/README.md
rename to Session10 - Exception Handling/gc/README.md
diff --git a/Session10/problems/Stories.java b/Session10 - Exception Handling/problems/Stories.java
similarity index 100%
rename from Session10/problems/Stories.java
rename to Session10 - Exception Handling/problems/Stories.java
diff --git a/Session10/problems/mymanjeeves.txt b/Session10 - Exception Handling/problems/mymanjeeves.txt
similarity index 100%
rename from Session10/problems/mymanjeeves.txt
rename to Session10 - Exception Handling/problems/mymanjeeves.txt
diff --git a/Session10/problems/righthojeeves.txt b/Session10 - Exception Handling/problems/righthojeeves.txt
similarity index 100%
rename from Session10/problems/righthojeeves.txt
rename to Session10 - Exception Handling/problems/righthojeeves.txt
diff --git a/Session10/solutions/Stories.java b/Session10 - Exception Handling/solutions/Stories.java
similarity index 100%
rename from Session10/solutions/Stories.java
rename to Session10 - Exception Handling/solutions/Stories.java
diff --git a/Session10/solutions/mymanjeeves.txt b/Session10 - Exception Handling/solutions/mymanjeeves.txt
similarity index 100%
rename from Session10/solutions/mymanjeeves.txt
rename to Session10 - Exception Handling/solutions/mymanjeeves.txt
diff --git a/Session10/solutions/righthojeeves.txt b/Session10 - Exception Handling/solutions/righthojeeves.txt
similarity index 100%
rename from Session10/solutions/righthojeeves.txt
rename to Session10 - Exception Handling/solutions/righthojeeves.txt