Albion College Mathematics and Computer Science Colloquium

 Title: Simple Program Generation for Tutoring Novice Computer Science Speaker: Rick Straughen, '03Mathematics Major and Computer Science MajorDepartment of Mathematics and Computer ScienceAlbion CollegeAlbion, MI Abstract: A challenge in learning programming is understanding the syntax and semantics of computer languages. The syntax of a programming language is often represented by syntax diagrams, or equivalently, in Backus-Naur Form. In most cases, the syntactical structure of a language is recursively defined using non-terminal units, which ultimately lead to terminal units. The language syntax only specifies structure, but many structures have an implied meaning. A program is comprised of numerous syntactical units. The meaning of a program is derived from the relationship among all of the comprising syntactical units. A Java program was developed that randomly generates simple programs in Pascal. Java functions were created corresponding to each of the syntax diagrams defining Pascal. To generate a program, all non-terminal units need to be expressed as a collection of terminal units. The Java program combines these units randomly, following rules specified by the syntax. Many constraints are placed on the output, in order to assure programs relevant for novice computer science students are produced. A simple program occurs when terminals are reached in a few steps. Another issue is that syntactically correct programs can be created which have no real meaning. Variables have different types, so type matching within each expression is also critical. Further work includes providing a web-based user interface and testing in a classroom setting. This program can be generalized for other programming languages and subject areas such as mathematics. Location: Norris 109 Date: 4/17/2003 Time: 4:10 PM

@abstract{MCS:Colloquium:RickStraughen'03MathematicsMajorandComputerScienceMajorDepartmentofMathematicsandComputerScienceAlbionCollegeAlbionMI:2003:4:17,
author  = "{Rick Straughen, '03Mathematics Major and Computer Science MajorDepartment of Mathematics and Computer ScienceAlbion CollegeAlbion, MI}",
title   = "{Simple Program Generation for Tutoring Novice Computer Science}",
address = "{Albion College Mathematics and Computer Science Colloquium}",
month   = "{17 April}",
year    = "{2003}"
}