Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

Computer Science Department

CS 205: Thinking Mathematically

Summer 2022

Outline of the Course:

The purpose of this course is to formalize many topics and ways of thinking in computer science that are frequently discussed in rather casual terms. Taking a mathematical approach to these ideas facilitates not only communication, but also understanding (ideally). On an abstract level, this course is about how to think logically, and how to identify and analyze the important parts of a problem to yield confident, correct results.  On a more technical level, this course covers a number of mathematical structures and ideas of interest that occur frequently in computer science.

Discrete mathematics has a very different feel and avor than that of other elds such as calculus, focusing instead on conceptualizing and manipulating discrete objects.  These include logical propositions, finite sets, combinations and permutations, and, at a higher level, graphs. These objects are important for modeling and analyzing real-world objects that are of interest programmatically (e.g., computation as functions, relationships as graphs, etc).

Text:

The main text will be Discrete Mathematics and Its Applications by Kenneth Rosen, the custom edition for Rutgers University - importantly, the Seventh Edition. Additional notes may be made available as necessary.

Grading and Recitations:

Grading will have three components: there will be 4 homework assignments (in depth, exploratory problems); there will be weekly quizzes (a little more rote, checking understanding, etc); and there will be a participation component, in terms of being a part of online discussions, etc. The relative weights of these will be 50%, 40%, 10%. Bonuses on the homework may push you over 100% for the course, that’s ne by me.  Note, I am not going to penalize others for the success of some.

Tentative Schedule and Topics for Lectures:

The following schedule may be adjusted as the session progresses - I am notoriously optimistic when it comes to what I can cover.

6/28  Lecture 1 Importance of discrete, example problems (correctness of thought), propositional logic + truth tables

6/30  Lecture 2 Propositional equivalences + examples, rules of inference, predicates and quantifiers

7/5  Lecture 3 Sets, set operations (examples, quantified statements, etc), functions, properties of functions, boolean

functions

7/7  Lecture 4 Introduction to proofs, proof strategies

7/12  Lecture 5 Induction, recursion, sequences + summations, cardinality of sets

7/14  Lecture 6 Strong induction, Well ordering, structural induction

7/19  Lecture 7 Recursive algorithms, program correctness

7/21  Lecture 8 Algorithm analysis, growth of functions, complexity of algorithms (simple calculations + search +

sort)

7/26  Lecture 9 Relations, properties, representations (functions + graphs)

7/28  Lecture 10 Integers, divisibility, Modular arithmetic - congruences + applications

8/2  Lecture 11 Diophantine equations, primality, factoring

8/4  Lecture 12 Cryptography

8/9  Lecture 13 Computability + Turing Machines

8/11  Lecture 14 Overflow

8/16  Lecture 15? Overflow