# What Precalculus knowledge is required before learning Discrete Math Computer Science topics?

Below I've listed the chapters from a Precalculus book as well as the author recommended Computer Science chapters from a Discrete Mathematics book.

Although these chapters are from two specific books on these subjects I believe the topics are generally the same between any Precalc or Discrete Math book.

What Precalculus topics should one know before starting these Discrete Math Computer Science topics?:

Discrete Mathematics CS Chapters

1.1 Propositional Logic
1.2 Propositional Equivalences
1.3 Predicates and Quantifiers
1.4 Nested Quantifiers
1.5 Rules of Inference
1.6 Introduction to Proofs
1.7 Proof Methods and Strategy

2.1 Sets
2.2 Set Operations
2.3 Functions
2.4 Sequences and Summations

3.1 Algorithms
3.2 The Growths of Functions
3.3 Complexity of Algorithms
3.4 The Integers and Division
3.5 Primes and Greatest Common Divisors
3.6 Integers and Algorithms
3.8 Matrices

4.1 Mathematical Induction
4.2 Strong Induction and Well-Ordering
4.3 Recursive Definitions and Structural Induction
4.4 Recursive Algorithms
4.5 Program Correctness

5.1 The Basics of Counting
5.2 The Pigeonhole Principle
5.3 Permutations and Combinations
5.6 Generating Permutations and Combinations

6.1 An Introduction to Discrete Probability
6.4 Expected Value and Variance

7.1 Recurrence Relations
7.3 Divide-and-Conquer Algorithms and Recurrence Relations
7.5 Inclusion-Exclusion

8.1 Relations and Their Properties
8.2 n-ary Relations and Their Applications
8.3 Representing Relations
8.5 Equivalence Relations

9.1 Graphs and Graph Models
9.2 Graph Terminology and Special Types of Graphs
9.3 Representing Graphs and Graph Isomorphism
9.4 Connectivity
9.5 Euler and Hamilton Ptahs

10.1 Introduction to Trees
10.2 Application of Trees
10.3 Tree Traversal

11.1 Boolean Functions
11.2 Representing Boolean Functions
11.3 Logic Gates
11.4 Minimization of Circuits

12.1 Language and Grammars
12.2 Finite-State Machines with Output
12.3 Finite-State Machines with No Output
12.4 Language Recognition
12.5 Turing Machines


Precalculus

R.1 The Real-Number System
R.2 Integer Exponents, Scientific Notation, and Order of Operations
R.3 Addition, Subtraction, and Multiplication of Polynomials
R.4 Factoring
R.5 Rational Expressions
R.6 Radical Notation and Rational Exponents
R.7 The Basics of Equation Solving

1.1 Functions, Graphs, Graphers
1.2 Linear Functions, Slope, and Applications
1.3 Modeling: Data Analysis, Curve Fitting, and Linear Regression
1.4 More on Functions
1.5 Symmetry and Transformations
1.6 Variation and Applications
1.7 Distance, Midpoints, and Circles

2.1 Zeros of Linear Functions and Models
2.2 The Complex Numbers
2.3 Zeros of Quadratic Functions and Models
2.4 Analyzing Graphs of Quadratic Functions
2.5 Modeling: Data Analysis, Curve Fitting, and Quadratic Regression
2.6 Zeros and More Equation Solving
2.7 Solving Inequalities

3.1 Polynomial Functions and Modeling
3.2 Polynomial Division; The Remainder and Factor Theorems
3.3 Theorems about Zeros of Polynomial Funtions
3.4 Rational Functions
3.5 Polynomial and Rational Inequalities

4.1 Composite and Inverse Functions
4.2 Exponential Functions and Graphs
4.3 Logarithmic Functions and Graphs
4.4 Properties of Logarithmic Functions
4.5 Solving Exponential and Logarithmic Equations
4.6 Applications and Models: Growth and Decay

5.1 Systems of Equations in Two Variables
5.2 System of Equations in Three Variables
5.3 Matrices and Systems of Equations
5.4 Matrix Operations
5.5 Inverses of Matrices
5.6 System of Inequalities and Linear Programming
5.7 Partial Fractions

6.1 The Parabola
6.2 The Circle and Ellipse
6.3 The Hyperbola
6.4 Nonlinear Systems of Equations

7.1 Sequences and Series
7.2 Arithmetic Sequences and Series
7.3 Geometric Sequences and Series
7.4 Mathematical Induction
7.5 Combinatorics: Permutations
7.6 Combinatorics: Combinations
7.7 The Binomial Theorem
7.8 Probability

-
You can get through a large part of discrete mathematics (namely the logic and set theory portions at least, much more from the looks of it) without pre-calc. So if you're interested in discrete math I'd recommend just...starting to learn it. Dive in and go back to a pre-calc book when you don't understand something. It'll be faster and more interesting than reading the pre-calc book and then not needing it for several chapters (and not needing a lot of it at all) –  Robert Mastragostino Oct 9 '12 at 19:28
Thanks, but I would rather go about it a different way. I don't necessarily have a particular interest in terms of math, however, I am looking to improve my math skills for the sake of my programming skills. I have no problems starting lower on the ladder and working my way up and I figure learning the precalc knowledge first can't hurt. –  Ein Doofus Oct 9 '12 at 19:34

## 1 Answer

The "precalculus" topics are probably not hard prerequisites to the "discrete mathematics" book -- it looks like one that starts from square one and doesn't assume much beyond elementary arithmetic. But most of them are part of what one would generally assume as "mathematical literacy" in science and engineering.

Therefore, more advanced computer science text will often assume that you're already familiar with the notations and ways of computation presented in "precalculus" whenever they happen to be relevant for a CS problem. If your goal is just CS, you can probably get away with not remembering any proofs from the precalculus stuff, but many of the methods may be needed sporadically.

So sooner or later you will have to learn enough of it that you can skim that table of contents and think "I know all that, so I don't have to read the book". But there's no reason to insist of getting it before you dig into the discrete mathematics.

-
Thanks @Henning Makholm. I had someone suggest that I learn "limits" before studying algorithms. I found another Precalculus book that covers that topic along with extra Trigonometry chapters. Is trig necessary before studying "limits" and also, should Trigonometry be one of those things in my "I know all that, so I don't have to read the book" arsenal? –  Ein Doofus Oct 9 '12 at 20:03
@Ein: There are some key concepts in algorithm analysis and complexity that can be defined using limits, but they also have other more direct definitions. I would expect a textbook that explicitly presents itself as "discrete mathematics" to use one of the definitions for them that don't require knowledge of limits. So you don't need to spend time on limits in advance unless you positively know that the particular text you will be learning algorithmics from will expect you to know them. –  Henning Makholm Oct 9 '12 at 20:22
@Ein: As for trigonometry, that is a bit of a grey area. You can do well without it in most of computer science, unless you want to go into graphics ... or much of image analysis ... or robotics or GIS, or even user interaction on mobile devices that are increasingly liberating themselves from the "every important direction on the screen is either up, down, left or right" of days past. (If you know what a sine and a cosine is and things like how to find an angle from a slope you should be fine, though). But the theoretical basics of CS certainly don't need trig. –  Henning Makholm Oct 9 '12 at 20:28
(And, by the way, trigonometry certainly doesn't need to come before limits even if you need limits). –  Henning Makholm Oct 9 '12 at 20:33
It would be good if you had a high level of comfort with exponential functions, logarithm. –  André Nicolas Oct 9 '12 at 21:04