@inproceedings{DesigningGrace-Noble2013,
    title = {Designing Grace: Can an Introductory Programming Language Support the Teaching of Software Engineering?},
    booktitle = {IEEE Conference on Software Engineering Education and Training},
    year = 2013,
    url = "https://michael.homer.nz/Publications/CSEET2013/DesigningGrace-Noble2013.pdf",
    author = {Noble, James and Homer, Michael and Bruce, Kim B. and Black, Andrew P.},
    abstract = {
        Many programming language constructs that support software
        engineering in the large — explicit variable declarations, explicit
        external dependencies, static types, information hiding, invariants —
        provide little benefit to the small programs written by novice
        programmers, where every extra syntactic token has to be explained and
        understood before novices can succeed in running even the simplest
        program. We are designing Grace, a new educational object-oriented
        language that we hope will prove useful for teaching both programming
        and software engineering. This paper describes some of the tradeoffs
        between teaching programming and teaching software engineering that we
        faced while designing Grace, and our attempts to address those
        tradeoffs.
    }
}
