Saad Farooq

I have issues... need pull requests

    © 2014. Saad Farooq All rights reserved.

    Research Proposal I

    12 Jun 2013

    Research Study Proposal - Fall 2013

    This document aims to formulate a research study proposal related to research in the area of computer science education. The basic idea is to introduce computer science principles, particularly those related to programming; and especially functional programming, to students in K-12 by using mathematics as a lauchpad for their foray into computer science.

    The proposal bases itself on a number of reasonable assumptions that are influence by discussions and things picked up here andt here . However, the absense of citations for these is obvious at this point and will hopefully be filled in over time via references to previous (or our own) research backing those claims.

    The research evolves into two distinct research questions :

    • Can student work to understand the complex concepts of mathematics be leveraged to cause a 'transfer of training effect' towards computer science (and vice versa) ?
    • Can notation be used as a 'tool of thought' to ease the transfer of concepts from mathematics to functional programming ?

    I will elaborate on each of these in turn.

    Functional Math

    Functional programming derives heavily from lambda calculus; a form of calculus that was conceived long before computers were the norm, for expressing mathematical computation. The influence of lambda calculus on functional programming gives it very strong mathematical roots. However, in spite of their obvious overlaps, neither field seems to augment the other in education. Students work their way through hard mathematical concepts and very little of that hard work is carried over to the programming realm [citation needed]. The hypothesis that the study would aim to affirm is that both fields are very similar but it is the pedagogical treatment of the concepts that makes the transfer difficult.

    I propose a study that asks people of various age groups what they thought were the hardest concepts were in mathematics and compares it to the same question asked of computer science students with reference to programming. The intuition is that both groups will find the concept of 'function as data' to be among the hardest concepts. In mathematics, this concept is exhibited by operations such as derivative, summations, transforms, etc.

    The rationale here is that mathematics education does not elaborate the 'function as data' concept explicitly and by coming up with pedagogical strategies to do so, we can make comp105 much less painful for future students.

    Particulars of Study

    To be decided.

    Notation as a Tool of Thought

    Kenneth Iverson's work on the use of mathematical notation in computer programming earned him a Turing award and led to the development of the APL programming language. 'Notation as a Tool of Thought' was the title of his Turing award lecture. As the title suggests, it implies the utility of notation in the thought process. He came up with a notation called a the 'Iverson notation' which could be used for writing and rationalizing about computer programs without being on a computer and the same notation could be transferred to the computer and just run [citation needed].

    Notation seems to form another barrier to the 'transfer of training' from mathematics to computer programming. In computer science courses, students find it hard to translate notational rules into computer programs [citation needed] and whereas the Iverson notation gave a way to unite the two worlds, the effect of the differences in notation was never formalized in research [citation needed]. Furthermore, the Iverson notation itself is a complex, hard to understand notation that was limited to using symbols that could be made available at the time [citation needed, seems a weird claim].

    A more intuitive notation system, coupled with the versatility of input systems today could help in bridging the gap between notational mathematics and computer programming.

    The research study in this case is more an investigative study (would help if I knew more about research methodologies). We go in with no assumptions or hypotheses and give the subjects the task of coming up with concise notations for particular notational scenarios (possibly inspired by the first study above) and look for patterns in the results.

    Particulars of Study

    To be decided.

    blog comments powered by Disqus