I know that Discrete Mathematics is a pretty broad topic that's used in a number of fields but I was just wondering what are some of the topics from it that you would expect an average computer science student to know?

Here are the range of topics from the table of contents of a book titled "Discrete Mathematics and it's Applications 6th edition" by Kenneth H Rosen:

1 The Foundations: Logic and Proofs

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 Basic Structures: Sets, Functions, Sequences and Sums

2.1 Sets

2.2 Set Operations

2.3 Functions

2.4 Sequences and Summations

3 The Fundamentals: Algorithms, the Integers, and Matrices

3.1 Algorithms

3.2 The Growth 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.7 Applications of Number Theory

3.8 Matrices

4 Induction and Recursion

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 Counting

5.1 The Basics of Counting

5.2 The Pigeonhole Principle

5.3 Permutations and Combinations

5.4 Binomial Coefficients

5.5 Generalized Permutations and Combinations

5.6 Generating Permutations and Combinations

6 Discrete Probability

6.1 An Introduction to Discrete Probability

6.2 Probability Theory

6.3 Bayes Theorem

6.4 Expected Value and Variance

7 Advanced Counting Techniques

7.1 Recurrence Relations

7.2 Solving Linear Recurrence Relations

7.3 Divide-and-Conquer Algorithms and Recurrence Relations

7.4 Generating Functions

7.5 Inclusion-Exclusion

7.6 Applications of Inclusion-Exclusion

8 Relations

8.1 Relations and Their Properties

8.2 n-ary Relations and Their Applications

8.3 Representing Relations

8.4 Closures of Relations

8.5 Equivalence Relations

8.6 Partial Orderings

9 Graphs

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 Paths

9.6 Shortest-Path Problems

9.7 Planar Graphs

9.8 Graph Coloring

10 Trees

10.1 Introduction to Trees

10.2 Applications of Trees

10.3 Tree Traversal

10.4 Spanning Trees

10.5 Minimum Spanning Trees

11 Boolean Algebra

11.1Boolean Functions

11.2 Representing Boolean Functions

11.3 Logic Gates

11.4 Minimization of Circuits

12 Modeling Computation

12.1 Languages 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

Appendixes

A.1 Axioms for the Real Numbers and the Positive Integers

A.2 Exponential and Logarithmic Functions

A.3 Pseudocode

I should mention that I am a student but I'm not trying to cut any corners. I took a discrete math class years ago before my college changed it to be more specialized in Computer Science. Now that I'm going back for my MS in CS I'd like to relearn what I should know. I also eventually need to take a Data Structures and Algorithms course that has Discrete Mathematics as it's prerequisite.

## 4 Replies - 2777 Views - Last Post: 09 August 2012 - 04:23 AM

### #1

# Discrete Mathematics topics a computer science student should know?

Posted 09 August 2012 - 02:41 AM

##
**Replies To:** Discrete Mathematics topics a computer science student should know?

### #2

## Re: Discrete Mathematics topics a computer science student should know?

Posted 09 August 2012 - 02:45 AM

eindoofus, on 09 August 2012 - 11:41 AM, said:

I know that Discrete Mathematics is a pretty broad topic that's used in a number of fields but I was just wondering what are some of the topics from it that you would expect an average computer science student to know?

From that list I'd expect a computer science student to know all of them (at least after his second year as a student).

### #3

## Re: Discrete Mathematics topics a computer science student should know?

Posted 09 August 2012 - 03:02 AM

sepp2k, on 09 August 2012 - 02:45 AM, said:

eindoofus, on 09 August 2012 - 11:41 AM, said:

I know that Discrete Mathematics is a pretty broad topic that's used in a number of fields but I was just wondering what are some of the topics from it that you would expect an average computer science student to know?

From that list I'd expect a computer science student to know all of them (at least after his second year as a student).

Thanks for the feedback. In that case I do plan to learn all of the topics but are there any that you would expect to be especially important for a Applied Algorithms and Data Structures course?:

http://www.cdm.depau...&CatalogNbr=421

Btw, I already e-mailed the instructor and have not received a reply.

### #4

## Re: Discrete Mathematics topics a computer science student should know?

Posted 09 August 2012 - 03:10 AM

Obviously the chapter about algorithms will be most relevant to an algorithms course. Also the ones about trees and graphs. The ones about proofs too (or not - depending on how serious they take the "applied" in the title). Note that some of those chapters will probably require knowledge from earlier chapters to understand them, so you'd need those too.

This post has been edited by **sepp2k**: 09 August 2012 - 03:10 AM

### #5

## Re: Discrete Mathematics topics a computer science student should know?

Posted 09 August 2012 - 04:23 AM

I would say the majority of CS graduates know 95% of what's in that book. It would be beneficial to know it all, since your entering a Masters program where a course in Algorithms may focus more on theoretical aspects and require a basic knowledge of discrete probability, elementary combinatorics, and methods of proof. It really depends on your program, but I think that's a fair assessment based on what I've seen in doing Algorithm coursework.

This post has been edited by **blackcompe**: 09 August 2012 - 04:24 AM

Page 1 of 1