introduction to discrete structures fall 2017 · introduction to discrete structures fall 2017...

Post on 17-May-2018

227 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introduction to Discrete Structures Fall 2017

Discrete Structures (CS 173)

Madhusudan Parthasarathy (Madhu) University of Illinois

Allee in the Park

Van Gogh

Today’s class

• A little about me

• What is this course about?

An introduction to discrete structures

• Course logistics

About me

India Germany Philadelphia Urbana

My research Building safe and secure software

Examples:

- How do we build a secure voting machine?

- Safe Mars rover?

- Safe operating system?

- Secure Android platform?

- Secure cloud computing system?

Not just “reasonably correct” but “provably

correct”!

Idea: View the system being secure as a

theorem in mathematics. Prove the theorem!

My research

Recent work: Secure Android platform(~10KLOC)

Combination of logic, theorem proving, algorithms and

software engineering

Discrete mathematics

Really, you should have done this course in school!

Reasons you didn’t:

- Science has hijacked math courses to teach what’s useful for science … calculus.

Math most useful for computer science hasn’t found

it’s way into school curricula.

But, don’t underestimate this course!

Calculus

In physics/mechanics:

𝑣 =𝑑𝑥

𝑑𝑡

𝑎 =𝑑𝑣

𝑑𝑡

In engineering:

Fluid mechanics, structural analysis, friction, flow rates, cooling laws, thrust, gravitation, …

But not as useful in computer science…

Fastest path from Chicago to Bloomington?

Fastest path from Chicago to Bloomington?

Fastest path from Chicago to Bloomington?

start

end

2 3

1

4

Fastest path from Chicago to Bloomington?

start

end

2 4

1

3

C

B

1 2

3 4

20 30

15

120

110

35

90 60 Lost in translation:

- curvature of Earth

- the curves in the road

- the potholes

- the number of Starbucks on each route

,,,

Modeling using graphs

Fastest path from Chicago to Bloomington?

Problem: find shortest path from C to B

– Many solutions: try random paths, enumerate all paths, depth first search C

B

1 2

3 4

20 30

15

120

110

35

90 60

Fastest path from Chicago to Bloomington?

C

B

1 2

3 4

20 30

15

120

110

35

90 60

30 20

140 65

140

Problem: find shortest path from C to B

– Many solutions: try random paths, enumerate all paths, depth first search

Dijkstra’s algorithm

– Explore neighboring nodes and keep track of shortest path to each

Fastest path from Chicago to Bloomington?

C

B

1 2

3 4

20 30

15

120

110

35

90 60

30 20

140 65

140

Problem: find shortest path from C to B

– Many solutions: try random paths, enumerate all paths, depth first search

Dijkstra’s algorithm

– Explore neighboring nodes and keep track of shortest path to each

How good is this algorithm?

– Does it find the best solution?

– How long does it take to compute?

Fastest path from Chicago to Bloomington?

C

B

1 2

3 4

20 30

15

120

110

35

90 60

30 20

140 65

140

Problem: find shortest path from C to B

– Many solutions: try random paths, enumerate all paths, depth first search

Dijkstra’s algorithm

– Explore neighboring nodes and keep track of shortest path to each

How good is this algorithm?

– Does it find the best solution?

– How long does it take to compute?

– How does the computation grow as the number of vertices or edges increases?

Modeling using graphs

Modeling using graphs

Modeling using

Discrete Structures:

Weigted graphs

Asymotitic Worst-case

analysis

Datastructure using discrete

structures: trees

Six degrees to Harry Lewis

Subject: Re: six degrees to harry lewis Date: January 23, 2004 Professor, I've been interested in graph theory and its applications to social networks for a while now, so I did some research that has to do with linking people through articles they appear in from the Crimson. I thought people would find this interesting, so I've set up a preliminary site that allows people to find the connection (through people and articles) from any person to the most frequently mentioned person in the time frame I looked at. ! This person is you.

Letter from Mark Zuckerberg to Prof. Lewis,

Six degrees to Harry Lewis was

a prototype website before Facebook.

Facebook network

By Paul Butler, 2010

Again, model is a graph.

A puzzle

• Can you draw this on paper, without retracing any line/curve and without removing your pencil from the paper?

Proofs

How do you convince a fellow human being

(or your roommate) that something is really really true?

Eg. How do you show him/her that drawing

this is impossible?

Discrete Structures

• The calculus for computer science

• We want to solve problems computationally

This requires

– modeling the world discretely – devising an algorithm that uses discrete structures – determining the efficiency and correctness of that algorithm

(time and space are discrete).

• Discrete structures:

model for discretely capturing problems, and techniques to think computationally and rigorously about these models.

Discrete Structures

• Numbers

natural numbers: 0, 1, 2, …

integers: …., -3, -2, -1, 0, 1, 2, 3, …

• Graphs - undirected graphs - directed graphs - trees

Describing classes of discrete structures

• Recursion

A way to define functions where the function on a larger structure is defined

using the value of the function on smaller structures.

Very similar to recursion in programming!

Works only in discrete structure settings!

Reasoning with discrete structures

• Direct proofs • Proof-by-contrapositive • Proofs of equality of sets

• INDUCTION A way to prove properties of structures where the proof proves the property of a larger structure assuming the property holds on smaller structures. Again, induction works well only for discrete structures.

Recursion and induction

• Discrete structures in computer science of unbounded (but finite) size can be defined using recursion.

(A linked list is either the null list, or is a

node n whose next-pointer points to a linked list.)

• Recursion Programming!

Recursive functions are equivalent to programming. E.g., functional prog languages

• Induction: The main proof technique for proving properties of recursive structures *and* the programs that manipulate recursive structures.

Other names for this class

• The rewire-your-brain-to-think-formally class

Image from a Huffington Post article

• The ``proofs’’ class – How to make convincing arguments that other

scientists and mathematicians will consider solid enough. How to make convincing arguments that your system/algorithm/program is correct.

What you’ll learn in this course

• How to model the world (and problems) – Logic, sets, sets of sets, trees, graphs, functions, etc.

• Techniques to prove and disprove statements – Direct, existential, contradiction, contrapositive,

induction, Some combinatorics, counting, etc.

• How to model the computational behavior of algorithms (time complexity and correctness) - Big O, recurrence relations, induction, etc.

• A foundation for computational thinking that will serve you all your life…

Course logistics

Course website:

http://courses.engr.illinois.edu/cs173/

Lecture B:

http://courses.engr.illinois.edu/cs173/B-lecture/

Course Logistics: Weekly Schedule

• Mon night: finish reading exercise/videos for Tue class • Tue: come to lecture • Wed night: finish reading exercise/videos for Thu class or do post quiz • Thu: come to lecture; start working on new problem set • Thu: submit HW (start working previous week!) • Fri: attend a discussion section • Weekend: start on new HW or start preparing for examlet, continue through the week

Time Monday Tuesday Wednesday Thursday Friday

Class

Lecture

11am-12:15pm

Lecture

11am-12:15pm

EXAMLET

Office Hours

Discussion

Sections

Discussion

Sections

11am, 12pm,

1pm, 2pm, 3pm

Homework

Reading Quiz /

Videos

due midnight

Reading Quiz /

Videos

due midnight

Mini-HW and

Long-form HW

Course Logistics: Grading • Homework/quizzes (35%)

– Quiz (pre or post lecture): 5%

Auto-graded on Moodle: can see score, fix, and resubmit – Mini-HW: 10%

Auto-graded for fast feedback

– Long-form HW: 15% Submitted online on Moodle; graded by TAs – Discussion assignments: 5%

Work done in discussion sections (need to turn in the assignments done; keep a copy)

• Exams (65%)

– Examlets (approiximately every other week; 5-6 over semester): 30% – Final Exam: 35% – No midterm exams

• Late policy

– Simple: late assignments will not be accepted – See website for details on extenuating circumstances – Lowest quiz, lowest mini-HW, lowest discussion assignment dropped.

But lowest long form homework NOT dropped.

• Cheating policy – See course website

Course Logistics: Grading

• Thresholds for guaranteed grades A- : 90%

B- : 80%

C- : 70%

D- : 50%

• We reserve right to curve up

• In previous terms, this course has given about 20% A's, 30% B's, 30% C's, 15% D's, and 5% F's

• Last offering of this course was graded unusually high: 37% A’s, 32% B’s, 13% C’s

Reading and Textbook • Mathematics for Computer Science

Lehman, Leighton, Meyer MIT Google for it

• Some lecture notes posted by me on course website. • Margaret Fleck’s notes

Building Blocks for Theoretical Computer Science http://mfleck.cs.illinois.edu/building-blocks/

A simple condensed text

• Optional book: Rosen “Discrete Mathematics and its Applications”, 5th to 7th edition – More detail, practice problems; heavy!

• Purchase the manual of discussion problems, available for $4.75 at the Union Bookstore. You should bring this to your assigned discussion each week.

Getting help

• Discussion sections and office hours

- On Fridays

• Newsgroup: piazza.com

Password: yoda

• Major problems See course page.

Textbooks: MIT Textbook, Fleck’s text,

Madhu’s notes

Discussion problems:

Need to buy from bookstore! (~$5)

RESOURCES

ROUTINE WORK

Reading assignments/

quiz (online,

autograded, Moodle)

Mini-HW (online,

auto-graded, Moodle)

Long-form HW (online; using

Moodle/LaTeX)

ONLINE Moodle

Piazza pwd: yoda

sign up for the right section use any email addr

Examlets roughly every two

weeks

Final

(comprehensive)

Tips

• This class is very difficult for most students • New ways of thinking require lots of practice; math is hard • But if you grasp things early, you will sail smoothly. • Basic approach to taking this class

– Come to lectures, take notes • If you have trouble following lecture, read the relevant sections of the

book first

– Try doing the homework – Read the online textbook – Complete the homework (use TAs, Piazza, Rosen book, online

resources as needed)

• Preparing for exams – Find extra problems from past homeworks and exams (see past

courses linked via website) – Do a few extra problems every week in a topic that is difficult for

you – 2 weeks before exam, start doing extra problems every day until

all the past homework and exam problems are easy

Prerequisites, proficiency, honors

• Prerequisites – Calculus I (Math 220 or 221 or 234) and CS 125 or ECE 190 or CS 101 or a high

grade in INFO 103

– If you aren't sure whether you have the right background, speak to me (or Margaret Fleck)

To do now

• Read syllabus and course information online

– Navigate and look at all parts of the course website

• Enroll in Piazza to get announcements

– Access code: yoda

• Reading assignment for Thursday: Read Chapter 1 and 2 of Fleck’s book.

Let’s learn some discrete mathematics… the calculus for computer science

top related