Seven Deadly Sins of Introductory Programming Language Design (1996) [11 citations — 1 self]
Abstract:
We discuss seven undesirable features common to many programming languages used to teach first-time programmers, and illustrate typical pedagogical difficulties which stem from them with examples drawn from the programming languages ABC, Ada, C, C++, Eiffel, Haskell, LISP, Modula 3, Pascal, Prolog, Scheme, and Turing. We propose seven language design (or selection) principles which may reduce the incidence of such undesirable features. Introduction Learning to program is difficult. We believe that a substantial part of this difficulty arises from the structure, syntax and semantics of the programming languages which are commonly used to teach programming. Programming language designers are (of necessity) highly intelligent experts in the field of programming, and are consequently far removed both temporally and cognitively from the difficulties experienced by the novice programmer. This gulf of experience and ability results in languages which are either too restrictive or too powerf...

