[PDF][PDF] A logic programming environment for teaching mathematical concepts of computer science
N Neff - Proceedings of the twenty-fourth SIGCSE technical …, 1993 - dl.acm.org
N Neff
Proceedings of the twenty-fourth SIGCSE technical symposium on Computer …, 1993•dl.acm.orgIn the undergraduate curriculum, key mathematical principles of computer science are
generally presented by either defining an algorithm for construction or by giving a static
mathematical definition. Simple constructive definitions may be programmed or worked
through by students, but when rigor demands that an abstract mathematical definition be
given, there is no analogous learning experience, and students may consider the concepts
too difficult or “theoretical”. Students need an environment in which they can easily …
generally presented by either defining an algorithm for construction or by giving a static
mathematical definition. Simple constructive definitions may be programmed or worked
through by students, but when rigor demands that an abstract mathematical definition be
given, there is no analogous learning experience, and students may consider the concepts
too difficult or “theoretical”. Students need an environment in which they can easily …
In the undergraduate curriculum, key mathematical principles of computer science are generally presented by either defining an algorithm for construction or by giving a static mathematical definition. Simple constructive definitions may be programmed or worked through by students, but when rigor demands that an abstract mathematical definition be given, there is no analogous learning experience, and students may consider the concepts too difficult or “theoretical”. Students need an environment in which they can easily experiment with specific, concrete examples of abstract concepts.
In this paper we describe use of complete Horn Clause logic programming as a laboratory activity for mathematically unsophisticated computer science majors. Section 2 describes the ideal environment, and existing practical and theoretical limitations. Section 3 describes our Prologb environment, and reports on student reaction. Section 4 covers termination analysis and programming for efficiency, and directions for future work are discussed in Section 5.