14
CS10 : The Beauty and Joy of Computing Lecture #6 Algorithms 2012-06-26 A VOCAL TEST FOR PARKINSON’S Announced at TEDGlobal 2012 on Monday, the new system is already 86% accurate. They need more recordings of voices to improve, so give them a call. www.bbc.com/news/technology-18427851 UC Berkeley EECS Summer Instructor Ben Chun

CS10 : The Beauty and Joy of Computingcs10/su13/lec/06/...Jun 26, 2012  · EdgeRank Facebook’s way of determining what appears in your news feed Commonly-Used Algorithms . ... something

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CS10 : The Beauty and Joy of Computingcs10/su13/lec/06/...Jun 26, 2012  · EdgeRank Facebook’s way of determining what appears in your news feed Commonly-Used Algorithms . ... something

CS10 : The Beauty and

Joy of Computing

Lecture #6 Algorithms

2012-06-26

A VOCAL TEST FOR PARKINSON’S

Announced at TEDGlobal 2012 on Monday, the new system is already 86% accurate. They need more recordings of voices to improve, so give them a call.

www.bbc.com/news/technology-18427851

UC Berkeley EECS Summer Instructor

Ben Chun

Page 2: CS10 : The Beauty and Joy of Computingcs10/su13/lec/06/...Jun 26, 2012  · EdgeRank Facebook’s way of determining what appears in your news feed Commonly-Used Algorithms . ... something

UC Berkeley CS10 “The Beauty and Joy of Computing” : Algorithms (2)

Chun, Summer 2012

What is the world record? For the standard 3x3x3 cube… a)  56.12 s b)  14.76 s c)  7.96 s d)  5.66 s e)  3.31 s

Page 3: CS10 : The Beauty and Joy of Computingcs10/su13/lec/06/...Jun 26, 2012  · EdgeRank Facebook’s way of determining what appears in your news feed Commonly-Used Algorithms . ... something

UC Berkeley CS10 “The Beauty and Joy of Computing” : Algorithms (3)

Chun, Summer 2012

Feliks Zemdegs en.wikipedia.org/wiki/Fridrich_method

16 years old, current world record holder

2x2 average 3x3 single 3x3 average 5x5 average

Page 4: CS10 : The Beauty and Joy of Computingcs10/su13/lec/06/...Jun 26, 2012  · EdgeRank Facebook’s way of determining what appears in your news feed Commonly-Used Algorithms . ... something

UC Berkeley CS10 “The Beauty and Joy of Computing” : Algorithms (4)

Chun, Summer 2012

§  An algorithm is any well-defined computational procedure that takes an input and produces an output

§  The concept is older than digital computers

What is an algorithm?

Page 5: CS10 : The Beauty and Joy of Computingcs10/su13/lec/06/...Jun 26, 2012  · EdgeRank Facebook’s way of determining what appears in your news feed Commonly-Used Algorithms . ... something

UC Berkeley CS10 “The Beauty and Joy of Computing” : Algorithms (5)

Chun, Summer 2012

§  Dances §  Ceremonies §  Recipes §  Building techniques

All are conceptually similar to algorithms!

Algorithms Everywhere www.ctillustrated.com/

Page 6: CS10 : The Beauty and Joy of Computingcs10/su13/lec/06/...Jun 26, 2012  · EdgeRank Facebook’s way of determining what appears in your news feed Commonly-Used Algorithms . ... something

UC Berkeley CS10 “The Beauty and Joy of Computing” : Algorithms (6)

Chun, Summer 2012

§  Subtract each digit from the one above, moving from least to greatest place value, “borrowing from the neighbor” if necessary to get a positive result

Algorithms You’ve Seen

Page 7: CS10 : The Beauty and Joy of Computingcs10/su13/lec/06/...Jun 26, 2012  · EdgeRank Facebook’s way of determining what appears in your news feed Commonly-Used Algorithms . ... something

UC Berkeley CS10 “The Beauty and Joy of Computing” : Algorithms (7)

Chun, Summer 2012

§  Length of word

§  Does a word appear in a list?

§  Is a list sorted?

§  Pick a random word of length x from a list

Algorithms You’ve Seen

Page 8: CS10 : The Beauty and Joy of Computingcs10/su13/lec/06/...Jun 26, 2012  · EdgeRank Facebook’s way of determining what appears in your news feed Commonly-Used Algorithms . ... something

UC Berkeley CS10 “The Beauty and Joy of Computing” : Algorithms (8)

Chun, Summer 2012

§  Luhn algorithm credit card validation

§  PageRank

Google’s way of determining the relevance of a page to a search term

§  Damerau-Levenshtein distance Spell checking

§  EdgeRank Facebook’s way of determining what appears in your news feed

Commonly-Used Algorithms

Page 9: CS10 : The Beauty and Joy of Computingcs10/su13/lec/06/...Jun 26, 2012  · EdgeRank Facebook’s way of determining what appears in your news feed Commonly-Used Algorithms . ... something

UC Berkeley CS10 “The Beauty and Joy of Computing” : Algorithms (9)

Chun, Summer 2012

§  Most problems can be solved >1 way ú  Multiple algorithms will

give a solution ú  But all algorithms are

not created equal!

§  Trade-offs ú  Time ú  Space

Choosing a Technique

Page 10: CS10 : The Beauty and Joy of Computingcs10/su13/lec/06/...Jun 26, 2012  · EdgeRank Facebook’s way of determining what appears in your news feed Commonly-Used Algorithms . ... something

UC Berkeley CS10 “The Beauty and Joy of Computing” : Algorithms (10)

Chun, Summer 2012

§  Brute Force Keep trying stuff until something works

§  Top-down Divide the problems up into smaller problems, solve them, combine the answers

§  Bottom-up Start with a simple solution and elaborate it until the full problem is solved

Three Ways to Attack Problems

Page 11: CS10 : The Beauty and Joy of Computingcs10/su13/lec/06/...Jun 26, 2012  · EdgeRank Facebook’s way of determining what appears in your news feed Commonly-Used Algorithms . ... something

UC Berkeley CS10 “The Beauty and Joy of Computing” : Algorithms (11)

Chun, Summer 2012

§  An algorithm is a conceptual definition of how to accomplish a task

§  Language agnostic

§  A function or procedure is an implementation of an algorithm

§  Written in a particular language, can be run

Algorithms vs. Functions / Procedures

Page 12: CS10 : The Beauty and Joy of Computingcs10/su13/lec/06/...Jun 26, 2012  · EdgeRank Facebook’s way of determining what appears in your news feed Commonly-Used Algorithms . ... something

UC Berkeley CS10 “The Beauty and Joy of Computing” : Algorithms (12)

Chun, Summer 2012

Scratch

Scheme

Example: Finding the Maximum

Page 13: CS10 : The Beauty and Joy of Computingcs10/su13/lec/06/...Jun 26, 2012  · EdgeRank Facebook’s way of determining what appears in your news feed Commonly-Used Algorithms . ... something

UC Berkeley CS10 “The Beauty and Joy of Computing” : Algorithms (13)

Chun, Summer 2012

§  Total Correctness Always reports, and is always correct

§  Partial Correctness Sometimes reports, and the answer is correct when it reports

§  Probabilistic A certain probability of returning the right answer

Correctness

Page 14: CS10 : The Beauty and Joy of Computingcs10/su13/lec/06/...Jun 26, 2012  · EdgeRank Facebook’s way of determining what appears in your news feed Commonly-Used Algorithms . ... something

UC Berkeley CS10 “The Beauty and Joy of Computing” : Algorithms (14)

Chun, Summer 2012

§  Algorithms are an old idea, integral to CS

§  Definition: well-defined procedure that takes inputs and produces output

§  Trade-offs usually can’t be avoided

§  Correctness is important, and testing is a practical strategy to ensure this

Summary