CIS 260 Mathematical Foundations of Computer Science.

46
CIS 260 Mathematical Foundations of Computer Science
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    219
  • download

    0

Transcript of CIS 260 Mathematical Foundations of Computer Science.

Page 1: CIS 260 Mathematical Foundations of Computer Science.

CIS 260Mathematical Foundations of

Computer Science

Page 3: CIS 260 Mathematical Foundations of Computer Science.

Lectures and recitations

• Lectures• TT 1:30—3:00

• Recitations on Fridays• 12—1(Moore 212) Joy• 1—2 (Towne 305) Gary• 2—3 (Towne 305) Shilpi

• For both lectures and recitations, regular attendance is expected. Necessary in order to insure you keep up with the class

Page 4: CIS 260 Mathematical Foundations of Computer Science.

Cancelled recitation sections

• Please note:

• If you are still signed up for section 203 or 204, you would have to choose another section. These two have been cancelled!

•No recitations tomorrow (Jan 16)

Page 5: CIS 260 Mathematical Foundations of Computer Science.

Office hours

• Monday 4:30—6 Joy • Friday 2—3 Gary• Friday 3—4 Shilpi

– Locations to be determined by next week

• Ani: Wed 10am—11am in Levine 505

Page 6: CIS 260 Mathematical Foundations of Computer Science.

Website and bulletin board

• Will be up by early next week

• Use the bulletin board!• If you have problems with understanding

the wording of homework problems, it is likely others in the class will have the exact same question. Post to the board.

• DO NOT send partial solutions!

Page 7: CIS 260 Mathematical Foundations of Computer Science.

Grades

• 10 HW assignments: 20% of the grade

• 2 exams: 25% of the grade

• Final: 30% of the grade

• Extra credit for class and recitations participation will be assigned and used to decide the grade when your scores fall in between grade “bins”

Page 8: CIS 260 Mathematical Foundations of Computer Science.

Late policy

• All homeworks have to be submitted before the end of class the day they are due

• No late homeworks will be accepted! You can submit early if for some reason you cannot make it to class that day

Page 9: CIS 260 Mathematical Foundations of Computer Science.

Midterms

• Midetrm 1: Feb 19

• Midterm 2: Mar 26

• If there are any holidays or other days that need to taken into account when setting due dates, you should let me know by the END OF NEXT WEEK

Page 10: CIS 260 Mathematical Foundations of Computer Science.

Collaboration + Cheating

You may NOT share written work

You may NOT use Google, or solutions to previous years’ homework

You MUST write the names of people you discussed the homework with

Page 11: CIS 260 Mathematical Foundations of Computer Science.

Textbook

Discrete Mathematics and Its Applications, Kenneth H. Rosen, sixth edition

Page 12: CIS 260 Mathematical Foundations of Computer Science.

((( )))

Feel free to ask questions

Page 13: CIS 260 Mathematical Foundations of Computer Science.

Bits of Wisdom on Solving Problems, Writing Proofs, and

Succeeding in This Class

Page 14: CIS 260 Mathematical Foundations of Computer Science.

• Do not panic• Make sure you understand what

you are being asked• Make sure that you understand

and remember definitions (the smallest building blocks of all we do in this class)

Page 15: CIS 260 Mathematical Foundations of Computer Science.

Exemplification:Try out a problem or solution on

small examples. Look for the patterns.

Page 16: CIS 260 Mathematical Foundations of Computer Science.

A volunteer, please

Page 17: CIS 260 Mathematical Foundations of Computer Science.

RelaxI am just going to ask you a Microsoft interview question

Page 18: CIS 260 Mathematical Foundations of Computer Science.

Four guys want to cross a bridge that can only hold two people at one time. It is pitch dark and they only have one flashlight, so people must cross either alone or in pairs (bringing the flashlight). Their walking speeds allow them to cross in 1, 2, 5, and 10 minutes, respectively. Is it possible for them to all cross in 17 minutes?

Page 19: CIS 260 Mathematical Foundations of Computer Science.

Get The Problem Right!

Given any context you should double check that you read/heard it correctly!

You should be able to repeat the problem back to the source and have them agree that you understand the issue

Page 20: CIS 260 Mathematical Foundations of Computer Science.

Four guys want to cross a bridge that can only hold two people at one time. It is pitch dark and they only have one flashlight, so people must cross either alone or in pairs (bringing the flashlight). Their walking speeds allow them to cross in 1, 2, 5, and 10 minutes, respectively. Is it possible for them to all cross in 17 minutes?

Page 21: CIS 260 Mathematical Foundations of Computer Science.

Intuitive, But False

“10 + 1 + 5 + 1+ 2 = 19, so the four guys just can’t cross in 17 minutes”

“Even if the fastest guy is the one to shuttle the others back and forth – you use at least 10 + 1 + 5 + 1 + 2 > 17 minutes”

Page 22: CIS 260 Mathematical Foundations of Computer Science.

Vocabulary Self-Proofing

As you talk to yourself, make sure to tag assertions with phrases that denote degrees of conviction

Page 23: CIS 260 Mathematical Foundations of Computer Science.

Keep track of what you actually know – remember what you merely

suspect

“10 + 1 + 5 + 1 + 2 = 19, so it would be weird if the four guys could cross in 17 minutes”

“even if we use the fastest guy to shuttle the others, they take too long.”

Page 24: CIS 260 Mathematical Foundations of Computer Science.

If it is possible, there must be more than one guy doing the

return trips: it must be that someone gets deposited on one side and comes back for the return trip later!

Page 25: CIS 260 Mathematical Foundations of Computer Science.

Let’s try another one

• Pairs of primes separated by a single number are called prime pairs.Examples are 17 and 19. Prove that the number between a prime pair isalways divisible by 6 (assuming both numbers in the pair are greaterthan 6). Now prove that there are no 'prime triples.'

Page 26: CIS 260 Mathematical Foundations of Computer Science.

How did we think about the solution?

• Possible answer: “I am smart and I thought about it”.

• Truth: “Practice! Have seen many other similar problems”.

Page 27: CIS 260 Mathematical Foundations of Computer Science.

In this course you will have to write a lot of

proofs!

Page 28: CIS 260 Mathematical Foundations of Computer Science.

Think of Yourself as a (Logical) Lawyer

Your arguments should have no holes, because the opposing lawyer will expose

them

Page 29: CIS 260 Mathematical Foundations of Computer Science.

Prover Verifier

Statement1

Statement2

Statementn

There is no sound reason

to go from Statament1 to

Statement2

Page 30: CIS 260 Mathematical Foundations of Computer Science.

Verifier

The verifier is very thorough, (he can catch all your mistakes), but he will not supply missing details of a proofA valid complaint on his part is: I don’t understand

The verifier is similar to a computer running a program that you wrote!

Page 31: CIS 260 Mathematical Foundations of Computer Science.

Undefined term

Syntax error

Writing Proofs Is A Lot Like Writing

ProgramsYou have to write the correct sequence of statements to satisfy the verifier

Infinite Loop

Output is not quite what was needed

Errors than can occur with a

program and with a proof!

Page 32: CIS 260 Mathematical Foundations of Computer Science.

Good code is well-commented and written in a way that is easy for other humans (and yourself) to understand

Similarly, good proofs should be easy to understand. Although the formal proof does not require certain explanatory sentences (e.g., “the idea of this proof is basically X”), good proofs usually do

Page 33: CIS 260 Mathematical Foundations of Computer Science.

The proof verifier will not accept a proof unless every step is justified!

Writing Proofs is Even Harder than Writing Programs

It’s as if a compiler required your programs to have every line commented (using a special syntax) as to why you wrote that line

Page 34: CIS 260 Mathematical Foundations of Computer Science.

Prover Verifier

A successful mathematician plays both roles in their head when writing a proof

Page 35: CIS 260 Mathematical Foundations of Computer Science.

Prove techniques you should avoid

Page 36: CIS 260 Mathematical Foundations of Computer Science.

Proof by Throwing in the Kitchen Sink (Mental

Dump)The author writes down every theorem or result known to mankind and then adds a few more just for good measureWhen questioned later, the author correctly observes that the proof contains all the key facts needed to actually prove the result

Very popular strategy on exams

Believed to result in partial credit with sufficient whining. To avoid this, 10% of the question points will be given for a simple “I don’t know”.

Page 37: CIS 260 Mathematical Foundations of Computer Science.

Proof by Throwing in the Kitchen Sink

The author writes down every theorem or result known to mankind and then adds a few more just for good measureWhen questioned later, the author correctly observes that the proof contains all the key facts needed to actually prove the result

Very popular strategy on 251 exams

Believed to result in extra credit with sufficient whining

Like writing a program with functions that do almost

everything you’d ever want to do (e.g. sorting integers,

calculating derivatives), which in the end simply prints “hello

world”

Page 38: CIS 260 Mathematical Foundations of Computer Science.

Proof by ExampleThe author gives only the case n = 2 and suggests that it contains most of the ideas of the general proof.

Like writing a program that only works for a few

inputs

Page 39: CIS 260 Mathematical Foundations of Computer Science.

Proof by Cumbersome Notation

Best done with access to at least four alphabets and special symbols.

Helps to speak several foreign languages.

Like writing a program that’s really hard to read

because the variable names are confusing

Page 40: CIS 260 Mathematical Foundations of Computer Science.

Proof by Lengthiness

An issue or two of a journal devoted to your proof is useful.

Like writing 10,000 lines of code to simply print

“hello world”

Page 41: CIS 260 Mathematical Foundations of Computer Science.

Proof by Switcharoo

Concluding that p is true when both p q and q are true

If (PRINT “X is prime”) { PRIME(X);

}

Makes as much sense as:

Page 42: CIS 260 Mathematical Foundations of Computer Science.

Proof by “It is Clear That…”

“It is clear that the worst case is this:”

Like a program that calls a function that you never

wrote

Page 43: CIS 260 Mathematical Foundations of Computer Science.

Proof by Assuming The Result

Assume X is true

Therefore, X is true!

…RECURSIVE(X) {

: :return RECURSIVE(X);

}

Like a program with this code:

Page 44: CIS 260 Mathematical Foundations of Computer Science.

Not Covering All Cases

Usual mistake in inductive proofs: A proof is given for N = 1 (base case), and another proof is given that, for any N > 2, if it is true for N, then it is true for N+1

RECURSIVE(X) {if (X > 2) { return 2*RECURSIVE(X-1); }if (X = 1) { return 1; }

}

Like a program with this function:

Page 45: CIS 260 Mathematical Foundations of Computer Science.

Incorrectly Using “By Definition”

“By definition, { anbn | n > 0 } is not a regular language”

Like a program that assumes a procedure does something other than what it actually does

Page 46: CIS 260 Mathematical Foundations of Computer Science.

Here’s What You Need to Know…

Solving Problems• Always try small examples!• Use enough paper

Writing Proofs• Writing proofs is sort of like writing programs, except every step in a proof has to be justified • Be careful; search for your own errors