cs 100: algorithms and searchkauffman/teaching-samples/cs100/w07-1.pdfi results: now he sings, now...

13
CS 100: Algorithms and Search Chris Kauffman Week 7-1

Upload: nguyenkhue

Post on 17-Apr-2018

220 views

Category:

Documents


3 download

TRANSCRIPT

CS 100: Algorithms and Search

Chris Kauffman

Week 7-1

Mini-exam 2 Back

Statistics

Stat Val Perc.Count 69Max 40.00 100.00Avg 32.30 80.75Median 35.00 87.50Stddev 7.71 19.28

Bins

Range Count90 - 100 3180 - 89 1570 - 79 960 - 69 650 - 59 240 - 49 230 - 39 220 - 29 1

Questions?

Logistics

Midterm GradesI Post over the weekendI Based on HW 1-3,

Mini-exam 1&2, In-classI Advisory only

HW 4 Due Friday 5pm

I Pair assignmentI Processing listsI Mini-web search

Reading

I Pattern Ch 5: AlgorithmsAnd Heuristics

I Pattern Ch 6: Memory,Information, and SecretCodes

I Zyante: None

Goals Today

I Algorithms, Heuristics,Complexity

I Search Problems

Sock Sorting: In-class Exercise

Source

ProblemI Here’s a bunch of socksI Someone "sort" themI Restriction: Cannot dump all

socks on the table

Everyone Else

I Write down the algorithmthe sorter uses

I Work in pairs or threesI Include your Names and

NetIDs

Here’s a Second Way

I Chris will sort the socksI On the same sheet

I Write down the algorithmyou observe Chris Use

I How is it different fromthe first algorithm?

I Discuss in 5 minutesSource

Which Sock Algorithm is Better?

"Better"?I What’s the notion of better

for this sock sorting?I Which algorithm would you

choose for each of thefollowing situations?

Algorithms:1. Search the Basket2. Put on the Table

Scenario 1: Replicates

I Basket has 100 total socksI 25 pairs of blue (50 socks)I 25 pairs of red (50 socks)

Scenario 2: All Orphans

I Basket has 100 total socksI 5 pairs of blue (10 socks)I 5 pairs of red (10 socks)I 80 dissimilar socks (80

socks)

Scenario 3: All Unique

I Basket has 100 total socksI There are 50 different colors

of socks (includingChartreuse )

I There is one pair of eachcolor (100 socks)

Socks

Python Lists are good to model this

I "Pattern" initial example of algorithms: sorting socksI File socks.py encodes two versions of sorting socksI Uses functionst that change lists

lst1.append(thing) # add thing to the end of list lthing = lst2.pop(3) # remove 3rd item, assign to thing

I Compare to "Pattern" pg 77-78 to see if you follow the logicI Somewhat complex problem, too hard for a HW

Make sure to turn in your participation sheets

I Names and NetIDs of all group membersI Worth credit for grade

I couldn’t Remember

I Wanted a particular albumfrom my stack of CDs

I Shelf is roughly alphabeticalby artist

I Could not remember thename of the artist

I Did remember the albumwas something like "Now HeSings, Now He Sleeps"

I Genre: jazz, piano trioI How do I find the CD?I Discuss with a neighbor

Source

SearchesLinear Search

I Start at the beginningI Examine, each item

sequentially against thesearch query

I If the query matches theitem, report where it islocated and quit

I When all items have beenscanned report that nothingmatched

Alternative: "Indexed" SearchI Know a better starting point

I The artist’s name startswith ’C’

I CDs organized by name

I Search items sequentially atthat starting point

I When it’s obvious item isnot present bail out

I At ’D’ artists, CD mustbe in the car

Question

I Are these algorithms or heuristics?I What’s an algorithm? What’s a heurstic?I What’s the difference?

Chick

I Google query "now he singsnow he sleeps jazz piano"

I Results: Now He Sings, NowHe Sobs by Chick Corea

I Chick = 20 Grammy wins,59 nominations

I He’s kind of a big deal

Music and Programming

I Have a lot in commonI Both written down in a

coded formI A language that is opaque to

the uninitiatedI Both involve conditionals,

repetition, jumpsI Static and dynamic behaviorI The code is not the actionI Surprising action comes from

simple codeI Encoding dynamic as static

is difficult

Bigger Questions

I How did Google know?I How does Google work?I Tell me in a few minutesI Use google search to help you

Next Time

I Mini assignment: Be able to describe how google search worksnext time, worth some big bonus cards

I HW 4: Python lists due FridayI Computers that are ConnectedI Encryption and Compression