Research regarding algorithm generation/discovery/heuristics
The phrase to look for is "program synthesis".  There's lots of literature in the programming literature on this topic; I suggest using Google Scholar to search through the literature and find relevant publications.

These days one hot approach is using "program sketching".  In program sketching, the programmer specifies a template for the code: partial code, with some holes left blank.  The tool then automatically tries to fill in those holes in a way that is consistent with the preconditions/postconditions, or is consistent with some provided test cases.  There's lot of literature on this topic.  For an introduction to this line of work, I'll suggest the following tutorial:

The Sketching Approach to Program Synthesis.  Armando Solar-Lezama.  Tutorial at PLDI 2012.