Robo - PowerPoint PPT Presentation

1 / 26
About This Presentation
Title:

Robo

Description:

You are free to use this presentation in your classes and to make any ... All I ask is an email saying where and when it is/was used. ... – PowerPoint PPT presentation

Number of Views:40
Avg rating:3.0/5.0
Slides: 27
Provided by: davidda3
Category:
Tags: free | older | robo | tracing | women

less

Transcript and Presenter's Notes

Title: Robo


1
Robo
...a lightning introduction to the engineering of
software
  • David Davenport
  • Computer Eng. Dept.,
  • Bilkent UniversityAnkara - Turkey.
  • email david_at_bilkent.edu.tr

2
IMPORTANT
  • Students
  • This presentation is designed to be used in class
    as part of a guided discovery sequence. It is not
    self-explanatory! Please use it only for revision
    purposes after having taken the class. Simply
    flicking through the slides will teach you
    nothing. You must be actively thinking, doing and
    questioning to learn!
  • Instructors
  • You are free to use this presentation in your
    classes and to make any modifications to it that
    you wish. All I ask is an email saying where and
    when it is/was used. I would also appreciate any
    suggestions you may have for improving it.

thank you, David.
3
Robo
  • Robo is a little robot with a pen
  • you command him to move around
  • he leaves a trail with the pen as he moves
  • Robos world is infinite flat white surface
  • Your objective
  • to have Robo producegiven pattern/picture

4
Robo
  • Commands
  • f(x) - move forward x units
  • r(x) - turn right x degrees
  • l(x) - turn left x degrees
  • p - pick up/put down the pen (switch drawing
    mode on/off)
  • Initial condition
  • middle of surface
  • facing north
  • in drawing mode
  • One command at a time please! (i.e. only one
    per line)

Sorry, but I cant do any maths or even fractions!
5
Robo - examples
  • Have Robo draw
  • a straight line 100 units long
  • a horizontal line 150 units long
  • a 100 by 200 unit rectangle
  • an equilateral triangle with 150 units sides
  • a dashed line, 50 unit spaces, 100 unit dashes
  • Points to note
  • Robo only understands f,r,l p (not any natural
    language)
  • Syntax error when Robo doesnt understand command
  • A program is a sequence of commands
    (instructions)
  • Multiple correct solutions

Simple isnt it?
6
Robo - problem
  • What is this?

TRACE it put yourself in position of Robo and
follow the commands
No one can IMMEDIATELY say what it is! How can we
find out?
7
Robo - solution
  • After tracing...

BUGS
program has Logical Errors needs to be
corrected...
DEBUG the program
8
Robo - TRACE DEBUG
  • Debug it...

To correct... add, remove change
commands
check by tracing again!
9
Homework!
  • Try one of these yourself
  • Star Computer
  • House Robot
  • Tree Cube
  • Important
  • your program should be correcti.e. it should be
    right-first-time Robo is asked to do
    (run/execute) it
  • Motto Design not experiment.

10
Reflections
  • Ok, now Robo programmers
  • earn living by writing them
  • but only if right-first-time!

There must be an easier way to earn a living!
  • jobs require HUGE pictures

How can we make our lives as programmers easier?
  • Your observations?

Simple to follow Difficult to understand Long
therefore complex to do Difficult to debug and/or
change Often use same/similar sets of commands
11
The easy life...
  • Ideas to make life easier
  • comments
  • blank space
  • methods
  • parameters
  • repetition
  • Top down structured design

12
Root cause of difficulties
  • Lack of mapping btw problem solution

l(90) f(50) l(90) f(100) l(90) f(100) l(90) f(100)
l(90) f(50) r(90) f(150) l(90) f(70) r(120) f(140
) r(120) f(140) r(120) f(70)
Problem notes would cause syntax
errors! Solution modify Robo to ignore such
notes.
see some structure
So add notes
see no structure
13
Comments
// Wishing Well // Author David // Date Sept.
2002 // draw base l(90) f(50) l(90) f(100) l(90) f
(100) l(90) f(100) l(90) f(50) r(90) // draw
pole f(150) l(90) // draw roof f(70) r(120) f(140)
r(120) f(140) r(120) f(70)
  • Are natural language notes written in the program
  • Ignored by Robo (i.e. no syntax error)

// any_natural_language_text
syntax
  • Use comments
  • to say what each section does,
  • to tell about the program as a whole

Every program should have a Header,a block of
comments at the top that detail what, where, when
by whom.
14
Comments
  • Are natural language notes in program
  • Ignored by Robo (i.e. no syntax error)
  • Use for documentation purposes
  • who, what, when, how,

Including information that explains how program
works makes it easier to fix/change
// any_natural_language_text
syntax
example
// Draw a house // Author David // Date Sept.
2002 // draw walls
// draw left window // draw door
Tip if changes are made, add comments to track
who did what, when why!
15
Aids to Reading
  • Can you read this comfortably?

The Inheritance of the Labour Movement The
British Labour Movement draws its inspiration
from a history that goes back over many
centuries. This movement arose directly from the
twin struggles by the British people to control
Parliament through the popular vote and to gain
the right to organise free trade unions. The
battle against the Combination Acts and similar
legislation which made trade unionism illegal
went hand in hand with the campaigns for working
men and women to be represented in Parliament.
But even before these historic struggles, which
first saw the light of day in the industrial
revolution, the origins of socialism can be
traced back as far as the time of Christ himself
and even to the Old Testament. Tony Benn, 1979.
theinheritanceofthelabourmovementthebritishlabourm
ovementdrawsitsinspirationfromahistorythatgoesback
overmanycenturiesthismovementarosedirectlyfromthet
winstrugglesbythebritishpeopletocontrolparliamentt
hroughthepopularvoteandtogaintherighttoorganisefre
etradeunionsthebattleagainstthecombinationactsands
imilarlegislationwhichmadetradeunionismillegalwent
handinhandwiththecampaignsforworkingmenandwomentob
erepresentedinparliamentbutevenbeforethesehistoric
struggleswhichfirstsawthelightofdayintheindustrial
revolutiontheoriginsofsocialismcanbetracedbackasfa
rasthetimeofchristhimselfandeventotheoldtestamentt
onybenn1979
16
Blank Space
// Wishing Well // Author David // Date Sept.
2002 // draw base l(90) f(50) l(90) f(100) l(90)
f(100) l(90) f(100) l(90) f(50) r(90) // draw
pole f(150) l(90) // draw roof f(70) r(120) f(140
) r(120) f(140) r(120) f(70)
// Wishing Well // Author David // Date Sept.
2002 // draw base l(90) f(50) l(90) //
left f(100) l(90) // bottom f(100)
l(90) // right f(100) l(90) f(50) r(90) //
draw pole f(150) l(90) // draw roof f( 70) r(
120) f( 140) r( 120) f( 140) r( 120) f( 70)
  • Help visualisation reading
  • Blank lines, indentation spaces

First see 3 parts then comments then code
  • What does this code do?

Extend Robo to avoid syntax errors!
  • Combine Comments Blank space
  • Answers without tracing!
  • Aid debugging maintenance

17
Methods
  • Are named blocks of commands
  • Short, so easier to understand
  • Facilitates reuse, testing debugging

18
Wishing Well using methods
19
again?
  • Changed method names
  • What does it do now? (remember comments
    are ignored)

it looks like a wishing well, but
MORAL use meaningful names!
20
Some demo programs
  • What is this
  • It should look like this
  • Can you debug it?
  • What is this?
  • Can you add a door knob or curtains?

Note These demos are located in a separate
subdirectory and need java to run! Switch to an
MSDOS window, change to the demos directory,
(cross fingers) and run manually by typingjava
TryRobo filename
21
Generalise methods
  • Looking at specific method instances
  • notice repetition of similar code
  • so, abstract/generalise through parameters

Can you write equtri?
22
Using general methods
  • Example, in place of draw door d door
  • Need to say draw rectangle with width50
    height150
  • Use notation d rect( 50, 150)

Actual parameter values
23
Rewriting the house program
  • Using general rectangle method
  • in place of draw door d door
  • say draw rectangle with width50
    height150i.e. d rect( 50, 150)
  • in place of draw walls d walls
  • say draw rectangle with height250
    width250i.e. d rect( 250, 250)

Now need comments!
24
Restricted parameter names!
  • Robo allows only names a, b, c, d
  • translate rect method for Robo

Robo methods always have these four formal
parameters, even if they are not used. For this
reason, they are not explicitly written each time.
Now need to include comments to say what a, b, c
d represent // Params a width, b - height
25
Methods are independent!
  • Methods can call other methods
  • only connection is parameter list
  • matched one-by-one in order, not by name!

Must understand as, bs, etc. are
differentin each method.
26
Repetition
  • Automatically repeat method

x number_of_times method_name (
parameter_list )
syntax
Try doing square rewriting equtri
27
Summary
  • You should have learnt about understand the
    rationale for
  • Comments
  • White space
  • Meaningfully named methods
  • Method parameters
  • Repetition
  • Coming next
  • Top-down structured design!
Write a Comment
User Comments (0)
About PowerShow.com