Active learning is a set of techniques that require the student to take an active role in their learning during lecture. Research strongly supports that students will learn more when the lecture utilizes these techniques. And I have measured this effect in my own courses. However, this research shows that students like lectures that use these techniques less even though they are learning more. And I have also informally measured this, such as students who say at the end of the first lecture, "If you are going to require me to participate in lecture, I will not return". Unfortunately, the present educational model is based on the student evaluations (primarily measuring what students like) to evaluate the quality of instruction. Therefore perversely, this aggregate model encourages suboptimal teaching and learning.
The paper recommends then that professors take time in the beginning of the semester to demonstrate the benefits and gain buy in from the students. And then continue to do so. Students want to learn, so they will support this pedagogy. And many students will recognize the value with time, if they give it.
A discussion of how to do Computer Science well, particularly writing code and architecting program solutions.
Showing posts with label learning. Show all posts
Showing posts with label learning. Show all posts
Saturday, September 28, 2019
Thursday, July 13, 2017
PhD Defense - Automated Data-Driven Hint Generation for Learning Programming
Kelly Rivers defended her PhD work this afternoon. She will returning to CMU this fall as a teaching professor.
Student enrollment is increasing, so more work is needed to automate the support, as TAs / instructors are not scaling. Prior work (The Hint Factory) developed models based on prior student submissions, and then a current student's work can be found within the model thus providing suggestions for how to proceed. However, programming may not fit within this model due to the larger and more varied space for which students can solve the problems.
First, student code proceeds through a series of canonicalization steps - AST, anonymized, simplification. Such that the following python code is transformed:
import string
def any_lowercase(s):
lst = [string.ascii_lowercase]
for elem in s:
if (elem in lst) == True:
return True
return False
Becomes
import string
def any_lowercase(p0):
for v1 in p0:
return (v1 in string.ascii_lowercase)
Studies then went over 41 different problems with hundreds of correct solutions and thousands of incorrect solutions. The model can then generate the edits and chain these hints as necessary. In more than 99.9% of cases, the model could successfully generate a hint chain to reach a correct solution.
To further test this model and approach, the model started with the empty space (just teacher solution) and was compared against the final model. Ideally, the final model will propose fewer edits than the initial model. And for 56% of problems, this was true. 40% of problems were already optimal. And 3% are opportunities for improvement to the model.
Next, given this model exists, how do the hints impact student learning? Select half of the students to give them access to the hint model optionally. Using a pre / post assessment, the measurement was a wash. Instead, a second study was designed that required the students to use the system within a two hour OLI module. Hints would be provided with every submission and either before or after the midtest in the OLI module. Only 1/2 of the students actually proceeded through the module in order. However, most learning was just within the pretest->practice->midtest, so adding those students increased the population. The results show that the hints reduce the time required to learn the equal amount.
From interviews with students, students need and want targeted help on their work. However, the hints generated thus far were not always useful. Proposed another study based on different styles of hints: location, next-step, structure, and solution. This study found that participants with lower expertise wanted more detailed hints. Hint usage would sometimes be for what is wrong versus how to solve it. And often, students know what to do, and just need to reference (via example / prior work) how to do this, rather than hinting what to do.
Student enrollment is increasing, so more work is needed to automate the support, as TAs / instructors are not scaling. Prior work (The Hint Factory) developed models based on prior student submissions, and then a current student's work can be found within the model thus providing suggestions for how to proceed. However, programming may not fit within this model due to the larger and more varied space for which students can solve the problems.
First, student code proceeds through a series of canonicalization steps - AST, anonymized, simplification. Such that the following python code is transformed:
import string
def any_lowercase(s):
lst = [string.ascii_lowercase]
for elem in s:
if (elem in lst) == True:
return True
return False
Becomes
import string
def any_lowercase(p0):
for v1 in p0:
return (v1 in string.ascii_lowercase)
Studies then went over 41 different problems with hundreds of correct solutions and thousands of incorrect solutions. The model can then generate the edits and chain these hints as necessary. In more than 99.9% of cases, the model could successfully generate a hint chain to reach a correct solution.
To further test this model and approach, the model started with the empty space (just teacher solution) and was compared against the final model. Ideally, the final model will propose fewer edits than the initial model. And for 56% of problems, this was true. 40% of problems were already optimal. And 3% are opportunities for improvement to the model.
Next, given this model exists, how do the hints impact student learning? Select half of the students to give them access to the hint model optionally. Using a pre / post assessment, the measurement was a wash. Instead, a second study was designed that required the students to use the system within a two hour OLI module. Hints would be provided with every submission and either before or after the midtest in the OLI module. Only 1/2 of the students actually proceeded through the module in order. However, most learning was just within the pretest->practice->midtest, so adding those students increased the population. The results show that the hints reduce the time required to learn the equal amount.
From interviews with students, students need and want targeted help on their work. However, the hints generated thus far were not always useful. Proposed another study based on different styles of hints: location, next-step, structure, and solution. This study found that participants with lower expertise wanted more detailed hints. Hint usage would sometimes be for what is wrong versus how to solve it. And often, students know what to do, and just need to reference (via example / prior work) how to do this, rather than hinting what to do.
Friday, October 14, 2016
Conference Attendance Teaching and Learning Summit 2016 - Keynote
Critical Thinking: Why is it so hard to teach? - Dr Daniel T. Willingham
Critical thinking is intertwined with content knowledge. We saw a sequence of four examples (If vowel then even number, if alcohol then 21, if gin, then haddock, if entering then cholera vaccine), for each example, there is a claim about a set of cards: If X then Y. Given four cards, verify the claim. If the problems were formulated based on permissions, then the success rate was high. Each problem is technically, P -> Q, but having just completed a semester of logic has no impact on results.
Scientific reasoning is taught in two pieces scientific concepts and scientific method. So consider designing a learning experiment. The group is split into intervention and control. How do you know that the random sample is valid? Background knowledge is required to determine the appropriateness of the split.
Critical thinking occurs from learning at the deep level. The surface story is say, "tumors and rays". The deep question is whether it is modus pones, Netwon's third law, etc? However, memory is focused on the surface facts. Recall is based on those components.
Why not teach the deep structure immediately? Abstractions are hard to understand. Instead, learners have to see lots of surface structures all overlaying the same deep structure.
Sometimes failures in critical thinking are actually failures in basic knowledge. Furthermore, there are also innate biases, such as words refer to objects and attributes, and the world is full of agents and purposes.
Takeaway 1: Most of critical thinking is domain-specific.
Takeaway 2: In each domain, faculty should identify what they consider the important critical thinking skills.
Takeaway 3: Select content with an eye toward teaching these skills. Teach the critical thinking in the context of the content.
Takeaway 4: Critical thinking is a curricular issue. These skills require more than 1 semester to acquire.
Takeaway 5: Certain foundational concepts may run counter to the mind's biases. Students have functional knowledge that has worked so far. For example, "equals sign means put answer here".
Q. Translating domain skills in interdisciplinary work?
A. Don't know. Probably needing to know enough of the skills in the home domain to be able explore the other domain.
Q. If critical thinking is domain specific, how specific are domains?
A. Domains are nested. Proper application requires domain knowledge. Moving from cognitive psychology to social leaves [the speaker] less skilled, but still better than average. Into clinical psychology, they have a common basis, but limited ability to apply.
Subscribe to:
Posts (Atom)