Robo – Software Engineering David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. engineering.

Slides:



Advertisements
Similar presentations
Inpainting Assigment – Tips and Hints Outline how to design a good test plan selection of dimensions to test along selection of values for each dimension.
Advertisements

Everyday Algorithms David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. lightning introduction to.
 Randy Ribler – Lynchburg College  PhD from Virginia Tech  Postdoc at University of Illinois (UIUC)  Many years of industry experience building systems.
New Mexico Computer Science For All Decomposition in Computer Programming Maureen Psaila-Dombrowski.
Programming in Jessica By Joaquin Vila Prepared by Shirley White Illinois State University Applied Computer Science Department.
CSC1016 Coursework Clarification Derek Mortimer March 2010.
Robo David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. lightning introduction to the engineering.
Structured Programming structured programming: A technique for organizing and coding computer programs in which a hierarchy of modules is used, each having.
Zero to Java in Internet Time David Davenport Computer Engineering Dept., Bilkent University, Ankara Turkey
Robo David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. lightning introduction to the engineering.
1 Chapter 8 Designing Small Programs. 2 A ‘Procedure’ v A set of instructions which describe the steps to be followed in order to carry out an activity.
Solve an equation by combining like terms
Solve an absolute value equation EXAMPLE 2 SOLUTION Rewrite the absolute value equation as two equations. Then solve each equation separately. x – 3 =
Section 1.3 Prime numbers and fractions
Algorithms IV: Top-Down Design
Software Development Methodologies For the Computer Science IA (2014 syllabus)
Approaches to ---Testing Software Some of us “hope” that our software works as opposed to “ensuring” that our software works? Why? Just foolish Lazy Believe.
Objective The student will be able to: solve inequalities using multiplication and division.
COMP An Introduction to Computer Programming : University of the West Indies COMP6015 An Introduction to Computer Programming Lecture 02.
1 -Defined Functions 1. Goals of this Chapter 2. General Concept 3. Advantages 4. How it works Programmer.
Top-Down Design and Modular Development
Higher Computing Software Development. Software Development Process There are 7 main stages involved in developing a new software program: Analysis Design.
11 A First Game Program Session Session Overview  Begin the creation of an arcade game  Learn software design techniques that apply to any form.
Program Design CMSC 201. Motivation We’ve talked a lot about certain ‘good habits’ we’d like you guys to get in while writing code. There are two main.
The Program Development Cycle
System Development Life Cycle. The Cycle When creating software, hardware, or any kind of product you will go through several stages, we define these.
7-1 Embedded Systems Algorithms and Software Design Lecture Notes 7.
L-1 Lecture 13: Functions and Design © 2000 UW CSE University of Washington Computer Programming I.
Unit 1; Part 2: Using Factors for Fractions and Solving Problems
1 CSC 427: Data Structures and Algorithm Analysis Fall 2008 Dynamic programming  top-down vs. bottom-up  divide & conquer vs. dynamic programming  examples:
CSE 219 Computer Science III Program Design Principles.
Testing. 2 Overview Testing and debugging are important activities in software development. Techniques and tools are introduced. Material borrowed here.
Computational Algorithms David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. lightning introduction.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
I Power Higher Computing Software Development The Software Development Process.
Top-Down Design and Modular Development. The process of developing methods for objects is mostly a process of developing algorithms; each method is an.
Making Decisions uCode: October Review What are the differences between: o BlueJ o Java Computer objects represent some thing or idea in the real.
CMSC 104, Version 8/061L17Top-DownDesign.ppt Top-Down Design Topics Top-Down Design Top-Down Design Examples The Function Concept Reading Sections 3.1.
Top Tips for Success Design Assignment. Top Tips Get the maximum credit for your ideas. Use a range of drawing techniques and annotations to fully explain.
L061 Algorithms, Part 3 of 3 Topics Top down-design Structure charts Reading Sections , 3.3.
CPS120 Introduction to Computer Science Iteration (Looping)
Fraction Frustration Problem Solving Project Carolyn Curran.
04/02/ Procedures Top-down approach / Stepwise Refinement & Sub Procedures.
Efficiently Solving Computer Programming Problems Doncho Minkov Telerik Corporation Technical Trainer.
1 UMBC CMSC 104, Section Fall 2002 Functions, Part 1 of 3 Topics Top-down Design The Function Concept Using Predefined Functions Programmer-Defined.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
Course: Software Engineering – Design I IntroductionSlide Number 1 What is a specification Description of a (computer) system, which:  is precise;  defines.
Computer Science: A Structured Programming Approach Using C1 Objectives ❏ To design and implement programs with more than one function ❏ To be able to.
L-1 Lecture 12: Functions and Design © 2000 UW CSE University of Washington Computer Programming I.
INTRODUCTION TO COMPUTER PROGRAMMING(IT-303) Basics.
CMSC 104, Section 301, Fall Lecture 18, 11/11/02 Functions, Part 1 of 3 Topics Using Predefined Functions Programmer-Defined Functions Using Input.
Pitfalls of your first paper Shu Cai Institute of Computing Technology, Chinese Academy of Sciences
Software Design and Development Development Methodoligies Computing Science.
 Programming methodology: ◦ is a process of developing programs that involves strategically dividing important tasks into functions to be utilized by.
Advanced Higher Computing Science
Effective Group Projects
Game Design For Development
Algorithms IV Top-Down Design.
Robo – Software Engineering
The life cycle.
Chapter 4 Functions Objectives
Topic 1: Problem Solving
Static Class Members March 29, 2006 ComS 207: Programming I (in Java)
Algorithms IV Top-Down Design.
Class 4: Repetition Pretest Posttest Counting Flowchart these!
Unit 1: Principles of Computer Science
Algorithms, Part 3 of 3 Topics Top down-design Structure charts
Top-Down Design & JSP Skill Area Part D
Algorithms, Part 3 of 3 Topics Top down-design Reading
Java Coding 6 David Davenport Computer Eng. Dept.,
Presentation transcript:

Robo – Software Engineering David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. engineering example exercise

House Problem Who has attempted it?

Robo – House Problem (1) Specify pieces & order 250x250x250 50x50 100x Pre-cond. Post-cond. main roof 2 1

Robo – House Problem (2) Then solve pieces… main d walls d movetoleftwin d window d movetorightwin d window d movetodoor d door d movetoendpoint main Pre-cond. Post-cond. walls window door 150x25 movetoleftwin 150 movetorightwin 150x75 movetodoor

Pretty – design! a – rect width b – rect height c – num. of rects d – angle btw rects (b) (a) (d) degrees (c) times rectturn (b) (a) (c) degrees rect 21 pretty( a, b, c, d) x c rectturn( a, b, d) rectturn( a, b, c) d rect( b, a) r( c)

Software Engineering Exercise Form teams, implement, then reflect!

Basic Pieces… Pre-cond. Post-cond. (a) side (2a + 2b) base (a) moveup (a) movedown (a) topleft (2a + b) topright (2a + 2b) movetoleft (a) lefttop (b) (a) toprightbottom (b) (2b) (a) diamond 45

Composite Pieces… d base( b, c) d moveup( a) d slicetop( b, c) d movedown( a) slice ( a, b, c) d movetoleft( a, b) d topleft( b) d holder( 100, a, a) d topright( a, b) slicetop ( a, b) d lefttop( a, b) d diamond( c) d toprightbottom( a, b) holder ( a, b, c) d side( b) x a slice( b, 12, 10) d side( b) bc ( a, b)

Software Engineering Exercise The overall design!

Birthday Cake Design a timesb

SUMMARY Advantages of TDSD The TDSD methodology

Relating Design & Code Big problems -> lots of pieces! Difficult to understand & track relation of pieces to each other & between pieces of design & code Pieces of design numbered 1, 2, 3… Number sub-pieces 1.1, 1.2… & 2.1, 2.2… Methods require naming pieces in design Include piece numbers in code too.

The TDSD Methodology Understand the problem requirements Break into natural pieces, making sure to fully specify them and the order in which they are to be done Check whether these pieces done in this sequence solve the problem If no, revise & recheck until you have a set & order that do correctly solve it! If/when yes… repeat process with any non-trivial sub-pieces and so on until you only have trivial pieces! Finally, implement & test each of them separately, then integrate & test whole!

Tips… Have you FULLY specified ALL the sub-pieces? and exactly how they fit together? Sub-contracting Have you described the sub-problem in sufficient detail that someone would be able to solve it without any additional knowledge of the original problem? Don’t be afraid to revise solutions or even scrap them entirely. It is not always possible to find best solution first time! Don’t start to solve sub-problems until you are absolutely sure that the your proposed solution is correct. Doing so may waste time & effort. Must go from BIG to small -not small to big!! Your solutions must demonstrate you understand top-down design –require at least 2 or 3 levels Robo limited to 20 line methods This must include comments! So ~10 comments + 10 commands (max, remember )

Advantages of TDSD Small pieces easier to solve correctly! Projects easier to manage divides work naturally Projects can be completed quicker easıer to reuse pieces pieces can be done simultaneously Projects done in secrecy workers don’t see big picture Testing & integration is simplified

Summary You should have learnt about & understand the rationale for… Comments White space Meaningfully named methods Method parameters Pre & post conditions Repetition Top down structured design! Happy programmin g...BYE

base 100x (a) Library pieces!