1 / 28

Algorithms

Algorithms. Algorithms are a familiar idea. Our goal is to learn to specify them right so someone or something else does the work. Flowcharts . Flowcharts are a good way to describe an algorithm. Previous Algorithms.

bena
Download Presentation

Algorithms

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Algorithms Algorithms are a familiar idea. Our goal is to learn to specify them right so someone or something else does the work

  2. Flowcharts • Flowcharts are a good way to describe an algorithm

  3. Previous Algorithms • Algorithm: a precise, systematic method to produce a specified result • We have seen algorithms already... • Copy a file from one folder to another • Driving instructions to get to your house • Filling out your IRS tax return Not every process is an algorithm -- debugging

  4. 3 Kinds of Algorithms Today • Editing Skills • fix a broken web page • fix a text with ragged line break • keyboard shortcuts • Conceptual/ problems • making a cup of tea, sorting CDs • Drawing problems • Turtle graphics prep for JavaScript

  5. Broken Webpage mpc01b/ project1 • This web page has broken links:

  6. Use Search and Replace • What would you search for, and what would you replace it with? (several ways) • ? • ? • ? • These are sort of algorithms (actually programs)

  7. Text with Ragged Edges • Often when copied from web/email

  8. MS Word Search/Replace • Has feature to work on special formatting marks

  9. Two Attempts • First Try • Replace ^p with nothing • But then you lose paragraph separators (^p^p) • Second Try • Replace ^p^p with # • Replace ^p with nothing • Replace # with ^p^p

  10. Properties of Algorithms • For an algorithm to be well specified it must have … • Inputs specified • Outputs specified • Definiteness • Effectiveness • Finiteness

  11. Programs vs Algorithms • A program is an algorithm specialized to a particular situation • Algorithm: longStringWithShortStringInIt  placeholder ShortString e placeholder  longStringWithShortStringInIt • Program:  #   e #  

  12. Keyboard Shortcuts • Give the mouse a break! • Home: begin line • End: end line • Shift-End: select to end line • Alt-e t (Ctrl-X): cut selected text • Delete a whole line: • Home, Shift-End, Ctrl-X Program or Algorithm?

  13. Alphabetize CDs 1. Def Artist_of Use Artist_of to refer to the group name 2. Pick Alpha Decide which end of rack is to be start of alphabetic sequence, and call the first slot alpha 3. Pick Beta Call the slot next to alpha, beta 4. Exchange If Artist_of the CD in the alpha slot is later in the alphabet than the Artist_of the CD in the beta slot, interchange the CDs, otherwise continue on 5. More Betas? If a slot follows beta slot, begin calling it the beta slot and go to step 4, otherwise continue on 6. More Alphas? If two slots follow the alpha slot, begin calling the next one the alpha slot and the one following it the beta slot; go to step 4; otherwise stop Spoon Beethoven Hampton Wynette Pearl Jam

  14. Are there 2 slots following alpha? Is there a slot following the beta slot? Is Artist_Of CD in alpha slot later than Artist_Of CD in beta slot Flow Chart Start 4 1 Y Define Artist_Of 2 Select starting end; name it alpha Interchange CDs in alpha & beta N 5 Y Begin calling next slot beta 3 Call beta the slot adjacent to alpha N 6 Y Advance alpha to next slot & slot after it beta N Stop

  15. Demonstration

  16. Abstraction • Abstraction means removing an idea or process form a situation Beta sweep -- while alpha points to a fixed slot, beta sweeps through slots following alpha, interchanging as necessary The beta sweep is a concept removed based on our understanding of the operation of the algorithm   Beta Sweep

  17. Is there a pair of slots following alpha? Flow Chart Start 4 Is Artist_Of CD in alpha slot later than Artist_Of CD in beta slot 1 Y Define Artist_Of 2 Select starting end; name it alpha Interchange CDs in alpha & beta N 5 Is there a slot following the beta slot? Y Begin calling next slot beta 3 Call beta the slot adjacent to alpha N 6 Y Advance alpha to next slot & slot after it beta N Stop

  18. The Beta Sweep • By abstracting we can analyze parts of an algorithm … • The beta sweep has 4 properties: • Exhaustive -- it considers all CDs after alpha • Non-redundant -- no slot pair is checked twice • Progressive -- the alphabetically earliest CD considered so far is always in the alpha slot • Effective -- at completion, the alphabetically earliest CD from alpha to end is in alpha slot These properties apply only to Alphabetize CDs

  19. Alpha Sweep • The alpha sweep... Process of sweeping through all of the CDs (but the last) performing the beta sweep • Exhausitve -- considers all but last CD • Non-redundant -- a slot is alpha only once • Progressive -- when beta sweep completes the alphabetically next CD in alpha • Complete -- when last beta sweep is done the last slot’s CD is later than next to last slot • Effective -- the alpha sweep alphabetizes

  20. Turtle Graphics Algorithms • You drive a turtle that leaves a mark as it moves • Turtle Commands (start at x) • forward(20) • left(90); • forward(20); • right(135); • backward(40); x

  21. For today’s lab, Only use these commands: • forward -- move turtle forward some number of pixels • backward -- move turtle backward • left – turn left some number of degrees • right – turn right • More when we get to Programming

  22. Summary • We figure out most algorithms on our own, abstracting from specific cases • Also we abstract parts of an algorithm or program to understand them • Thinking of how the program works and reasoning about its properties allows us to know why an algorithm works … and then we can let the computer do it

  23. In Sunday’s Paper... • Google Bombing: To sabotage Google’s page-rank system Ask Google for ‘miserable failure’

  24. George W Bush? The most highly ranked Web page for words ‘miserable failure’ is George Bush?

  25. Sample Query

  26. What’s Happening? • Many pages make their anchor text ‘miserable failure’ and make the anchor link to the Bush biography <a href=“http://whitehouse.gov/gwbbio.html”>miserable failure</a> Google trusts anchor text in the page rank calculation

More Related