diff --git a/1/1_a.py b/1/1_a.py
new file mode 100644
index 0000000000000000000000000000000000000000..62b94586fb2197f89bbadf7ecc9b1b20491ef97d
--- /dev/null
+++ b/1/1_a.py
@@ -0,0 +1,50 @@
+import numpy
+import math
+from qiskit import *
+from qiskit import BasicAer
+
+#Program NNAND gate using X and CCX Gates
+'''
+NAND
+
+1 | 0 0
+1 | 0 1
+1 | 1 0
+0 | 1 1
+'''
+
+#Quantum Wire
+q = QuantumRegister(3, 'q')
+#Classical Wire
+c = ClassicalRegister(3, 'c')
+#Build the Circuit
+circ = QuantumCircuit(q,c)
+
+#Inputs
+circ.x(q[0])
+#circ.x(q[1])
+
+#NAND
+
+circ.ccx(q[0],q[1],q[2])
+circ.x(q[2])
+#circ.ccx(q[0],q[2],q[1])
+
+#Measure 
+circ.barrier(q[0],q[1],q[2])
+circ.measure(q[0], c[0])
+circ.measure(q[1], c[1])
+circ.measure(q[2], c[2])
+
+#Picture Time
+X = circ.draw(output="text")
+print(X)
+
+#Run an experiment
+backend_sim = BasicAer.get_backend('qasm_simulator')
+job_sim = execute(circ,backend_sim, shots=2048)
+result_sim = job_sim.result()
+counts = result_sim.get_counts()
+print(counts)
+
+
diff --git a/1/1_b.py b/1/1_b.py
new file mode 100644
index 0000000000000000000000000000000000000000..09863c5e6d33766c4d3af67397c3ed6de17c9918
--- /dev/null
+++ b/1/1_b.py
@@ -0,0 +1,53 @@
+import numpy
+import math
+from qiskit import *
+from qiskit import BasicAer
+
+#Program NOR gate using X and CCX Gates
+'''
+NOR
+
+1 | 0 0
+0 | 0 1
+0 | 1 0
+0 | 1 1
+''' Qu
+#Quantum Wire
+q = QuantumRegister(3, 'q')
+#Classical Wire
+c = ClassicalRegister(3, 'c')
+#Build the Circuit
+circ = QuantumCircuit(q,c)
+
+#Inputs
+circ.x(q[0])
+#circ.x(q[1])
+
+#Circuit
+circ.barrier(q[0],q[1],q[2])
+circ.x(q[0])
+circ.x(q[1])
+circ.ccx(q[0],q[1],q[2])
+
+#Undo ~A ^ B
+circ.x(q[0])
+circ.x(q[1])
+
+#Measure 
+circ.barrier(q[0],q[1],q[2])
+circ.measure(q[0], c[0])
+circ.measure(q[1], c[1])
+circ.measure(q[2], c[2])
+
+#Picture Time
+X = circ.draw(output="text")
+print(X)
+
+#Run an experiment
+backend_sim = BasicAer.get_backend('qasm_simulator')
+job_sim = execute(circ,backend_sim, shots=2048)
+result_sim = job_sim.result()
+counts = result_sim.get_counts()
+print(counts)
+
+
diff --git a/1/1_c.py b/1/1_c.py
new file mode 100644
index 0000000000000000000000000000000000000000..1a6bc51cc1e376bf026f2b002860870f41acf0f5
--- /dev/null
+++ b/1/1_c.py
@@ -0,0 +1,35 @@
+import numpy
+import math
+from qiskit import *
+from qiskit import BasicAer
+
+# Program XOR using Quantum Gates
+'''
+XOR
+0 | 0 0
+1 | 0 1
+1 | 1 0
+0 | 1 1
+'''
+
+#Quantum Wires
+q = QuantumRegister(3, 'q')
+#Classical Wires
+c = ClassicalRegister(3, 'c')
+#Build Circuit
+circ = QuantumCircuit(q,c)
+
+#Inputs
+
+
+#Circuit
+
+
+#Text Representation
+x=
+
+#Test and Results
+
+
+
+
diff --git a/Lectures/basic_logic.py b/Lectures/basic_logic.py
new file mode 100644
index 0000000000000000000000000000000000000000..278d2fa32304b8efd21014ba26ae0326a609da58
--- /dev/null
+++ b/Lectures/basic_logic.py
@@ -0,0 +1,65 @@
+
+#We need to load the Libraries
+import numpy
+import math
+from qiskit import *
+from qiskit import BasicAer
+
+#We need 5 quantum wires
+q = QuantumRegister(5,'q')
+#We only need 4 classical bits (3 inputs + 1 output)
+c = ClassicalRegister(4,'c')
+#Build the Circuit
+circ = QuantumCircuit(q,c)
+
+#We are Building
+#(A v B) & (~C)
+
+#Wires:
+#q[0] = A
+#q[1] = B
+#q[2] = C
+#q[3] = Temp Result
+#q[4] = Final Result
+
+#Lets set Values
+#A=1,B=0,C=1
+circ.x(q[0])
+circ.x(q[2])
+circ.barrier(q[0],q[1],q[2],q[3],q[4])
+
+#A v B = ~(~A & ~B)
+circ.x(q[0])
+circ.x(q[1])
+circ.ccx(q[0],q[1],q[3])#Res in q[3]
+circ.x(q[0])#undo temp change
+circ.x(q[1])#undo temp change
+circ.x(q[3])#Apply not to result
+
+#~C
+circ.x(q[2])
+
+#(A v B) & ~C
+#The barrier makes it look prettier
+circ.barrier(q[0],q[1],q[2],q[3],q[4])
+circ.ccx(q[2],q[3],q[4])
+circ.x(q[2])#Undo the not
+
+#Measure the Bits we care about
+circ.barrier(q[0],q[1],q[2],q[3],q[4])
+circ.measure(q[0],c[0])
+circ.measure(q[1],c[1])
+circ.measure(q[2],c[2])
+circ.measure(q[4],c[3])#Throw are q[3]
+
+X=circ.draw(output="text")
+print(X)
+
+#Run an experiment!
+backend_sim = BasicAer.get_backend('qasm_simulator')
+job_sim = execute(circ,backend_sim,shots=2048)
+result_sim = job_sim.result()
+counts = result_sim.get_counts()
+print(counts)
+
+