@inproceedings{GraceAbsence-Black2012,
    title = {Grace: the Absence of (Inessential) Difficulty},
    booktitle = {Symposium on New Ideas in Programming and Reflections on Software},
    year = 2012,
    doi = "10.1145/2384592.2384601",
    url = "https://michael.homer.nz/Publications/Onward2012/GraceAbsence-Black2012.pdf",
    author = {Black, Andrew P. and Bruce, Kim B. and Homer, Michael and Noble, James},
    abstract = {
        We are engaged in the design of a small, simple programming language
        for teaching novices object-oriented programming. This turns out to be
        far from a small, simple task. We focus on three of the problems that
        we encountered, and how we believe we have solved them. The problems
        are (1) gracefully combining object initialization, inheritance, and
        immutable objects, (2) reconciling apparently irreconcilable views on
        type-checking, and (3) providing a family of languages, each suitable
        for students at different levels of mastery, while ensuring conceptual
        integrity of their designs. In each case our solutions are based on
        existing research; our contribution is, by design, consolidation rather
        than innovation.
    }
}
