CS 242, Section 002 Sonoma State University Fall, 2021
 
Discrete Structures for Computer Science
Instructor: Henry M. Walker

Lecturer, Sonoma State University
Professor Emeritus of Computer Science and Mathematics, Grinnell College

Partial List of Mathematical Topics and their Uses in Computer Science

Table identifying some possible courses at Sonoma State using these topics

Many topics within computer science draw upon mathematical concepts, models, structures, skills, and techniques, At Sonoma State University, many elements of this mathematical foundation is covered in CS 242, although time and logistical limitations require some material to be deferred to various mathematics courses. The following table outlines some of these mathematical subjects and suggests common application areas. The table also identifies some common computer science courses that may draw upon this background. However, courses evolve over time, and mention of a topic and/or course here does not guarantee if or when any particular course might work with specific topics.

Mathematical Topic Some CS Applications Areas Courses for Potential Later Study Initial Comments and Thoughts
sets Common starting place for algorithm design/implementation
  • data structures
  • storage/retrieval algorithms
  • software development
  • computational models
  • data communication
CS 315, CS 370, CS 315, CS 415, CS 454 Since many applications store, retrieve, and process data stored conceptually as sets, many algorithms are devised to promote efficiency in specific contexts
functions
relations
Central in software development
  • mechanism for managing complexity
  • fundamental for code reuse
  • basis for development of libraries
CS 315, CS 370, CS 380, CS 415, CS 480 foundation for some widely used problem solving paradigms and families of programming languages
Boolean algebra Fundamental computing tool
  • programming data type (e.g., for conditional statements, loops)
  • mechanism for managing complexity
  • tool for developing/simplifying digital circuits
all courses involving programming, in addition to CS 252, CS 370, CS 360, CS 460, etc, Various studies of errors in softare trace difficulties to the incorrect writing and manipulation of Boolean expressions—that is, errors arise from improper use of Boolean algebra.
Contemporary hardware design can use Boolean algebra to define, refine, and optimize desired digital circuits
  • normal forms
Common starting point for
  • development of data structures
  • analyzing certain algorithms
  • studying computability
CS 315, CS 415, CS 454, CS 355? Computing analysis and environments may depend upon normal forms for efficiency, effectiveness, and the handling of complexity
  • Karnaugh map
  • minimization techniques
Development and refinement of digital circuits CS 252 Theoretical algorithms in Boolean algebra may underline hardware design tools and can have direct payoff in determining circuit design
propositional calculus
predicate calculus
proof techniques
  • from formal mathematical logic
  • from mathematical analysis
Formal methods underline
  • software specification
  • articulation of pre- and post-conditions and loop invariantes
  • prof of algorithm correctness
  • validation of programs
CS 370?, CS 415, CS 454 Software testing can help identify errors, but testing of all possible cases is rarely feasible. Formal techniques can prove correctness in all cases.
Counting techniques
recurrence relations
Counting underlies the study of efficiency.
  • algorithm development
  • analysis of efficiency
  • considerations of computability
  • software development,
  • functional problem solving
CS 315, CS 415, CS 435, CS 454, CS 460 counting underlies
  • investigations of algorithms efficiency
  • motivation for approximation algorithms
  • considerations of computability
recurrence relations allow analysis of recursive algorithms.
graph theory Graphs provide convenient models for study and problem solving:
  • algorithms
  • object-oriented problem processing (e.g., messages among objects and classes)
  • networks
  • data communication
  • artificial intelligence
CS 315, CS 370?, CS 380?, CS 385?, CS 415, CS 454, CS 465? Many applications translate naturally to the context of graphs, and numerous algoritms have been to solve questions involving graphs.
relational algebra Relations underlie
  • database design
  • database processing
  • behind-the-scenes algorithms
  • organization of data in some algorithms, AI applications
  • theoretical analysis of computability
CS 355, CS 415, CS 454, CS 480? Simple functions provide a mechanism to associate a simple input with an output. Relations provide a much more general framework for the association of multiple components of data.
abstract algebra
(study deferred to Math 320)
  • cryptography
  • computer security
CS 340?, CS 415?, CS 454?, CS 465? Basic algebraic models (e.g., groups, rings, and fields) provide the basis for many [most?] modern encryption and decryption algorithms and secure communication
linear algebra and matrices
(study deferred to Math 322)
  • computer graphics
  • game interfaces
  • data visualization
  • display of data from Web searches (e.g., searches using Google)
CS 330?, CS 375?, CS 415? The efficient display and manipulation of images depends on the theoretical models and practical manipulations from linear algebra
multivariable calculus
(study deferred to Math 261)
  • artificial intelligence
  • neural networks
CS 480? One of the most basic mathematical techniques for Big Data processing require the development of mathematical models to discover and classify patters in known data. More generally, many algorithms are designed to approximate a desired answer through multiple iterations, especially when exact solutions may require too much time (e.g., millennia) to be feasible. Techniques underlying such processing often rely heavily on calculus.involving many variable.s

created 24-27 June 2021
revised Summer 2021
Valid HTML 4.01! Valid CSS!
For more information, please contact Henry M. Walker at walker@cs.grinnell.edu.