• DocumentCode
    2496087
  • Title

    Seven deadly sins of introductory programming language design

  • Author

    McIver, L. ; Conway, Damian

  • Author_Institution
    Dept. of Comput. Sci., Monash Univ., Clayton, Vic., Australia
  • fYear
    1996
  • fDate
    24-27 Jan 1996
  • Firstpage
    309
  • Lastpage
    316
  • Abstract
    Discusses seven undesirable features that are common to many programming languages used to teach first-time programmers: (1) less is more; (2) more is more; (3) grammatical traps; (4) hardware dependence; (5) backwards compatibility; (6) excessive cleverness; and (7) violation of expectations. We illustrate typical pedagogical difficulties which stem from these features, 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: (1) start where the novice is; (2) differentiate semantics with syntax; (3) make the syntax readable and consistent; (4) provide a small and orthogonal set of features; (5) be especially careful with I/O; (6) provide better error diagnosis; and (7) choose a suitable level of abstraction
  • Keywords
    computer science education; high level languages; teaching; ABC; Ada; C language; C++ language; Eiffel; Haskell; LISP; Modula 3; Pascal; Prolog; Scheme; Turing; abstraction level; backwards compatibility; consistent syntax; error diagnosis; excessive cleverness; expectation violation; first-time programmer teaching; grammar; hardware dependence; input/output mechanisms; introductory programming language design; language design principles; language selection principles; novice programmers; pedagogical difficulties; readability; semantics; small orthogonal feature set; undesirable features; Collaboration; Computer languages; Education; Encapsulation; Handicapped aids; Machine learning; Problem-solving; Programming profession; Silicon compounds;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering: Education and Practice, 1996. Proceedings. International Conference
  • Conference_Location
    Dunedin
  • Print_ISBN
    0-8186-7379-6
  • Type

    conf

  • DOI
    10.1109/SEEP.1996.534015
  • Filename
    534015