A fundamental computer science course that unifies theory and practice
Date of Original Version
Can archive pre-print and post-print or publisher's version/PDF
Abstract or Description
If computer programming is to become an "engineering discipline," computer science students must acquire the tools for rigorous analysis and evaluation of programs. An early course in the undergraduate curriculum must introduce the fundamental principles of the discipline, just as freshman calculus teaches the basic analysis skills for most engineering disciplines. The course described in this paper teaches mathematical principles and practical programming applications in a unified form. It has been successfully taught to sophomores for four years.