Teaching Mathematical Generalization: a Dissertation Study to Understand Gaps in the Literature, Generating Validity Evidence for Assessment, and the Employment of a Computer Science Instructional Model