questions = {"Straight Lines": [
	{"question": "Which one of the following is not a logical operator?",
				"options" : ["||", "&&", "!", "@"],
				"answer" : "@"},
	{"question": "What is a variable",
				"options": ["A user named storage location with an associated value",
					        "Something that is likely to vary", 
					        "A placeholder that can represent any number"],
				"answer": "A user named storage location with an associated value"},
	{"question": "What is the difference between declaration and assignment?",
				"options": ["Declaration makes a variable exist, and assignment puts a value in the variable",
					        "Declaration puts a value in the variable, and assignment makes the variable exist"],
				"answer": "Declaration makes a variable exist, and assignment puts a value in the variable"},
	{"question": "Why are floats called floats?",
				"options": ["The decimal point floats around",
					        "Named after Edward P Float",
					        "The designers of the first language really liked root beer floats"],
				"answer": "The decimal point floats around"},
	{"question": "Select what 4 is not",
				"options": ["An integer literal", "An int", "A char", "Equivalent to 4.0"],
				"answer": "A char"},
	{"question": "What is the result of 12 % 10?",
				"options": ["1", "2", "3", "4"],
				"answer": "2"},
	{"question": "Which one of the following is the incorrect way to calculate 1 / 3, given you want to get a float back?",
				"options": ["1 / 3", "1.0 / 3", "1 / 3.0"],
				"answer": "1 / 3"},
	{"question": "True or False, mutability is tied to primitive types?",
				"options": ["True", "False"],
				"answer": "False"}
					  ],
			"Conditionals": [
	{"question" : "True or False, A statement can be a single line or span multiple lines?",
	              "options": ["True", "False"],
	              "answer": "True"},
	{"question" : "Determine which part of the following is a statment and which part is an expression: x = 2 + 2",
	              "options": ["Statement: x = 2 + 2\nExpression: 2 + 2", "Expression: x = 2 + 2\nStatement: 2 + 2"],
	              "answer": "Statement: x = 2 + 2\nExpression: 2 + 2"},
	{"question" : "Which of the following conditional statements can you put statements between?",
	              "options": ["if's", "if/else if ladders", "if/else if/else ladders"],
	              "answer": "if's"},
	{"question" : "When's the only time you should stack strictly if's?",
	              "options": ["When the outcome of one if doesn't influence the outcome of further if's",
	                          "It's always a good time to do this"],
	              "answer": "When the outcome of one if doesn't influence the outcome of further if's"},
	{"question" : "With regards to short circuiting and the 'and' logical operator, when is the second boolean value not evaluated?",
	              "options": ["The first value is true",
	                          "The first value is false"],
	              "answer": "The first value is false"},
	{"question" : "With regards to short circuiting and the 'or' logical operator, when is the second boolean value not evaluated?",
	              "options": ["The first value is true",
	                          "The first value is false"],
	              "answer": "The first value is true"},
	{"question" : "Given De Morgan's Laws, what would the following evaluate to: not(A and B)",
	              "options": ["not(A) or not(B)",
	                          "not(A) and not(B)"],
	              "answer": "not(A) or not(B)"}
 					  ],
			"Loops": [
	{"question" : "Everything a loop does in a single run through can be called one ___ of the loop?",
	              "options": ["iteration", "boolean", "conditional", "round"],
	              "answer": "iteration"},
	{"question" : "What makes either type of loop stop?",
	              "options": ["The condition evaluating to false", "The condition evaluating to true"],
	              "answer": "The condition evaluating to false"},
	{"question" : "What keys do you press to stop an infinite loop?",
	              "options": ["CTRL-A", "CTRL-B", "CTRL-C", "CTRL-D"],
	              "answer": "CTRL-C"},
	{"question" : "Which statment exits a loop early?",
	              "options": ["continue", "break"],
	              "answer": "break"},
	{"question" : "Which statement skips to the next run through of a loop?",
	              "options": ["continue", "break"],
	              "answer": "continue"},
	{"question" : "Given some outer loop has x run throughs and some inner loop has y run throughs how many times would a statement in the inner loop be executed?",
	              "options": ["x * y", "x + y", "x - y", "x / y"],
	              "answer": "x * y"},
	{"question" : "True or False: while loops are best used for a known # of iterations",
	              "options": ["true", "false"],
	              "answer": "false"},
	{"question" : "True or False: for loops are best used for a known # of iterations",
				  "options": ["true", "false"],
				  "answer": "true"}
 					  ],
		"Arrays": [
	{"question" : "How does a data structure differ from an ADT?",
	              "options": ["It doesn't", "A data structure implements the ADT"],
	              "answer": "A data structure implements the ADT"},
	{"question" : "True or False: array values are in all different places in memory",
	              "options": ["true", "false"],
	              "answer": "false"},
	{"question" : "What does the array variable hold?",
	              "options": ["All values", "Memory address of the first value", "Memory address of the last value"],
	              "answer": "Memory address of the first value"},
	{"question" : "What is the kind of access that arrays have called?",
	              "options": ["random", "arbitrary", "sequential", "direct"],
	              "answer": "random"},
	{"question" : "What is the index of the first value in an array?",
	              "options": ["0", "1", "length", "length - 1"],
	              "answer": "0"},
	{"question" : "True or False: trying to access the index -1 in an array is out of bounds access",
	              "options": ["true", "false"],
	              "answer": "true"},
	{"question" : "In 2D arrays, in which order do you specify sections",
	              "options": ["row, column", "column, row"],
	              "answer": "row, column"},
	{"question" : "True or False: declaring an array variable by copying in an old array variable gives you a new array?",
				  "options": ["true", "false"],
				  "answer": "false"},
	{"question" : "What question does '==' ask for reference types?",
				  "options": ["Are the values equal?", "Are the memory addresses they hold equal?"],
				  "answer": "Are the memory addresses they hold equal?"}		
 					  ],
			"Functions": [
	{"question" : "What is the difference between parameters and arguments?",
	              "options": ["parameter - Name of input when define function\nargument - Name of input when you call function",
	              	"parameter - Name of input when call function\nargument - Name of input when you define function"],
	              "answer": "parameter - Name of input when define function\nargument - Name of input when you call function"},
	{"question" : "When should you use a function?",
	              "options": ["When you're current bit of code is getting too long",
	                          "You're writing the same bit of code over and over again"],
	              "answer": "You're writing the same bit of code over and over again"},
	{"question" : "What is a function that returns no value called?",
	              "options": ["void", "conjunction", "empty", "invalid"],
	              "answer": "void"},
	{"question" : "True or False: a function can return more than one value?",
	              "options": ["true", "false"],
	              "answer": "false"},
	{"question" : "Pass by value is when _______ are passed to the function",
	              "options": ["copies of values", "memory addresses of values"],
	              "answer": "copies of values"},
	{"question" : "Pass by reference is when _______ are passed to the function",
	              "options": ["copies of values", "memory addresses of values"],
	              "answer": "memory addresses of values"},
	{"question" : "True or False: Using the print function causes a side effect",
				  "options": ["true", "false"],
				  "answer": "true"}
 					  ],
			"Stacks & Recursion": [
	{"question" : "Which acronym best describes how elements are stored in a stack?",
	              "options": ["LIFO", "FIFO"],
	              "answer": "LIFO"},
	{"question" : "Is push or pop the operation that removes a value from the stack?",
	              "options": ["push", "pop"],
	              "answer": "pop"},
	{"question" : "In factorial, is factorial(1) a recursive or base case?",
	              "options": ["recursive", "base"],
	              "answer": "base"}            
	          ]
			}
