· Gain practice in reformulating a problem and explaining it using several different modalities.
· The class was divided into 4-5 person teams and given a problem and a solution.
· Each team was then asked to present their solution in front of the class.
· Visual – Explain a problem using a diagram or similar visual example.
· Kinesthetic – Explain a problem using a kinesthetic technique (having someone shift blocks around, sort people and so on).
· Top-Down – Using the context, motivation, or goal of the problem, decompose it down to its basic building blocks.
· Bottom-Up – Use the basic building blocks of this particular problem to build up a solution. (i.e. if its an algorithm, explain each step and finish by explaining the entire context).
· Analogy – Use an analogy with another domain of knowledge
· Real World Example – Use a real world example to explain this particular problem.
· Explain the P=NP problem
· Describe how recursion works
· Explain how a relational database works
· What is the role of middleware in operating systems?
· How does object oriented programming work?
· What is the Spiral Model of software development and what are its advantages?
· Explain the difference between breath-first and depth-first search?