By Topic

Seven deadly sins of introductory programming language design

Sign In

Cookies must be enabled to login.After enabling cookies , please use refresh or reload or ctrl+f5 on the browser for the login options.

Formats Non-Member Member
$33 $13
Learn how you can qualify for the best price for this item!
Become an IEEE Member or Subscribe to
IEEE Xplore for exclusive pricing!
close button

puzzle piece

IEEE membership options for an individual and IEEE Xplore subscriptions for an organization offer the most affordable access to essential journal articles, conference papers, standards, eBooks, and eLearning courses.

Learn more about:

IEEE membership

IEEE Xplore subscriptions

2 Author(s)
L. McIver ; Dept. of Comput. Sci., Monash Univ., Clayton, Vic., Australia ; D. Conway

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

Published in:

Software Engineering: Education and Practice, 1996. Proceedings. International Conference

Date of Conference:

24-27 Jan 1996