Skip to main navigation Skip to search Skip to main content

Discrete Math with Programming: A Principled Approach

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

4 Scopus citations

Abstract

Discrete mathematics is the foundation of computer science. It focuses on concepts and reasoning methods that are studied using math notations. It has long been argued that discrete math is better taught with programming, which takes concepts and computing methods and turns them into executable programs. What has been lacking is a principled approach that supports all central concepts of discrete math-especially predicate logic-and that directly and precisely connects math notations with executable programs. This paper introduces such an approach. It is based on the use of a powerful language that extends the Python programming language with proper logic quantification ("for all"and "exists some"), as well as declarative set comprehension (also known as set builder) and aggregation (e.g., sum and product). Math and logical statements can be expressed precisely at a high level and be executed directly on a computer, encouraging declarative programming together with algorithmic programming. We describe the approach, detailed examples, experience in using it, and the lessons learned.

Original languageEnglish
Title of host publicationSIGCSE 2021 - Proceedings of the 52nd ACM Technical Symposium on Computer Science Education
PublisherAssociation for Computing Machinery, Inc
Pages1156-1162
Number of pages7
ISBN (Electronic)9781450380621
DOIs
StatePublished - Mar 5 2021
Event52nd ACM Technical Symposium on Computer Science Education, SIGCSE 2021 - Virtual, Online, United States
Duration: Mar 13 2021Mar 20 2021

Publication series

NameSIGCSE 2021 - Proceedings of the 52nd ACM Technical Symposium on Computer Science Education

Conference

Conference52nd ACM Technical Symposium on Computer Science Education, SIGCSE 2021
Country/TerritoryUnited States
CityVirtual, Online
Period03/13/2103/20/21

Keywords

  • discrete math
  • language
  • logic
  • programming
  • sets
  • teaching

Fingerprint

Dive into the research topics of 'Discrete Math with Programming: A Principled Approach'. Together they form a unique fingerprint.

Cite this