diff --git a/Semester 3/Assignments/MP2-chapter4_Java20_CalebFontenot/start.sh b/Semester 3/Assignments/MP2-chapter4_Java20_CalebFontenot/start.sh
new file mode 100755
index 0000000..2faaa2e
--- /dev/null
+++ b/Semester 3/Assignments/MP2-chapter4_Java20_CalebFontenot/start.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+java --module-path /usr/lib --add-modules javafx.fxml,javafx.controls,javafx.media -XX:+UnlockExperimentalVMOptions -XX:+EagerJVMCI -XX:+EnableJVMCI -XX:+UseJVMCICompiler -XX:+UseJVMCINativeLibrary -Djava.awt.graphicsenv=net.java.openjdk.cacio.wayland.WaylandGraphicsEnvironment -jar dist/MP2-chapter4_Java20_CalebFontenot.jar
diff --git a/Semester 3/Exams/Projects/GenericMergeSortExam.java.html b/Semester 3/Exams/Projects/GenericMergeSortExam.java.html
new file mode 100644
index 0000000..1a746a5
--- /dev/null
+++ b/Semester 3/Exams/Projects/GenericMergeSortExam.java.html
@@ -0,0 +1,155 @@
+
+
+
+GenericMergeSortExam.java
+
+
+
+
+C:\Users\ar114\Documents\NetBeansProjects\ProgramingExam2_CalebFontenot\src\main\java\com\mycompany\programingexam2_calebfontenot\GenericMergeSortExam.java |
+
+
+nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt
+nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java
+
+package com.mycompany.programingexam2_calebfontenot;
+
+import java.lang.reflect.Array;
+import java.util.Comparator;
+
+
+
+@author
+
+public class GenericMergeSortExam {
+
+ public static <E extends Comparable<E>> void mergeSort(E[] list) {
+ mergeSort(list,
+ new Comparator<E>() {
+ @Override
+ public int compare(E e1, E e2) {
+ int compareResult = ((Comparable<E>) e1).compareTo(e2);
+ return compareResult;
+ }
+ });
+ }
+
+ public static <E> void mergeSort(E[] list,
+ Comparator<? super E> comparator) {
+ if (list.length > 1) {
+
+ E[] firstHalf = (E[]) new Object[list.length / 2];
+
+ System.arraycopy(list, 0, firstHalf, 0, list.length / 2);
+ mergeSort(firstHalf, comparator);
+
+ int secondHalfLength = list.length - list.length / 2;
+ E[] secondHalf = (E[]) new Object[secondHalfLength];
+ System.arraycopy(list, list.length / 2,
+ secondHalf, 0, secondHalfLength);
+ mergeSort(secondHalf, comparator);
+
+ E[] temp = merge1(firstHalf, secondHalf, comparator);
+ System.arraycopy(temp, 0, list, 0, temp.length);
+ }
+ }
+
+
+Merges the two lists using a Comparator.
+
+@param <E>
+@param list1
+@param list2
+@param comparator
+@return
+
+ private static <E> E[]
+ merge1(E[] list1, E[] list2, Comparator<? super E> comparator) {
+ int returnArraySize = list1.length + list2.length;
+ E[] returnArray = (E[]) new Object[returnArraySize];
+ int list1Iterator = 0, list2Iterator = 0, returnArrayIterator = 0, iterationsRemaining = 0;
+ for (; returnArrayIterator < returnArraySize; ++returnArrayIterator) {
+ iterationsRemaining = (returnArraySize - returnArrayIterator);
+ if (comparator.compare(list1[list1Iterator], list2[list2Iterator]) <= 0) {
+ returnArray[returnArrayIterator] = list1[list1Iterator];
+ if (iterationsRemaining > 1)
+ returnArray[returnArrayIterator + 1] = list2[list2Iterator];
+ if ((list1.length - 1) < (list1Iterator)) {
+ ++list1Iterator;
+ } else {
+ ++list2Iterator;
+ }
+ ++returnArrayIterator;
+ } else {
+ returnArray[returnArrayIterator] = list2[list2Iterator];
+ if (iterationsRemaining > 1)
+ returnArray[returnArrayIterator + 1] = list1[list1Iterator];
+ if ((list2.length - 1) < (list2Iterator)) {
+ ++list2Iterator;
+ } else {
+ ++list1Iterator;
+ }
+ ++returnArrayIterator;
+
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+ }
+ return returnArray;
+ }
+
+ public static void main(String[] args) {
+ Integer[] list
+ = {
+ 2, 3, 2, 5, 6, 1, -2, 3, 14, 12
+ };
+ mergeSort(list);
+ for (int i = 0; i < list.length; i++) {
+ System.out.print(list[i] + " ");
+ }
+ System.out.println();
+ String[] list1
+ = {
+ "ABC", "abc", "abm", "Anf", "Good", "Bad", "nice"
+ };
+ mergeSort(list1, new Comparator<String>() {
+ @Override
+ public int compare(String s1, String s2) {
+ return s1.compareToIgnoreCase(s2);
+ }
+ });
+ for (int i = 0; i < list1.length; i++) {
+ System.out.print(list1[i] + " ");
+ }
+ System.out.println("");
+ }
+}
+
+
+
diff --git a/Semester 3/Exams/Projects/ProgramingExam2_CalebFontenot.java.html b/Semester 3/Exams/Projects/ProgramingExam2_CalebFontenot.java.html
new file mode 100644
index 0000000..dd1a686
--- /dev/null
+++ b/Semester 3/Exams/Projects/ProgramingExam2_CalebFontenot.java.html
@@ -0,0 +1,165 @@
+
+
+
+ProgramingExam2_CalebFontenot.java
+
+
+
+
+C:\Users\ar114\Documents\NetBeansProjects\ProgramingExam2_CalebFontenot\src\main\java\com\mycompany\programingexam2_calebfontenot\ProgramingExam2_CalebFontenot.java |
+
+
+nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt
+nbfs://nbhost/SystemFileSystem/Templates/Project/Maven2/JavaApp/src/main/java/$
+
+package com.mycompany.programingexam2_calebfontenot;
+
+
+
+@author
+
+public class ProgramingExam2_CalebFontenot<T> {
+
+ Node<T> head;
+ Node<T> tail;
+
+ class Node<T> {
+
+ T t;
+ Node<T> l;
+ Node<T> r;
+ }
+
+ public T removeAt(int pos) {
+ if (pos < 0 || pos > size() - 1) {
+ throw new IndexOutOfBoundsException();
+ }
+
+
+ if (size() == 0) {
+ throw new RuntimeException("The list empty.");
+ }
+ T returnT = null;
+
+ if (pos == 0)
+ {
+ Node<T> pointer = head.r;
+ returnT = (T) head.t;
+ pointer.l = null;
+ head = pointer;
+ } else if (pos == (size() - 1))
+ {
+ Node<T> pointer = tail.l.l;
+ returnT = (T) tail.t;
+ pointer.r = null;
+ tail = pointer;
+ } else
+ {
+
+ Node<T> pointer = head;
+ for (int i = 0; i < pos - 1; ++i) {
+ pointer = pointer.r;
+ }
+ pointer.r = pointer.r.r;
+ pointer.l = pointer.r;
+ returnT = (T) pointer.t;
+
+ }
+
+ return returnT;
+ }
+
+ public void clear() {
+ head = tail = null;
+ }
+
+ public void addAt(T t, int pos) {
+ if (pos < 0 || pos > size()) {
+ throw new IndexOutOfBoundsException();
+ }
+ Node<T> newNode = new Node<T>();
+ newNode.t = t;
+ if (head == null)
+ {
+ head = tail = newNode;
+ } else if (pos == 0)
+ {
+ newNode.r = head;
+ head.l = newNode;
+ head = newNode;
+ } else if (pos == size())
+ {
+ newNode.l = tail;
+ tail.r = newNode;
+ tail = newNode;
+ } else
+ {
+ Node<T> p = head;
+ for (int i = 0; i < pos - 1; ++i) {
+ p = p.r;
+ }
+ newNode.l = p;
+ newNode.r = p.r;
+ p.r.l = newNode;
+ p.r = newNode;
+ }
+ }
+
+ public int size() {
+ Node<T> p = head;
+ int count = 0;
+ while (p != null) {
+ count++;
+ p = p.r;
+ }
+ return count;
+ }
+
+ @Override
+ public String toString() {
+ String s = "";
+ Node<T> p = head;
+ while (p != null) {
+ s += p.t.toString() + " ";
+ p = p.r;
+ }
+ return s;
+ }
+
+ public static void main(String[] args) {
+ ProgramingExam2_CalebFontenot<Integer> list = new ProgramingExam2_CalebFontenot<Integer>();
+
+ list.addAt(20, 0);
+ list.addAt(10, 0);
+ list.addAt(40, 2);
+ list.addAt(30, 2);
+ list.addAt(50, 4);
+ System.out.println(list);
+ System.out.println(list.removeAt(0));
+ System.out.println(list);
+ System.out.println(list.removeAt(2));
+ System.out.println(list);
+
+ System.out.println(list.removeAt(2));
+ System.out.println(list.toString());
+ }
+
+}
+
+
+
diff --git a/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/pom.xml b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/pom.xml
new file mode 100644
index 0000000..cced906
--- /dev/null
+++ b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/pom.xml
@@ -0,0 +1,14 @@
+
+
+ 4.0.0
+ com.mycompany.programmingquiz1_calebfontenot
+ ProgrammingQuiz1_CalebFontenot
+ 1.0-SNAPSHOT
+ jar
+
+ UTF-8
+ 11
+ 11
+ com.mycompany.programmingquiz1_calebfontenot.ProgrammingQuiz1_CalebFontenot
+
+
\ No newline at end of file
diff --git a/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/src/main/java/com/mycompany/programmingquiz1_calebfontenot/DoubleLinkedListExam.java b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/src/main/java/com/mycompany/programmingquiz1_calebfontenot/DoubleLinkedListExam.java
new file mode 100644
index 0000000..3a5a5ef
--- /dev/null
+++ b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/src/main/java/com/mycompany/programmingquiz1_calebfontenot/DoubleLinkedListExam.java
@@ -0,0 +1,101 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.mycompany.programmingquiz1_calebfontenot;
+
+/**
+ *
+ * @author ar114
+ * @param
+ */
+public class DoubleLinkedListExam {
+
+ Node head;
+ Node tail;
+
+ class Node {
+
+ T t;
+ Node l;
+ Node r;
+ }
+
+ public T removeAt(int pos) {
+ return null;
+ }
+
+ public void clear() {
+ head = tail = null;
+ }
+
+ public void addAt(T t, int pos) {
+ System.out.println("Linked List size: " + this.size());
+ if (pos == 0) { // add first element
+ Node newNode = new Node();
+ newNode.t = t;
+ head = tail = newNode;
+ return;
+ }
+ if (pos == this.size()) { // add at end
+ Node tmp = tail;
+ Node newNode = new Node();
+ newNode.t = t;
+ tmp.r = newNode;
+ newNode.l = tmp;
+ newNode.r = null;
+ tail = newNode;
+ return;
+ }
+ if (pos < this.size()) { // add in middle
+ Node pointer = head;
+ for (int i = 0; i < this.size() - 1; ++i) {
+ pointer = pointer.r;
+ }
+ Node newNode = new Node();
+ newNode.t = t;
+ newNode.l = pointer;
+ newNode.r = pointer.l;
+ pointer.r = newNode;
+ pointer.r.l = newNode;
+ return;
+ }
+ if (pos < 0 || this.size() < pos) {
+ throw new IndexOutOfBoundsException("Given index is outside the range of acceptible values.");
+ }
+
+ }
+
+ public int size() {
+ Node p = head;
+ int count = 0;
+ while (p != null) {
+ count++;
+ p = p.r;
+ }
+ return count;
+ }
+
+ @Override
+ public String toString() {
+ String s = "";
+ Node p = head;
+ while (p != null) {
+ s += p.t.toString() + " ";
+ p = p.r;
+ }
+ return s;
+ }
+
+ public static void main(String[] args) {
+ DoubleLinkedListExam list = new DoubleLinkedListExam<>();
+ list.addAt(10, 0);
+ System.out.println(list);
+ list.addAt(30, 1);
+ list.addAt(20, 1);
+ list.addAt(5, 0);
+
+ System.out.println(list);
+ }
+
+}
diff --git a/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/src/main/java/com/mycompany/programmingquiz1_calebfontenot/InsertionSort.java b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/src/main/java/com/mycompany/programmingquiz1_calebfontenot/InsertionSort.java
new file mode 100644
index 0000000..7b5b30c
--- /dev/null
+++ b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/src/main/java/com/mycompany/programmingquiz1_calebfontenot/InsertionSort.java
@@ -0,0 +1,41 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.mycompany.programmingquiz1_calebfontenot;
+
+/**
+ *
+ * @author ar114
+ */
+public class InsertionSort {
+ public static void insertionSort(String[] list)
+ {
+ int i = 1;
+ while (i < list.length)
+ {
+ if (list[i - 1].compareTo(list[i]) >= 0) {
+ String tmp = list[i - 1];
+ list[i - 1] = list[i];
+ list[i] = tmp;
+ }
+ ++i;
+ //1. Loop that opens the hole by shifting to the right
+
+ //2. End of loop of shifting ---Insert the current at the opened hole list[j+1]
+
+ }
+ }
+ public static void printArray(String[] array) {
+ for (String current: array) {
+ System.out.print(current + " ");
+ }
+ System.out.println();
+ }
+ public static void main(String[] args) {
+ String[] array = {"Zedfrey", "Hello", "Glorious", "World"};
+ printArray(array);
+ insertionSort(array);
+ printArray(array);
+ }
+}
diff --git a/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/src/main/java/com/mycompany/programmingquiz1_calebfontenot/ProgrammingQuiz1_CalebFontenot.java b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/src/main/java/com/mycompany/programmingquiz1_calebfontenot/ProgrammingQuiz1_CalebFontenot.java
new file mode 100644
index 0000000..e768658
--- /dev/null
+++ b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/src/main/java/com/mycompany/programmingquiz1_calebfontenot/ProgrammingQuiz1_CalebFontenot.java
@@ -0,0 +1,17 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Project/Maven2/JavaApp/src/main/java/${packagePath}/${mainClassName}.java to edit this template
+ */
+
+package com.mycompany.programmingquiz1_calebfontenot;
+
+/**
+ *
+ * @author ar114
+ */
+public class ProgrammingQuiz1_CalebFontenot {
+
+ public static void main(String[] args) {
+ System.out.println("Hello World!");
+ }
+}
diff --git a/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/ProgrammingQuiz1_CalebFontenot-1.0-SNAPSHOT.jar b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/ProgrammingQuiz1_CalebFontenot-1.0-SNAPSHOT.jar
new file mode 100644
index 0000000..943580d
Binary files /dev/null and b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/ProgrammingQuiz1_CalebFontenot-1.0-SNAPSHOT.jar differ
diff --git a/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/classes/com/mycompany/programmingquiz1_calebfontenot/DoubleLinkedListExam$Node.class b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/classes/com/mycompany/programmingquiz1_calebfontenot/DoubleLinkedListExam$Node.class
new file mode 100644
index 0000000..f64babc
Binary files /dev/null and b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/classes/com/mycompany/programmingquiz1_calebfontenot/DoubleLinkedListExam$Node.class differ
diff --git a/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/classes/com/mycompany/programmingquiz1_calebfontenot/DoubleLinkedListExam.class b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/classes/com/mycompany/programmingquiz1_calebfontenot/DoubleLinkedListExam.class
new file mode 100644
index 0000000..5610251
Binary files /dev/null and b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/classes/com/mycompany/programmingquiz1_calebfontenot/DoubleLinkedListExam.class differ
diff --git a/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/classes/com/mycompany/programmingquiz1_calebfontenot/InsertionSort.class b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/classes/com/mycompany/programmingquiz1_calebfontenot/InsertionSort.class
new file mode 100644
index 0000000..72c88ab
Binary files /dev/null and b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/classes/com/mycompany/programmingquiz1_calebfontenot/InsertionSort.class differ
diff --git a/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/classes/com/mycompany/programmingquiz1_calebfontenot/ProgrammingQuiz1_CalebFontenot.class b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/classes/com/mycompany/programmingquiz1_calebfontenot/ProgrammingQuiz1_CalebFontenot.class
new file mode 100644
index 0000000..f24cda4
Binary files /dev/null and b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/classes/com/mycompany/programmingquiz1_calebfontenot/ProgrammingQuiz1_CalebFontenot.class differ
diff --git a/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/maven-archiver/pom.properties b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..9031ae4
--- /dev/null
+++ b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Sun Dec 03 12:52:32 CST 2023
+artifactId=ProgrammingQuiz1_CalebFontenot
+groupId=com.mycompany.programmingquiz1_calebfontenot
+version=1.0-SNAPSHOT
diff --git a/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..e2a689c
--- /dev/null
+++ b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,4 @@
+com/mycompany/programmingquiz1_calebfontenot/InsertionSort.class
+com/mycompany/programmingquiz1_calebfontenot/DoubleLinkedListExam.class
+com/mycompany/programmingquiz1_calebfontenot/ProgrammingQuiz1_CalebFontenot.class
+com/mycompany/programmingquiz1_calebfontenot/DoubleLinkedListExam$Node.class
diff --git a/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..68d4251
--- /dev/null
+++ b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,3 @@
+/home/caleb/ASDV-Java/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/src/main/java/com/mycompany/programmingquiz1_calebfontenot/ProgrammingQuiz1_CalebFontenot.java
+/home/caleb/ASDV-Java/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/src/main/java/com/mycompany/programmingquiz1_calebfontenot/InsertionSort.java
+/home/caleb/ASDV-Java/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/src/main/java/com/mycompany/programmingquiz1_calebfontenot/DoubleLinkedListExam.java
diff --git a/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/Semester 3/Exams/Projects/ProgrammingQuiz1_CalebFontenot/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
new file mode 100644
index 0000000..e69de29