Inquiry-based learning is an approach to teaching a subject that focuses on the student’s curiosity rather than the teacher’s knowledge. In general, the teacher or facilitator will begin the session by presenting a question to the class. The students are then encouraged to brainstorm possible methods to answer the question. Computer Science classes use this method quite a lot, where the lecturer begins class by presenting a problem (i.e. “I have a list of N items in some random order. What is the fastest way to sort this list so that the smaller items are in front of the larger items”) and then spends the rest of the class going over possible solutions. Usually the session starts with the simplest solution and builds up to the optimal (and usually most complicated) solution. In the list sorting example given, this is usually done by starting with selection sort (Go through the list once to find the smallest element, move that element to the front of the list, repeat on the rest of the list until the list is sorted) and building up to quicksort (Choose a random element called a pivot, go through the list and move every smaller element to the left of the pivot and every larger element to the right of the pivot, then repeat on either half until the list is sorted).

This approach will be used in our Learning Blueprint since we are also explaining a computer science topic, but it will not be used as directly as it is in the example given. We will ask the user “What makes a programming language easier to use? What are the tradeoffs of this convenience?”, hopefully prompting them to formulate their own response, and then explain to them how languages have changed over time to be easier and slower in general. While it is not as directly inquiry-based as the example, the learning experience will still be driven by the user’s curiosity on how programming languages can be easier or harder to use, as well as their interest in how languages have built on top of each other.