introduction to discrete structures fall 2017 · introduction to discrete structures fall 2017...
Post on 17-May-2018
227 Views
Preview:
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