Designing Grace: Can an Introductory Programming Language Support the Teaching of Software Engineering?
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.
James Noble, Michael Homer, Kim B. Bruce, Andrew P. Black
IEEE Conference on Software Engineering Education and Training (CSEE&T
Michael Homer — 2018