Programming by Numbers: A Programming Method for Novices

  title={Programming by Numbers: A Programming Method for Novices},
  author={Hugh Glaser and Pieter H. Hartel and Paul W. Garratt},
  journal={Comput. J.},
Students often have difficulty with the minutiae of program construction. We introduce the idea of `Programming by Numbers', which breaks some of the programming process down into smaller steps, giving such students a way into the process of Programming in the Small. Programming by Numbers does not add intellectual difficulty to learning programming, as it does not require the student to learn additional tools or theory. In fact it can be done with pencil and paper or the normal editor, and… 
The Functional “C” experience
This paper summarises the essence of the approach, which is based on program transformation, and presents the experience teaching functional C at the Universities of Southampton and Bristol.
The TeachScheme! Project: Computing and Programming for Every Student
The TeachScheme! Project aims to reform three aspects of introductory programming courses in secondary schools. First, we use a design method that asks students to develop programs in a stepwise
Toward a Framework of Programming
  • F. Lau
  • Computer Science, Education
  • 2009
The term “programming pedagogy” refers to any instructional methods and strategies which are used to teach students introductory programming, and is focused on approaches of teaching computer programing.
Toward a Framework of Programming Pedagogy
The term “programming pedagogy” here refers to any instructional methods and strategies which are used to teach students introductory programming, and is focused on approaches of teaching computer programing.
A process for novice programming using goals and plans
This work presents a simple notation for designing programs in terms of data flow networks of goals and plans, and defines a detailed process that uses this notation, and that ultimately results in a program in a visual programming language (BYOB).
Teaching novice programming using goals and plans in a visual notation
A new approach for teaching novice programming, which is both easy to introduce and effective in improving novice learning, is developed using a visual programming language and a detailed process for using existing plans and building new plans in the VPE is described.
The structure and interpretation of the computer science curriculum
This pearl presents a framework for discussing the first-year curriculum and, based on it, the design rationale for the book and course, dubbed How to Design Programs, which emphasizes the systematic design of programs.
Four approaches to teaching programming
It is asserted that competency in programming cannot be achieved without mastering each of the approaches, at least to some extent, and use of the approach in combination could provide novice programmers with the opportunities to acquire a full range of knowledge, understanding, and skills.
Softening the Complexity of Intelligent Systems Programming
An alternative which provides a suite of programming tools designed to aid students' progress with practical symbolic computation and demonstrates their efficacy in simplifying practical aspects of IS programming is described.
Avoiding Knotty Structures in Design: Schematic Functional Programming
It is concluded that the marriage between a functional language and its graphical representation overcomes most of the original criticisms of graphical programming and makes a viable and expressive tool for industrial scale applications.


Functional C
Functional C provides a deep understanding of the differences between functional and imperative programming problem solving techniques used throughout with a wealth of examples and exercises.
Use of Program Schemata in Lisp Programming: an Evaluation of its Impact on Learning
The approach and experience with teaching fundamentals of functional programming by program schemata construction and explanation is described and experiments are reported that allow to judge quite favourably the approach to teaching functional (Lisp) programming when the student learns a set of program Schemata and how to apply them.
A declarative laboratory approach for discrete structures, logic, and computability
The lab component is created for a year long sophomore course in discrete structures, logic, and computability for students majoring in computer science or computer engineering and consists of experiments in declarative programming environments.
Java as a first language: an evaluation
This note outlines some issues raised in considering the use of the programming language JavaTM to support a first course in software development, and enumerates some aspects of the Java language that attracted interest.
Introduction to Programming Using Java: An Object-Oriented Approach, Java 2 Update, JavaPlace Edition
Object-oriented concepts from the very beginning--classes, objects, and messages are all introduced in Chapter 1--and develops them throughout, applying a consistent class design procedure, usable by beginners.
Programming pedagogy—a psychological overview
A brief overview of some of the more important results concerning computer programming and how they can affect course design is given.
Applying Techniques to Skeletons
This paper describes the application of skeletons and techniques within the framework of Shapiro's Model Inference System, and identifies skeletons, basic Prolog programs with a well-understood control ow, and techniques, standard Prolog programming practices, as basic components.
Report on the programming language Haskell: a non-strict, purely functional language version 1.2
"Some half dozen persons have written technically on combinatory logic, and most of these, including ourselves, have published something erroneous"; this is regarded as evidence that the subject is refractory.
Elements of ML programming
A perspective on ML and SML/NJ and how to program with Datatypes and Solutions to Selected Exercises are presented.