Discrete mathematics and its applications (2nd ed.)
Discrete mathematics and its applications (2nd ed.)
A logical approach to discrete math
A logical approach to discrete math
Reasoned programming
Discrete structures, logic, and computability
Discrete structures, logic, and computability
Logic and discrete mathematics: a computer science perspective
Logic and discrete mathematics: a computer science perspective
Why no one uses functional languages
ACM SIGPLAN Notices
Logic in computer science: modelling and reasoning about systems
Logic in computer science: modelling and reasoning about systems
Discrete mathematics using a computer
Discrete mathematics using a computer
Functional programming, and where you can put it
ACM SIGPLAN Notices
Discrete math with programming: better together
Proceedings of the 38th SIGCSE technical symposium on Computer science education
A history of Haskell: being lazy with class
Proceedings of the third ACM SIGPLAN conference on History of programming languages
A conceptual approach to teaching induction for computer science
Proceedings of the 39th SIGCSE technical symposium on Computer science education
Functional programming and theorem proving for undergraduates: a progress report
Proceedings of the 2008 international workshop on Functional and declarative programming in education
Induction as a tool for conceptual coherence in computer science
Proceedings of the 46th Annual Southeast Regional Conference on XX
Computational logic in the undergraduate curriculum
Proceedings of the Eighth International Workshop on the ACL2 Theorem Prover and its Applications
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Teaching discrete structures: a systematic review of the literature
Proceedings of the 42nd ACM technical symposium on Computer science education
Hi-index | 0.00 |
A three-year study collected information bearing on the question of whether studying mathematics improves programming skills. An analysis of the data revealed significant differences in the programming effectiveness of two populations of students: (1) those who studied discrete mathematics through examples focused on reasoning about software and (2) those who studied the same mathematical topics illustrated with more traditional examples. Functional programming played a central role in the study because it provides a straightforward framework for the presentation of concepts such as predicate logic and proof by induction. Such topics can be covered in depth, staying almost entirely within the context of reasoning about software. The intricate complexities in logic that mutable variables carry with them need not arise, early on, to confuse novices struggling to understand new ideas. In addition, because functional languages provide useful and compact ways to express mathematical concepts, and because the choice of notation in mathematics courses is often at the discretion of the instructor (in contrast to the notational restrictions often fiercely guarded by the faculty in programming courses), discrete mathematics courses, as they are found in most computer science programs, provide an easy opportunity to enhance the education of students by exposing them to functional programming concepts.