An Introduction to Proving the Correctness of Programs
ACM Computing Surveys (CSUR)
Discrete Mathematical Structures for Computer Science
Discrete Mathematical Structures for Computer Science
The Design and Analysis of Computer Algorithms
The Design and Analysis of Computer Algorithms
A lesson in recursion and structured programming
SIGCSE '76 Proceedings of the ACM SIGCSE-SIGCUE technical symposium on Computer science and education
The why and how of discrete structures
SIGCSE '76 Proceedings of the sixth SIGCSE technical symposium on Computer science education
A graphical technique for describing recursion
SIGCSE '76 Proceedings of the sixth SIGCSE technical symposium on Computer science education
Structured programming
Hi-index | 0.00 |
Although there is not universal agreement on a definition of computer science, I believe that it is the inclusion of a quantitative (mathematical) approach to our discipline that distinguishes “computer science” from “computer programming”. Mathematics provides both an established language with which to precisely define terms and established methods for problem solving. For example, the rather vague statement that “algorithm A is better than algorithm B” may be formulated unambiguously and verified or refuted with respect to certain performance measurements using the formalism of algorithm analysis (l). Mathematical methods also point toward the possibility of proving that an algorithm provides acceptable performance for large classes of inputs, a conclusion which often cannot be supported on the basis of case-by-case testing (5). I will now discuss certain mathematical ideas which naturally arise in computer science courses and cite relevant examples which will hopefully convince the reader that these ideas are worthy of formal study. Suggestions are then offered regarding the inclusion of these studies in the four-year computer science curriculum.