Skip to content
Permalink
757ccb2558
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
executable file 69 lines (50 sloc) 3.91 KB
\chapter{Future Work}
A cluster of related problems exists.
Some of these are derived from pursuing the conclusions about the research questions, checking and, where appropriate, extending these ideas.
Other topics of inquiry grew out of the original investigation.
%Some of these problems are suitable for address by qualitative techniques.
%There are also questions that were developed in this analysis that are suitable for surveys over large populations. When surveying a large number of participants, we will wish to avoid disadvantaging any minority perspectives. This will require care in the construction of the surveys.
%The implications for pedagogy inspired work on a brochure, possibly for self-assessment, and course planning, for a software development / engineering course making use of proofs.
\section{Pursuit of Conclusions}
These future work items are keyed to the conclusions items.
\begin{itemize}
\item FW1: Maybe we might want to try exhibiting the utility of proof for ascertaining whether a newly posed situation is one in which a learned technique is applicable. Clicker questions offering in opposition several situations should encourage specialization.
\item FW2: Develop some exercises in generalization in a context of proof.
\item FW3: Give students practice in translating between different representations, set up some experiment to see whether this practice helps them when they are posed with the problem of converting graphs in data structures into code in data structures.
\item FW4: Try interspersing teaching about proof with applications to provability-driven development; try to see whether a change in students' appreciation in the use of warrants results.
Maybe this will be good enough for the grader, vs., I can tell whether this is good enough for the specific application of proving this code fragment always works.
\item FW5: multiple reps:
\item FW6: One conclusion from the qualitative study is that students'
attention to an item depends upon their
(possibly naive) assessment of the importance of that item
("when definitions are given, most students tune out.
I try to listen, but I stop taking notes \ldots I really prefer examples.)
From a (social) constructivist perspective, it is
easy to appreciate that students find it much easier
to build concepts upon a foundation.
We are often urged to define terms before using them.
In this order,
students' assessment of the utility of a definition
might not be high.
If, by contrast, we follow the students' stated preference
for examples, and offer tutorial form
proof attempts,
and point out that a definition is used to provide a warrant
for a transformation of an expression,
then it could be that students' attention is better kept.
To emphasize the role of definitions in proofs,
exercises that require the warrants to be explicitly stated,
perhaps along with the name of the transformation step being taken,
maybe even offer the template: The definition that allows us to
justify this step is:
\end{itemize}
\section{Helping Students Discern Derivation for Proof of Correctness}
Recall that variation theory holds that students cannot discern a thing unless contrast is provided.
Pang\cite{marton2006some} has pointed out that, for persons aware of only one language, ``speaking'' and ``speaking their language'' are conflated.
Only when the existence of a second language is known, does the idea of speaking become separated from the idea of speaking a specific language.
We may wish to alert students to the ability to derive code from requirements mathematically.
We could show them, for example, an even function.
We could show them how to construct a function that is even.
We could show them how to construct a function that is odd.
This might help them see the difference between writing code and testing it afterwards, and deriving the code to be correct by construction.
Use what has to be true to constrain what can be written.