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.
Read full abstract