91074 algorithm languages and user interfaces
This presentation is the property of its rightful owner.
Sponsored Links
1 / 58

91074 – Algorithm Languages and User Interfaces PowerPoint PPT Presentation


  • 90 Views
  • Uploaded on
  • Presentation posted in: General

91074 – Algorithm Languages and User Interfaces. Sorting: Bubble Sort, Selection Sort, Insertion Sort, Quick Sort. Comparisons, Cost of an Algorithm. Contents. Sorting Algorithms Informal Instructions, Algorithms and Programs High and Low Level Languages Translating Between Languages

Download Presentation

91074 – Algorithm Languages and User Interfaces

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


91074 algorithm languages and user interfaces

91074 – Algorithm Languages and User Interfaces

Sorting: Bubble Sort, Selection Sort, Insertion Sort, Quick Sort. Comparisons, Cost of an Algorithm.


Contents

Contents

  • Sorting Algorithms

  • Informal Instructions, Algorithms and Programs

  • High and Low Level Languages

  • Translating Between Languages

  • User Interfaces


Sorting algorithms

Sorting Algorithms

Sorting: Bubble Sort, Selection Sort, Insertion Sort, Quick Sort. Comparisons, Cost of an Algorithm.


Activity

Activity

  • In groups, sort a small number of cards numerically

  • What was your algorithm/strategy? – tell your group.

  • New Rules: only allowed to look at two cards at a time, only allowed to swap two, no other moves.

  • What was your algorithm/strategy?


Notes

Notes

Sorting Algorithms: There are lots of ways computers sort lists. In this course we will look at Bubble sort, Selection Sort, Insertion Sort and Quick Sort.

Cost of an Algorithm: For sorting giant lists (like a phone book) on a computer, speed is important. We call this the ‘cost of the algorithm’ and we measure it by how many comparisons the algorithm has to make for a set list size.


Bubble sort instructions

Bubble Sort Instructions

  • Compare the first two

  • If out of order swap them

  • Look at the next two,

  • Repeat Steps 2 and 3 until the (new) end of the list.

  • Repeat steps 1 – 4 until the list is sorted

    Called Bubble Sort because like bubbles in a glass, the next one makes it way to the top


Bubble sort cost

Bubble Sort Cost

E4E: Formula?


Example bubble sort video

Example Bubble Sort Video

Bubble Sort and Cost Video (sorting by height)

youtube.com/watch?v=cdsfjU8qUss


Selection sort

Selection Sort

  • Compare the first two and find the biggest

  • Then compare the biggest with the next one

  • Remember which is the (new) biggest

  • Repeat steps 2 and 3 until the end

  • Swap the biggest one with the (new) last one

  • Repeat steps 1 to 5 until the list sorted

    Called Selection, because you are selecting the biggest one and swapping it to the end.


Selection sort cost

Selection Sort Cost

E4E: Formula?


Insertion sort

Insertion Sort

  • Compare the first two, and put them in order in a new list

  • Insert the next item into the right place in the new list by comparing it with each item until you find it’s place.

  • Repeat step 2 until the new list is sorted, and the old list is empty.

    Called Insertion, because you’re inserting into the correct position in a new list.


Insertion sort cost

Insertion Sort Cost

E4E: Formula?


Quick sort pivot

Quick Sort (pivot)

  • Select the next (first) item and make it a pivot

  • Compare each item with the pivot, creating a list of smaller items and a list of bigger items.

  • Repeat steps 1 and 2 for each sublist, until the list is sorted

    Is one of a group of “divide and conquer” sorting algorithms

    Called Pivot, because you separate the list into smaller lists based on a pivot.

‘Pivot’, Friends on Youtube


Quick sort cost

Quick Sort Cost

E4E4E: Formula?


Some comparisons

Some Comparisons

Which one is fastest, which is second fastest?Sorting lists of 20

Bubble Selection InsertionQuick

Click to see them race


Some comparisons1

Some Comparisons

Which one is fastest, which is second fastest?Sorting lists of 20

Bubble Selection InsertionQuick


Some comparisons2

Some Comparisons

Bubble Sort vs Quick Sort (Youtube) Lists of 30 coloured blocks, Comparing swaps, not Comparisons

  • Which has the least comparisons?

  • Which has the least swaps?

  • Is comparisons or swaps the best way to measure “Cost of Algorithm?”


Comparing sorting comparisons

Comparing Sorting Comparisons

Watch Pivot Video (youtube)


Practice task

Practice Task

Part A) Pick a sort, and six items. Step by step talk through sorting six items. E.g Carrot, Apple, Grape, Banana, Eggplant, Feijoa, - compare Carrot and Apple. (Out of order, so swap)

  • Compare Carrot and Grape (in order)

  • Compare Grape and …

    Part B) Do an insertion sort for 5, 6, 7 and 8 items, recording the cost.

    Part C) Explain how you calculated the cost and say why that is the cost.


Links

Links

Getting sort data quickly

http://www.mundayweb.com/progs/applets/saas/Or search “MundaySaas”

Running your own races

http://www.sorting-algorithms.com/Has eight common sorts


Informal instructions algorithms and programs

Informal Instructions Algorithms and Programs

Their Characteristics and Roles


Algorithm notes

Algorithm Notes

  • An algorithm is a precise unambiguous specification of how to accomplish some computational task in a finite number of well-defined steps.

  • An algorithm is distinct from a computer program.

  • An algorithmhas a cost (the number of steps it will perform) for a task.

  • Different algorithms for the same task may have different costs.


Informal instructions algorithms and programs1

Informal Instructions, Algorithms and Programs

Youtube Video (Eating a Chocolate)

youtube.com/watch?v=cdsfjU8qUss


Friendship algorithm

Friendship Algorithm


Characteristics of informal instructions algorithms programs

Characteristics of Informal Instructions, Algorithms, & Programs

Informal Instructions: Vague, Imprecise, easy to read/create, interpreted many ways

May have: gaps, bad spelling, incomplete

Form: oral or written,

Algorithms: Precise, single task, has inputs/outputs, made up of steps, has a cost,

Form: code, flow chart, text

Programs: Many tasks, made up of algorithms, single file, precise, self running, many tasksForm: file


When are they used roles informal instructions algorithms programs

When are they used (Roles)Informal Instructions, Algorithms, & Programs

Informal Instructions: Humans, communication, ease,

Algorithms: code, computer, part /functions in prog,

Programs: a variety of functions, self contained


Programming concepts

Programming Concepts

Informal Instructions:

Algorithms:

Programs:


High and low level languages

High and Low Level Languages

Characteristics


High and low level languages video

High and Low Level Languages Video

Youtube Video (Eating a Chocolate)

youtube.com/watch?v=cdsfjU8qUss


Low level languages machine code 1gl

Low Level Languages Machine Code (1GL)

  • 1st Generation Language (1GL)

  • Numbering system called “Binary”

  • Also called “Machine Code”

  • The only way to Program computers in the 1960s and 70s

  • Old Explanation of Binary (before 3GL)


Low level languages machine code 1gl1

Low Level Languages Machine Code (1GL)

Binary Game


Low level languages machine code 1gl2

Low Level Languages Machine Code (1GL)

Flight of the Conchords

  • Binary Solo

    Big Bang Theory

  • Chuck Norris of Numbers

  • Palindrome = Reverse , 1001001  1001001


Low level languages machine code 1gl3

Low Level Languages Machine Code (1GL)

Characteristics

  • Lowest Level Language

  • Very Hard for humans to understand

  • Very slow to create code

  • No abstraction: Human knows exactly what’s going on

  • Directly interacting with hardware

  • Doesn’t need translating or compiling

  • Native Language of Computer


Low level languages assembly 2gl

Low Level Languages Assembly (2GL)


Low level languages assembly 2gl1

Low Level Languages Assembly (2GL)

  • 2nd Generation Language (2GL)

  • One step up from Binary/Machine code

  • Has functions like Move (MOV), Compare (CMP), Increment (INC), Jump(JMP)

  • Uses Hexadecimal (like web colours #ffffff )

  • Has no Compound functions like “If (this, then do this)” or “Loop (3 times)”

  • At the end it is “Assembled” into Binary

  • Used when you need exact control over code (e.g very small microchip, efficient code needed)


Low level languages assembly 2gl2

Low Level Languages Assembly (2GL)

Assembler Example

Hello World

Ignore music and second half

“The main problem with “assembler” jokes is, they are difficult to read”— scapegrace


Low level languages assembly 2gl3

Low Level Languages Assembly (2GL)

Characteristics

  • Second Lowest Level Language

  • Hard for humans to understand

  • Slow to create code

  • Little abstraction: Human knows almost exactly what’s going on

  • Needs Assembling into Binary / Machine Code / 1GL translating or


High level languages 3gl

High Level Languages (3GL)

Common Programming Languages

Like Basic, C, Java, C# and Scratch


High level languages 3gl1

High Level Languages (3GL)

Features

  • Easier to Read and Write (and maintain)

  • Portable across different CPU families

  • Written as Text

  • Many High Level Languages, each with their own Syntax


High level languages 3gl2

High Level Languages (3GL)

Brief History of 3GLs

  • 1957 Fortran (punch cards)

  • 1964 Basic  MS Visual Basic

  • 1972 C (text colouring)  C++

  • 1995 Java (Object Oriented)

  • 2001 C# (OO, components)

  • 2007 Scratch (Drag n Drop)


High level languages 3gl3

High Level Languages (3GL)

Characteristics

  • High Level Language

  • Lots of Abstraction into easily readable code

  • Easy for humans to understand

  • Quick to create code

  • Needs Translating into Machine code


Highlevel languages 4gl

HighLevel Languages (4GL)

Lots of Abstraction


High level languages 4gl

High Level Languages (4GL)

Features

  • Flow charts and modules

  • 4GL creates the code for you

  • Often for a specific task e.g Managing a tax database


High level languages 4gl1

High Level Languages (4GL)

Characteristics

  • Examples: Ruby on Rails, Oracle, Powerbuilder

  • High Level Language

  • Lots of Abstraction sometimes not even looking at code

  • Very Quick to create code

  • Needs Translating into Machine code

    “All 4GLs are designed to reduce programming effort, the time it takes to develop software, and the cost of software development. They are not always successful in this task, sometimes resulting in inelegant and unmaintainable code.” (wikipedia)


Comparison of language levels

Comparison of Language Levels

Challenge Question


Low and high levels

Low and High Levels

Invention of High Level Languages (3GL)

High Level and Translators

  • 1983 Educational Cartoon

BASIC

Java

C


Translating between high and low level languages

Translating between High and Low Level Languages

Compilers, and Interpreters


Translating compiling video

Translating (Compiling) Video

Youtube Video (Eating a Chocolate)

youtube.com/watch?v=cdsfjU8qUss


Translating between levels

Translating between Levels

Why do we need to Translate high level languages into low ones?

  • Because Binary is the only language the computer understands

  • Creates precise code rather than abstract

  • So code is portable


Translating between levels1

Translating between Levels

Interpreters and Compilerson Planet Gooble De Gook

  • Made in 1983

    Two types of Translator

  • CompilersDo the whole program at once at the endCan save program down as an .exe file

  • InterpretersTranslate the whole program one line at a timeCan cause errors or refuse to run


User interfaces

User Interfaces

Heuristics


User interface video

User Interface Video

Youtube Video (Box Crusher)

youtube.com/watch?v=cdsfjU8qUss


Mr bell s new home nightmare

Mr Bell’s New Home Nightmare

Accidentally open Garage door


Mr bell s new home nightmare1

Mr Bell’s New Home Nightmare

Door bell is locked behind front door


User interfaces1

User Interfaces

We measure the usability of a user interface through a series of tests called “Heuristics”.

What is a User Interface?/ What is a User Interface’s role?

  • Communication between user and computer/machine

  • Makes the program do what user wants it to

  • Inputs like, Button, key, wheel, mouse, handle, Switch,

  • Outputs like, lights, sound, speakers, visual, screen, heat, display

  • Manages/ Controls interactions


Heuristics tests for user interfaces

Heuristics (tests for User Interfaces)

  • Visibility of system status

  • Match between system and the real world

  • User control and freedom

  • Consistency and standards

  • Error prevention

  • Recognition rather than recall

  • Flexibility and efficiency of use

  • Aesthetic and minimalist design

  • Help users recognize, diagnose, and recover from errors

  • Help and documentation

    Look these up online – JakobNeilsenmade them up.


User interfaces2

User Interfaces

50 different things that have a user interface

Playstation, Door, Computer, Toaster, Phone, Drill, Bike, Car, Clock, Gun, Printer, Office Chair, Distortion pedal, Ipod, TV, Stereo, Projector, Websites, lightbulb, Scissors, Pen, Power Plug, Window, Air Conditioning, Curtain, Fridge, Stove, Watch, Jacket zip, car jack, shoe, toilet, shower, cap, tap, tack, cat door, badge, earring, glasses,

Potato peeler, Cheese Grater, knitting needles, sewing machine, watter bottle, knife, vhs, can opener, Milk bottle, Towel, chop sticks, light, calculator, filing cabinet, Microwave, elevator,

.


User interfaces3

User Interfaces

Broadly Different Example User Interfaces

- Microwave, Computer, TV, Door, Switch, Playstation, Scissors, Pen, Tissues, Toothpaste, phone, ipod, draw, Lever, Shoes, stereo, socks, pants, plug, pin, clock, projector, printer, Light bulb, toilet, sink, tap, shower, bath, car, shovel, rifle, wrench, digger, back pack, fork, remote control car, shopping trolley, DVD, book, pram, finger nail clippers, curtains, some geeky thing, mouse, bike pump, Hospital beds, jet pack, balloon, envelope, aeroplane, boat, rubbish bin, umbrella, chocolate bar (in wrapper) fishing rod, pizza box, kayak, kite, drink bottle, map, bow and arrow, charger, calculator, website.


  • Login