Software System Design Methods pp 213-241 | Cite as
Design and Use of Programming Languages
Abstract
The methods and techniques of computer science have been greatly advanced by the doctrines of structured programming, However, the psychological component of structured programming, which relies on simplistic cognitive models of top-down planning and comprehension, does not include many of the phenomena revealed by recent research. The ability to decompose problems into satisfactory hierarchic strctures apparently requires a learent repertoire of plans and a learnt ability to interleave these plans into standard hierarchic forms. Conversely, comprehending programs may requiree the plan structure to be inferred from the code, Notational aids to these procedures are described.
Advancement of applied disciplines combines ad hoc creation with partial theoretical understanding, and the successful generalisation and exploitation of new ad hoc creations is impossible if prevailing beliefs cannot explain why the creation is effective. It is argued that it is time for the prevailing orthodoxy to be modernised. Examples are given of recent advances that fit into the newer models. At the same time it must be acknowleged that some important issues remain unresolved.
Keywords
Structure Programming Declarative Language Command Language Programming Knowledge Computer Science StudentPreview
Unable to display preview. Download preview PDF.
References
- Adelson, B. (1981) Problem solving and the development of abstract categories in programming languages. Memory and Cognition, 91 422–433.Google Scholar
- Back, R.J.R. and Hietala, P. (1984) A simple user interface for interactive program verification. Proc. INTERACT 84, Ist IFIP Conf. Computer-Human Factors.Google Scholar
- Crookes, D., Murray, E., Smith, F.J. and Spence, I.T.A. (1985) A voice input programming system. Unpub. MS, Queen’s University, Belfast.Google Scholar
- Domingue, J. (1985) Towards an automated programming advisor. Tech. Report 16, Human Cognition Research Laboratory, Open University, Milton Keynes.Google Scholar
- Eisenstadt, M. (1985) Retrospective zooming: a knowledge based tracing and debugging methodology for logic programming. Int. Joint. Conf. Artificial Intelligence, 1985.Google Scholar
- Fischer, G. and Schneider, M. (1984) Computer supported program documentation systems. Proc. INTERACT 84, 1st IFIP Conf. Computer-Human Factors.Google Scholar
- Fitter, M.J. and Green, T.R.G. U 1979) When do diagrams make good computer languages? Int. J. Man-Machine Studies, 11, 235–261.Google Scholar
- Gilmore, D.J. Unpublished Ph.D. thesis, University of Sheffield, Sheffield, UK.Google Scholar
- Gilmore, D.J. and Green, T.R.G. (1984) Comprehension and recall of miniature programs. Int. J. Man-Machine Studies, 21, 31–48.CrossRefGoogle Scholar
- Green T.R.G. (1977) Conditional program statements and their comprehensibility to professional programmers. J. Occupational Psychology, 50, 93–109.CrossRefGoogle Scholar
- Green, T.R.G. (1979) The necessity of syntax, two experiments with artificial languages. J. Verbal Language and Verbal Behavior, 481–496.Google Scholar
- Green, T.R.G. (1980) Programming as a cognitive activity. In H.T. Smith and T.R.G. Green (eds.) Human Interaction with Computers. London. Academic Press.Google Scholar
- Green T.R.G. (1983) Learning big and little programming languages. In A.C. Wilkinson (ed.), Classroom Computers and Cognitive Science. New York. Academic Press.Google Scholar
- Green, T.R.G. and Payne, S.J. (1984) Organisation and learnability in computer languages. Int. J. Man-Machine Studies, 21, 7–18.CrossRefGoogle Scholar
- Hoare, C.A.R. (1981) The emperor’s old clothes, Comm, ACM, 24, 75–83,CrossRefGoogle Scholar
- Hoc, J-M, (1983) Analysis of beginner’s problem-solving strategies, In T,R,G, Green, S,J, Payne, and G,C, van der Veer (eds,) The Psychology of Computer Use, London:, Academic Press,Google Scholar
- Ichbaiah, J, (1984) Adai past, present, future, An interview with Jean Ichbaiah, Comm, ACM, 27, 990–997,CrossRefGoogle Scholar
- King, M, (1983) Parsing Natural Language. London, Academic Press.MATHGoogle Scholar
- Larkin, J, H, (1981) Enriching formal knowledge: a model for learning to solve textbook physics problems, In J.R. Anderson (ed.). Cognitive Skills and their Acquisition, Erlbaum,Google Scholar
- Mayer, R.E. (1976) Comprehension as affected by structure of problem representation, Memory and Cognition, 4, 249–255,CrossRefGoogle Scholar
- McCabe, T.J. (1976) A complexity measure, IEEE Trans, Software Engineering, 2, 308–320,CrossRefMathSciNetGoogle Scholar
- Payne, S.J. (1984) Task-action grammars, Proc, INTERACT 84, 1st IFIP Conf, on Computer-Human Factors,Google Scholar
- Payne, S,J, (1985) Unpublished PhD thesis, University of Sheffield.Google Scholar
- Pennington, N, (1982) Cognitive components of expertise in computer programming, a review of the literature, Tech, Report, 46, Cognitive Science Dept., University of Michigan.Google Scholar
- Ratcliff, B, and Siddiqi, J.I.A. (1985) An empirical investigation into problem decomposition strategies used in program design. Int, J, Man-Machine Studies, 22, 77–90,CrossRefGoogle Scholar
- Rist, R.S. (1985) Program plans and the development of expertise, Unpublished MS., Dept of Computer Science, Yale Univ.Google Scholar
- Schneider, M.L., Hirsh-Pasek, K. and Nudelman, S. (1984) An experimental evaluation of delimiters in a command language syntax, Int, J, Man-Machine Studies, 20, 521–535,CrossRefGoogle Scholar
- Sheil, B.A. (1981) The psychological study of programming, Computing Surveys, 13, 101–120,CrossRefGoogle Scholar
- Sheppard, S.B., Kruesi, E. and Curtis, B. (1981) The effects of symbology and spatial arrangement on the comprehension of software specifications, Proc, 5th Int, Conf, Software Engineering, 207–214,Google Scholar
- Shneiderman, B, (1980) Software Psychology, Cambridge, Mass.: Winthrop,Google Scholar
- Shneiderman, B, and Mayer, R.E. (1979) Syntactic/semantic interactions in programmer behaviour, a model and some experimental results, Int. J, Computer and Information Sciences, 8, 219–238,CrossRefMATHGoogle Scholar
- Sime, M.E., Green, T.R.G. and Guest, D.J. (1973) Psychological evaluation of two conditional constructions used in computer languages. Int. J, Man-Machine Studies, 5, 105–113,CrossRefGoogle Scholar
- Sime, M.E., Green, T.R.G. and Guest, D.J. (1977) Scope marking in computer conditionals: a psychological evaluation, Int. J. Man-Machine Studies, 9, 107–118,CrossRefGoogle Scholar
- Soloway, E. and Ehrlich, K. (1983) Empirical studies of programming knowledge, IEEE Trans, Software Eng., SE-10, 595–609,CrossRefGoogle Scholar
- Van der Veer, G.C. and van de Wolde, G.J.E. (1983) Individual differences and aspects of control flow notation, In T.R.G. Green, S.J. Payne, and G.C. van der Veer (eds.), The Psychology of Computer Use. London, Academic Press,Google Scholar
- Waters, R.C. (1982) The programmer’s apprentice, knowledge based editing. IEEE Trans. Software Eng., 8,Google Scholar
- Vesey, I. and Weber, R. (1984) Conditional statements and program coding: an experimental evaluation, Int. J. Man-Machine Studies, 21, 161–190,CrossRefGoogle Scholar