Presentation is loading. Please wait.

Presentation is loading. Please wait.

Robo David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. lightning introduction to the engineering.

Similar presentations


Presentation on theme: "Robo David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. lightning introduction to the engineering."— Presentation transcript:

1 Robo David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction to the engineering of software

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. 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 Robo’s world is infinite flat white surface Your objective: to have Robo produce given 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 can’t 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 doesn’t understand command A program is a sequence of commands (instructions) Multiple correct solutions Simple isn’t it?

6 Robo - problem What is this? No one can IMMEDIATELY say what it is! How can we find out? TRACE it put yourself in position of Robo and follow the commands r(180) f(50) l(90) f(100) l(90) f(100) l(90) f(100) l(100) f(50) r(90) f(150) l(90) f(70) l(120) f(140) r(120) f(140) r(120) f(70)

7 Robo - solution After tracing... program has Logical Errors & needs to be corrected... DEBUG the program BUGS but it should look like this It looks like this!

8 Robo - TRACE & DEBUG Debug it... r(180) f(50) l(90) f(100) l(90) f(100) l(90) f(100) l(100) f(50) r(90) f(150) l(90) f(70) l(120) f(140) r(120) f(140) r(120) f(70) & check by tracing again! l(90)r(120) l(90) To correct... add, remove & change commands

9 Homework! Try one of these yourself StarComputer HouseRobot TreeCube Important your program should be correct i.e. it should be right-first-time Robo is asked to do (run/execute) it Motto: Design not experiment.

10 Reflections Your observations…? There must be an easier way to earn a living! How can we make our lives as programmers easier? Simple to follow Difficult to understand Long & therefore complex to do Difficult to debug and/or change Often use same/similar sets of commands Ok, now Robo programmers earn living by writing them but only if right-first-time! & jobs require HUGE pictures

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) ? see some structure see no structure Program to draw a Wishing Well finally, draw roof then draw pole First draw base So add notes Problem: notes would cause syntax errors! Solution: modify Robo to ignore such notes.

13 Comments Are natural language notes written in the program Ignored by Robo (i.e. no syntax error) // any_natural_language_text syntax: // 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) 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, … // any_natural_language_text syntax: // Draw a house // Author: David // Date: Sept. 2002 : // draw walls : example: : // draw left window : // draw door : Including information that explains how program works makes it easier to fix/change Tip: if changes are made, add comments to track who did what, when & why!

15 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. Aids to Reading Can you read this comfortably? theinheritanceofthelabourmovementthebritishlabourmovemen tdrawsitsinspirationfromahistorythatgoesbackovermanycentur iesthismovementarosedirectlyfromthetwinstrugglesbythebritis hpeopletocontrolparliamentthroughthepopularvoteandtogaint herighttoorganisefreetradeunionsthebattleagainstthecombinat ionactsandsimilarlegislationwhichmadetradeunionismillegalwe nthandinhandwiththecampaignsforworkingmenandwomentobe representedinparliamentbutevenbeforethesehistoricstruggles whichfirstsawthelightofdayintheindustrialrevolutiontheoriginso fsocialismcanbetracedbackasfarasthetimeofchristhimselfandev entotheoldtestamenttonybenn1979

16 Blank Space Help visualisation & reading Blank lines, indentation & spaces // 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) First see 3 parts then comments then code Combine Comments & Blank space Answers without tracing! Aid debugging & maintenance What does this code do? // 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) Extend Robo to avoid syntax errors!

17 Methods Are named blocks of commands Short, so easier to understand Facilitates reuse, testing & debugging d method_name syntax: Defining method: // Draw … // Author: … // Date: … : // draw … : method_name Using method: Example: // Draw pole f(150) l(90) pole d pole

18 Wishing Well using methods // draw roof of wwell // Author: David // Date: Sept. 2002 f(70) l(120) f(140) r(120) f(140) r(120) f(70) roof // draw base of wwell // Author: David // Date: Sept. 2002 l(90) f(50) l(90) f(100) l(90) f(100) l(90) f(100) l(100) f(50) r(90) base // Wishing Well // Author: David // Date: Sept. 2002 // draw base d base // draw pole f(150) l(90) // draw roof d roof wwell

19 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!


Download ppt "Robo David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. lightning introduction to the engineering."

Similar presentations


Ads by Google