Some of these articles may be assigned as part of homework.
They may also be useful to you as a supplement to lectures and other reading.
None of the readings listed on this page are required unless they are
explicitly assigned in homework or in lecture.
Articles and Reports
- J. McCarthy, Recursive
functions of symbolic expressions and their computation by machine, Comm.
ACM 3, 4 (1960) 184-195.
- J. Backus, Can programming be
liberated from the von Neuman style?, Comm. ACM 21, 8 (1978)
613-641. (large file)
- R. Harper, Introduction
to Standard ML, Report ECS-LFCS-86-14, Dept. Computer Science,
Univ. Edinburgh, 1989. (Link is to updated web version.)
- B. Kernighan, Why Pascal is Not My
Favorite Programming Language, Bell Labs CSTR 100, July 1981.
- A. Koenig, An
anecdote about ML type inference, USENIX Symposium on Very High Level
- Aleph One,
Smashing the stack for fun and profit
, Phrack 7, 49 (1996)
- E.W. Dijkstra
Go To Statement Considered Harmful
, Communications of the ACM, 11, 3 (1968)
- N. Wirth, Program development by stepwise
refinement, Communications of the ACM, 14, 4 (1971)
- D. Parnas, On the criteria to be used in
decomposing systems into modules, Communications of the ACM, 15,
12 (1972) 1053-1058.
- D. Ingalls, Design principles behind Smalltalk,
BYTE Special Issue on Smalltalk, August 1981. (Scanned by Dwight Hughes.)
- 15 Years Ago in BYTE: The Smalltalk
Environment by Larry Tessler, BYTE, August 1996.
- W.R. Cook, Interfaces
and specifications for the Smalltalk-80 collection classes,.Proc ACM
Conf. Object-Oriented Programming Systems, Languages, and Applications (OOPSLA
'92). ACM SIGPLAN Notices ,Vol. 27, No. 10 (Oct. 1992), Pages 1-15.
- E. Gamma et al., Design
Patterns: Elements of Reusable Object-Oriented Software,
- B. Stroustrup, The Design
and Evolution of C++, Addison-Wesley, 1994, 461 pages.
- K. Arnold and J. Gosling, The
Java Programming Language, Addison-Wesley, 1996.
A dictionary of common
programming language terms is available.
Suggestions for additional
terms may be sent to