The non-trivial Java example Mouse in a Maze

Size: px
Start display at page:

Download "The non-trivial Java example Mouse in a Maze"

Transcription

1 The non-trivial Java example Mouse in a Maze A simple software development process from specification, to design, implementation, and test DAAD project Joint Course on OOP using Java Humboldt University Berlin, University of Novi Sad, Polytehnica University of Timisoara, University of Plovdiv, University of Belgrade Author: Klaus Bothe Version: Sep. 29, 2004 Source Based on an idea from S.N. Kamin, M.D. Mickunas, E.M. Reingold: An introduction to computer science Using Java, McGraw-Hill, 1998 DAAD project Joint Course on OOP using Java 2 1

2 Points of this Java sample program For the lecturer only Introduce a non- trivial Java program Illustrate a methodology how to present larger Java programs in lectures Using Java API Demonstrate the importance of software engineering principles for ordinary Java program development Interactive style of the lecture improves learning effects DAAD project Joint Course on OOP using Java 3 Course materials For the lecturer only Lecture slides: about 90 slides takes 3 x 2 lecture hours at HU (interactive style) Java sources Classes Mouse Maze MouseMaze Easel SoftFrame MazeTest LOC Sum: 378 Assignments: modify, extend the program implement as an applet (grafical interface) DAAD project Joint Course on OOP using Java

3 Didactical mistake in presenting complex Java programs in lectures The lecturer tries to explain each technical detail of program code non-understandable in a lecture boring For the lecturer only The lecturer starts with a Java program too early details of requirements specification still open design / class structure not well discussed Finding a proper class structure may be more challenging then implementing the Java program code. DAAD project Joint Course on OOP using Java 5 Didactical principles in presenting complex Java programs in lectures For the lecturer only Follow the software engineering process: requirements analysis, design, implementation & test Involve students into this process (interactivity) Only outline the main ideas of the implementation Assignments support detailed understanding the code DAAD project Joint Course on OOP using Java 6 3

4 Requirements analysis: Mouse in a Maze Task: Develop a program, that simulates the movement of a mouse in a maze (labyrinth) from an entry to an exit. What to do? Next steps? DAAD project Joint Course on OOP using Java 7 Facts concerning software development phases Most errors of software systems result from misunderstanding the problem to be solved. Software development consists only of a small part of programming: Requirements analysis: 20 % Design: 15 % Implementation: 20 % Test: 45 % DAAD project Joint Course on OOP using Java 8 4

5 Learning goals This example should illustrate the importance of a complete and correct requirements specification for the project success. Before implementing, the next step is the design of the application: Which components belong to the program architecture? Starting with the implementation too early may lead to project s failure. DAAD project Joint Course on OOP using Java 9 Development process of Mouse in a Maze Requirements analysis Design Implementation and test DAAD project Joint Course on OOP using Java 10 5

6 Requirements analysis: Mouse in a Maze Task: Develop a program, that simulates the movement of a mouse in a maze (labyrinth) from an entry to an exit. Open questions? DAAD project Joint Course on OOP using Java 11 Open questions How does a maze look like? What is a mouse able to do (e.g. which kinds of movements)? What is the initial state of the mouse? What, if there is no way from entry to exit? In which way should the solution be presented? DAAD project Joint Course on OOP using Java 12 6

7 How does a maze look like? DAAD project Joint Course on OOP using Java 13 Examples of our kind of mazes DAAD project Joint Course on OOP using Java 14 7

8 Requirements specification (1) Develop a program, that simulates the movement of a mouse in a maze (labyrinth) from an entry to an exit. 1. The Maze A maze is a collection of quadratic rooms arranged in a rectangle. Two adjacent rooms are separated by a wall or opening (gap). The maze is surrounded by a wall which is open at two locations (entry and exit). The size of the maze (length and height) is variable. Examples: DAAD project Joint Course on OOP using Java 15 How does a mouse look like? DAAD project Joint Course on OOP using Java 16 8

9 Our mouse DAAD project Joint Course on OOP using Java 17 Mouse confronted with different mazes This will become hard No problem exit entry exit entry DAAD project Joint Course on OOP using Java 18 9

10 Which kinds of movements is our mouse able to do? step forward turn left turn right DAAD project Joint Course on OOP using Java 19 Possible movements of the mouse May move one step forward into the adjacent room in the line of vision exit entry May turn left or right by 90 degrees DAAD project Joint Course on OOP using Java 20 10

11 Two implemented solutions entry exit What may be suspicious with these solutions? Proper solution for the wrong problem. In each case: the shortest path has been found. Requirements specification is incomplete entry exit DAAD project Joint Course on OOP using Java 21 Requirements specification is incomplete entry exit entry exit In each case: the shortest path has been found Only possible if the mouse knows the whole maze (view from above) This is not the characteristic of maze problems. DAAD project Joint Course on OOP using Java 22 11

12 Perceptions of the mouse Line of vision only straight forward May see only inside of one room (not into the adjacent room) exit entry May decide: Am I inside or outside the maze? May decide: Do I face a wall or an opening (gap)? DAAD project Joint Course on OOP using Java 23 Field of view of a mouse DAAD project Joint Course on OOP using Java 24 12

13 The problem may be huge DAAD project Joint Course on OOP using Java 25 Requirements Specification (2) 2. The Mouse: The mouse has no general overview of the maze. a) Themousemaymovein thefollowingway: turn left, turn right (by 90 degrees), move forward into the adjacent room. b) The mouse is located either in a fixed room inside the maze or just next to the entry or exit. In addition, it has a fixed line of vision. c) The mouse can see only in the line of vision. It can decide wether it faces a wall or not. DAAD project Joint Course on OOP using Java 26 13

14 Requirements specification: open problems? Description of the initial state of the mouse Description of the final state of the mouse Description of the task Special cases User interface DAAD project Joint Course on OOP using Java 27 Requirements Specification (3) 3. Desription of the initial state of the mouse: The mouse is initially placed in front of the entrance to the maze (the next step forward takes her to the maze). Example: exit entry DAAD project Joint Course on OOP using Java 28 14

15 Requirements Specification (4) 4. Desription of the final state of the mouse and of the task: We a looking for a sequence of movements (turn left, turn right, step forward) leading the mouse from the entry to the exit. Example: exit entry DAAD project Joint Course on OOP using Java 29 Requirements Specification (5) 5. Special case: If there is no exit or if there is no way from the entry to the exit, then the mouse should leave the maze through the entry. Example: entry DAAD project Joint Course on OOP using Java 30 15

16 Requirements Specification (6) 6. User interface a) Textual output of the solution: Example: step forward, turn right, b) Graphical user interface: The sequence of movements will be displayed with the help of a graphical applet, i.e. the steps of the mouse are visualized. The user can interactively trigger the next step. DAAD project Joint Course on OOP using Java 31 Solvability of the problem Is there an algorithm at all that solves the problem for arbitrary mazes taking into account the characteristic properties of the mouse? DAAD project Joint Course on OOP using Java 32 16

17 Algorithm: basic principle Principle: Have the mouse walk with its right side on the wall of the maze. Still not an algorithm An algorithm has to determine the sequence of mouse movements. DAAD project Joint Course on OOP using Java 33 Algorithm: as a pseudo code program only one step: if mouse is still inside the maze: turn right; if (facing a wall?): then turn left and test if (facing a wall?); if (facing a wall?) then turn left and test... else step forward DAAD project Joint Course on OOP using Java 34 17

18 Strong pseudo code: one step IF (NOT outside the maze?) BEGIN /*do next step*/ turn right; WHILE (facing a wall?) DO turn left; ENDWHILE step forward; END Impossible: DAAD project Joint Course on OOP using Java 35 Strong pseudo code: whole algorithm step forward; /* enter the maze */ WHILE(NOT outside the maze?) BEGIN /*do next step*/ turn right; WHILE (facing a wall?) DO turn left; ENDWHILE step forward; END ENDWHILE Think about: The algorithm fulfills the principle. DAAD project Joint Course on OOP using Java 36 18

19 Mouse movements according to the algorithm: first example exit entry DAAD project Joint Course on OOP using Java 37 Mouse movements according to the algorithm in detail: first example exit entry DAAD project Joint Course on OOP using Java 38 19

20 Mouse movements according to the algorithm: : second example exit entry DAAD project Joint Course on OOP using Java 39 Mouse movements according to the algorithm in detail: second example exit entry DAAD project Joint Course on OOP using Java 40 20

21 Mouse movements: graphical and textual output entry exit step forward turn right step forward turn right turn left turn left step forward turn right turn left turn left step forward turn right step forward DAAD project Joint Course on OOP using Java 41 Textual output of the solution xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x x x x x x x x x x x x x x x x x x x x x x x x x x xxxxxxxxxxxxxx x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx step forward turn to the right step forward turn to the right turn to the left turn to the left turn to the left step forward DAAD project Joint Course on OOP using Java 42 21

22 Mouse in a maze only a nice game? Sample of finding algorithms for robots dealing with different tasks: Playing soccer Robot moving on the moon Rescue robots DAAD project Joint Course on OOP using Java 43 Development process of Mouse in a Maze Requirements analysis Design Implementation and test DAAD project Joint Course on OOP using Java 44 22

23 Task Requirements specification Next step? Start with programming? If so, with which part/component???? DAAD project Joint Course on OOP using Java 45 Design: develop the software architecture SW architecture description languages: UML Our task: define an object-oriented architecture Main problem: How to find classes? DAAD project Joint Course on OOP using Java 46 23

24 Software development: Phases and results Analysis & Definition Requirements specification Design Software architecture Implementation Program Test Test cases DAAD project Joint Course on OOP using Java 47 As a matter of fact Finding a proper class structure may be more challenging then implementing the Java program code. DAAD project Joint Course on OOP using Java 48 24

25 Software architecture Structure of the software: Which components exist? Which relations are between them? Stack: Push(e) Pop() Top() DAAD project Joint Course on OOP using Java 49 Architecture specification languages Graphical languages for the specification of software architectures Industry standard: UML Unified Modelling Language Now: examples of one graphical element of UML: class diagram What programming languages mean to the implementation phase, are architecture specification languages to the design phase. DAAD project Joint Course on OOP using Java 50 25

26 Name UML classes: the structure Time Attributes: state hidden - hour : int - minute : int Time (hour: int, minute : int) addminutes (Min : int) printtime ( ) Operations: behaviour DAAD project Joint Course on OOP using Java 51 UML classes as interfaces Time - hour : int - minute : int UML classes provide an interface: Which information is visible from outside? Time (hour: int, minute : int) addminutes (Min : int) printtime ( ) Why are hidden data which are not visible from outside part of UML class? DAAD project Joint Course on OOP using Java 52 26

27 The usable interface of a class: only visible features Time - hour : int - minute : int Hidden data support the understanding of the interface. They are part of the class model. Time (hour: int, minute : int) addminutes (Min : int) printtime ( ) The only way to interact with objects of this class is to call its methods DAAD project Joint Course on OOP using Java 53 Relations between classes: Associations, inheritance, Class 1 Class 2 Association Class 1 Class 2 Directed association: objects of class one know objects of class two and not vice versa DAAD project Joint Course on OOP using Java 54 27

28 How to find classes? Principles? By separation of the problem to subproblems Sub-problems may become classes From the objects of the problem area Investigate the requirements specification to find objects of the problem area DAAD project Joint Course on OOP using Java 55 Case study: Mouse in a Maze Which objects of the problem area should be implemented as component / class of the system? Mouse Maze Algorithm for mouse movement User interface /output DAAD project Joint Course on OOP using Java 56 28

29 Which relations exist between the components? Which relations? Who needs whom? Mouse Maze Algorithm for mouse movement User interface /output DAAD project Joint Course on OOP using Java 57 Which relation: Who needs whom? no Mouse e.g. test if in front of a wall Maze Alg. has not to know the maze? Algorithm for mouse movement?? User interface /output DAAD project Joint Course on OOP using Java 58 29

30 Class diagram for a mouse Which data and which operations characterize the mouse? Mouse?? DAAD project Joint Course on OOP using Java 59 Mouse Interface of the mouse: Which data, which operations? (first approach) State: place / direction in a maze - Location : Point - Direction : int stepforward ( ) turnleft ( ) turnright ( ) facingwall ( ) : boolean outsidemaze ( ) : boolean Behaviour: abilities of the mouse (movements & perceptions) DAAD project Joint Course on OOP using Java 60 30

31 Detailed interface of the mouse Mouse Visible attribute - Location : Point - Direction : int + started : boolean - themaze : Maze Mouse (Maze m) getlocation ( ) : Point stepforward ( ) turnleft ( ) turnright ( ) facingwall ( ) : boolean outsidemaze ( ) : boolean Create a mouse in relation to a particular maze Current position of the mouse DAAD project Joint Course on OOP using Java 61 Interface of the maze Class diagram of the maze: data and operations? Maze?? Interface of the maze: Which information is necessary for a user of this class (user = objects of class Mouse )? DAAD project Joint Course on OOP using Java 62 31

32 Interface of the maze (first approach) Maze Is the current position outside of the maze? outside (pos : Point) : boolean checkwall (direction : int, pos : Point) : boolean getstartlocation ( ) : Point Is there a wall at position pos in this direction? Where to place the mouse initially? (position & direction) DAAD project Joint Course on OOP using Java 63 Interface of the maze: attributes? Maze outside (pos : Point) : boolean checkwall (direction : int, pos : Point) : boolean getstartlocation ( ) :? The representation of the maze is too complex to be included as attributes (array) DAAD project Joint Course on OOP using Java 64 32

33 Maze Detailed interface of the maze - height : int - width : int Detailed maze data are too complex to be included in a class diagram. The height and width of the maze are useful to draw the maze getstartlocation ( ) : Point getstartdirection ( ) : int Height and width as a point. getsize ( ) : Point checkwall (direction : int, pos : Point) : boolean checkwall (direction : int, col : int, row : int) : boolean outside (pos : Point) : boolean To find class diagrams is an iterative process: start with a simple solution and extend and modify if necessary. DAAD project Joint Course on OOP using Java 65 Software Architecture: the whole view (textual output) Mouse - Location : Point - Direction : int + started : boolean - themaze : Maze Mouse (Maze m) getlocation ( ) : Point stepforward ( ) turnleft ( ) turnright ( ) facingwall ( ) : boolean outsidemaze ( ) : boolean Maze - height : int - width : int getstartlocation ( ) : Point getstartdirection ( ) : int getsize ( ) : Point checkwall (direction : int, pos : Point) : boolean checkwall (direction : int, col : int, row : int) : boolean outside (pos : Point) : boolean Algorithm for mouse movement main ( ) Textual output of the maze printmaze ( ) DAAD project Joint Course on OOP using Java 66 33

34 Problems of the development of a software architecture Software architecture: Not unique (many good and many bad solutions) Design of a software architecture does not succeed for the first time Long process: Software architecture develops stepwise Principle: Start with one preliminary architecture The usability of the methods finally turns out only during the implementation. DAAD project Joint Course on OOP using Java 67 Development process of Mouse in a Maze Requirements analysis Design Implementation and test DAAD project Joint Course on OOP using Java 68 34

35 Java sources Classes Mouse Maze MouseMaze Easel SoftFrame MazeTest LOC Sum: 378 DAAD project Joint Course on OOP using Java 69 Information to the audience This presentation gives only an outline of the principle points of the implementation. Several crucial technical details will be explained. However, not each implementation detail will be presented. This would be boring in a lecture. During the self-study and with assignments, everybody should explain oneself open questions. DAAD project Joint Course on OOP using Java 70 35

36 Planning of implementation steps In which order should the classes be implemented? 2 Mouse Maze 1 3b Algorithm for mouse movement User interface: Textual output of the maze 3a UML class diagram: Dependencies order of implementation DAAD project Joint Course on OOP using Java 71 2 Mouse - Location : Point - Direction : int + started : boolean - themaze : Maze Mouse (Maze m) getlocation ( ) : Point stepforward ( ) turnleft ( ) turnright ( ) facingwall ( ) : boolean outsidemaze ( ) : boolean Software Architecture: the whole view Maze - height : int - width : int getstartlocation ( ) : Point getstartdirection ( ) : int getsize ( ) : Point checkwall (direction : int, pos : Point) : boolean checkwall (direction : int, col : int, row : int) : boolean outside (pos : Point) : boolean 1 3b Algorithm for mouse movement main ( ) Textual output of the maze printmaze ( ) 3a In the lecture: 1, 2, 3b (main ideas) Self-study: 3a; 1, 2, 3b (details) DAAD project Joint Course on OOP using Java 72 36

37 Implementation of the maze Starting from the class diagram Maze - height : int - width : int getstartlocation ( ) : Point getstartdirection ( ) : int getsize ( ) : Point checkwall (direction : int, pos : Point) : boolean checkwall (direction : int, col : int, row : int) : boolean outside (pos : Point) : boolean DAAD project Joint Course on OOP using Java 73 Representation of the maze as a data structure How to represent the maze by Java data structures? DAAD project Joint Course on OOP using Java 74 37

38 Position in a maze Position = coordinate (x,y) = (number of column, number of line) (0,0) (1,0) (2,0) (3,0) (4,0) (5,0) (0,1) (1,1) (2,1) (3,1) (4,1) (5,1) (0,2) (1,2) (2,2) (3,2) (4,2) (5,2) (0,3) (1,3) (2,3) (3,3) (4,3) (5,3) (0,4) (1,4) (2,4) (3,4) (4,4) (5,4) DAAD project Joint Course on OOP using Java 75 Movement path of the mouse Path: (0,2), (1,2), (1,3), (1,2), (1,1),, (4,0) (0,0) (1,0) (2,0) (3,0) (4,0) (5,0) (0,1) (1,1) (2,1) (3,1) (4,1) (5,1) (0,2) (1,2) (2,2) (3,2) (4,2) (5,2) (0,3) (1,3) (2,3) (3,3) (4,3) (5,3) (0,4) (1,4) (2,4) (3,4) (4,4) (5,4) DAAD project Joint Course on OOP using Java 76 38

39 Movement path of the mouse: Long form Detailed description: (0,2), step forward to (1,2), turn to right, step forward to (1,3), turn to right, turn to left, turn to left, turn to left, step forward (0,0) (1,0) (2,0) (3,0) (4,0) (5,0) (0,1) (1,1) (2,1) (3,1) (4,1) (5,1) (0,2) (1,2) (2,2) (3,2) (4,2) (5,2) (0,3) (1,3) (2,3) (3,3) (4,3) (5,3) (0,4) (1,4) (2,4) (3,4) (4,4) (5,4) DAAD project Joint Course on OOP using Java 77 Representation of the maze: store the walls For each relevant position: Is there a wall to the south boolean [][] swall Is there a wall to the east boolean [][] ewall DAAD project Joint Course on OOP using Java 78 39

40 Representation of the maze: store the walls boolean [][] swall (0,0) (1,0) (2,0) (3,0) (4,0) (5,0) (0,1) (1,1) (2,1) (3,1) (4,1) (5,1) (0,2) (1,2) (2,2) (3,2) (4,2) (5,2) (0,3) (1,3) (2,3) (3,3) (4,3) (5,3) (0,4) (1,4) (2,4) (3,4) (4,4) (5,4) boolean [][] ewall DAAD project Joint Course on OOP using Java 79 South walls of the maze: example boolean [][] swall = {{true, true, true, false}, {false, false, false, true}, {false, false, false, false}, {true, true, true, true}} (0,0) (1,0) (2,0) (3,0) (4,0) (5,0) (0,1) (1,1) (2,1) (3,1) (4,1) (5,1) (0,2) (1,2) (2,2) (3,2) (4,2) (5,2) (0,3) (1,3) (2,3) (3,3) (4,3) (5,3) (0,4) (1,4) (2,4) (3,4) (4,4) (5,4) DAAD project Joint Course on OOP using Java 80 40

41 South walls of the maze: the array boolean [][] swall = {{true, true, true, false}, {false, false, false, true}, {false, false, false, false}, {true, true, true, true}} true true true false 1 false false false true 2 false false false false 3 true true true true DAAD project Joint Course on OOP using Java 81 Method outside public boolean outside (Point pos){ return ((pos.x < 1) //left... (pos.x > width) //right... (pos.y < 1) //over... (pos.y > height) //under... ); // the maze } API: Point pos : (x, y) DAAD project Joint Course on OOP using Java 82 41

42 Method checkwall :: technical detail Boolean checkwall (int dir, int col, int row) { switch (dir){ case NORTH: return swall[row-1][col-1]; (0,0) (1,0) (2,0) (3,0) (4,0) (5,0) case SOUTH: return swall[row][col-1];... (0,1) (1,1) (2,1) (3,1) (4,1) (5,1) (0,2) (1,2) (2,2) (3,2) (4,2) (5,2) (0,3) (1,3) (2,3) (3,3) (4,3) (5,3) (0,4) (1,4) (2,4) (3,4) (4,4) (5,4) DAAD project Joint Course on OOP using Java 83 Components: separate implementation & separate test Component test: Test of the component independent of the rest of the system. Integration test: Later on, the collaboration with other components will be tested. DAAD project Joint Course on OOP using Java 84 42

43 Component test of the maze class Maze { } Component to be tested class MazeTest { } Testframe for class Maze DAAD project Joint Course on OOP using Java 85 Test frame: basic principles for test output % java MazeTest Start location is (0,2): [x=0,y=2] Start direction is EAST = 1: 1 Outside true : true Not outside -> false : false Not outside -> false : false Wall -> true : true No wall -> true : true Wall -> true : true Actual value Semantic interpretation Expected value DAAD project Joint Course on OOP using Java 86 43

44 Implementation of the mouse Starting from the class diagram Mouse - Location : Point - Direction : int + started : boolean - themaze : Maze Mouse (Maze m) getlocation ( ) : Point stepforward ( ) turnleft ( ) turnright ( ) facingwall ( ) : boolean outsidemaze ( ) : boolean DAAD project Joint Course on OOP using Java 87 Communication between the objects: send a message Operation of the mouse public boolean facingwall() { return themaze.checkwall (direction, location); } Operation of the maze The mouse sends a message to the maze: If I have a certain location and direction in the maze, is then a wall in front of me? DAAD project Joint Course on OOP using Java 88 44

45 Methods: turnleft and turnright public void turnleft() { printoutmove( turn to the left ); direction = (direction + 3) % 4; } public void turnright() { printoutmove( turn to the right ); direction = (direction + 1) % 4; } Think about these formulas. DAAD project Joint Course on OOP using Java 89 Method: stepforward public void stepforward() { switch (direction) { case NORTH: location.y--; break; case EAST: location.x++; break; case SOUTH: location.y++; break; case WEST: location.x--; break; } printoutmove( step forward ); } DAAD project Joint Course on OOP using Java 90 45

46 Search algorithm: class MouseMaze (1) Moves the mouse one step forward, if necessary with turns public static void main (... ) { Maze themaze = new Maze(); Mouse littlemouse = new Mouse(theMaze); printmaze(themaze); } //move the mouse step by step do{ makestep(littlemouse); } while (!littlemouse.outsidemaze()); DAAD project Joint Course on OOP using Java 91 Search algorithm: class MouseMaze (2) Visible attribute private static void makestep(mouse m){ if (m.started){ if (!m.outsidemaze()){ } m.turnright(); while (m.facingwall()){ m.turnleft(); } m.stepforward(); } } else { m.stepforward(); m.started = true; } Moves the mouse one step forward, if necessary with turns DAAD project Joint Course on OOP using Java 92 46

47 Critics of the implementation Constant NORTH = 0, repeatedly defined in three classes source of error better solution: define them in an interface only once Variable started visible outside instead of this: - private + additional access operation - modify the algorithm Data representation of the maze is error-prone true/false sequencies correct? Variables height, width, size may be in contradiction to ewall, swall better let them compute Strategy of the mouse may be a part of the mouse: Other mice may have other strategies: move at the left-hand wall (mice = plural of mouse) DAAD project Joint Course on OOP using Java 93 47

Java case studies: game playing. development

Java case studies: game playing. development Java case studies: game playing A simple software development process from specification, to design, implementation, and test DAAD project Joint Course on OOP using Java Humboldt University Berlin, University

More information

On the (un)suitability of Java to be the first programming language

On the (un)suitability of Java to be the first programming language On the (un)suitability of Java to be the first programming language Mirjana Ivanovic Faculty of Science, Department of Mathematics and Informatics Trg Dositeja Obradovica 4, Novi Sad mira @im.ns.ac.yu

More information

Blender Notes. Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine

Blender Notes. Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine Blender Notes Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine The Blender Game Engine This week we will have an introduction to the Game Engine build

More information

Chapter 1: Key Concepts of Programming and Software Engineering

Chapter 1: Key Concepts of Programming and Software Engineering Chapter 1: Key Concepts of Programming and Software Engineering Software Engineering Coding without a solution design increases debugging time - known fact! A team of programmers for a large software development

More information

"New Java course material and available pool of.ppt presentations"

New Java course material and available pool of.ppt presentations "New Java course material and available pool of.ppt presentations" D. Pešović, M. Ivanović, Ž. Komlenov University of Novi Sad September, 2007 1 AGENDA 1. SubProject site current state 2. Collected material

More information

Part 3: GridWorld Classes and Interfaces

Part 3: GridWorld Classes and Interfaces GridWorld Case Study Part 3: GridWorld Classes and Interfaces In our example programs, a grid contains actors that are instances of classes that extend the Actor class. There are two classes that implement

More information

Analysis of Micromouse Maze Solving Algorithms

Analysis of Micromouse Maze Solving Algorithms 1 Analysis of Micromouse Maze Solving Algorithms David M. Willardson ECE 557: Learning from Data, Spring 2001 Abstract This project involves a simulation of a mouse that is to find its way through a maze.

More information

ExmoR A Testing Tool for Control Algorithms on Mobile Robots

ExmoR A Testing Tool for Control Algorithms on Mobile Robots ExmoR A Testing Tool for Control Algorithms on Mobile Robots F. Lehmann, M. Ritzschke and B. Meffert Institute of Informatics, Humboldt University, Unter den Linden 6, 10099 Berlin, Germany E-mail: falk.lehmann@gmx.de,

More information

Java Software Structures

Java Software Structures INTERNATIONAL EDITION Java Software Structures Designing and Using Data Structures FOURTH EDITION John Lewis Joseph Chase This page is intentionally left blank. Java Software Structures,International Edition

More information

West Virginia University College of Engineering and Mineral Resources. Computer Engineering 313 Spring 2010

West Virginia University College of Engineering and Mineral Resources. Computer Engineering 313 Spring 2010 College of Engineering and Mineral Resources Computer Engineering 313 Spring 2010 Laboratory #4-A (Micromouse Algorithms) Goals This lab introduces the modified flood fill algorithm and teaches how to

More information

Object Oriented Software Models

Object Oriented Software Models Software Engineering CSC 342/ Dr Ghazy Assassa Page 1 Object Oriented Software Models Use case diagram and use case description 1. Draw a use case diagram for a student-course-registration system. Show

More information

2014 HSC Software Design and Development Marking Guidelines

2014 HSC Software Design and Development Marking Guidelines 014 HSC Software Design and Development Marking Guidelines Section I Multiple-choice Answer Key Question Answer 1 B A A 4 D 5 A 6 D 7 A 8 B 9 C 10 D 11 B 1 B 1 A 14 A 15 B 16 D 17 C 18 C 19 D 0 D 1 Section

More information

12-6 Write a recursive definition of a valid Java identifier (see chapter 2).

12-6 Write a recursive definition of a valid Java identifier (see chapter 2). CHAPTER 12 Recursion Recursion is a powerful programming technique that is often difficult for students to understand. The challenge is explaining recursion in a way that is already natural to the student.

More information

Hands-On: Introduction to Object-Oriented Programming in LabVIEW

Hands-On: Introduction to Object-Oriented Programming in LabVIEW Version 13.11 1 Hr Hands-On: Introduction to Object-Oriented Programming in LabVIEW Please do not remove this manual. You will be sent an email which will enable you to download the presentations and an

More information

Algorithms, Flowcharts & Program Design. ComPro

Algorithms, Flowcharts & Program Design. ComPro Algorithms, Flowcharts & Program Design ComPro Definition Algorithm: o sequence of steps to be performed in order to solve a problem by the computer. Flowchart: o graphical or symbolic representation of

More information

Concepts and terminology in the Simula Programming Language

Concepts and terminology in the Simula Programming Language Concepts and terminology in the Simula Programming Language An introduction for new readers of Simula literature Stein Krogdahl Department of Informatics University of Oslo, Norway April 2010 Introduction

More information

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements Questions? Assignment Why is proper project management important? What is goal of domain analysis? What is the difference between functional and non- functional requirements? Why is it important for requirements

More information

How To Design An Information System

How To Design An Information System Information system for production and mounting of plastic windows MARCEL, MELIŠ Slovak University of Technology - Faculty of Material Sciences and Technology in Trnava, Paulínska 16 street, Trnava, 917

More information

An Introduction to Object-Oriented Programming with

An Introduction to Object-Oriented Programming with An Introduction to Object-Oriented Programming with TM Java C. Thomas Wu Naval Postgraduate School Ml McGraw-Hill Boston Burr Ridge, IL Dubuque, IA Madison, WI New York San Francisco St. Louis Bangkok

More information

Some programming experience in a high-level structured programming language is recommended.

Some programming experience in a high-level structured programming language is recommended. Python Programming Course Description This course is an introduction to the Python programming language. Programming techniques covered by this course include modularity, abstraction, top-down design,

More information

Exercise 10: Basic LabVIEW Programming

Exercise 10: Basic LabVIEW Programming Exercise 10: Basic LabVIEW Programming In this exercise we will learn the basic principles in LabVIEW. LabVIEW will be used in later exercises and in the project part, as well in other courses later, so

More information

Enterprise Application Development Using UML, Java Technology and XML

Enterprise Application Development Using UML, Java Technology and XML Enterprise Application Development Using UML, Java Technology and XML Will Howery CTO Passage Software LLC 1 Introduction Effective management and modeling of enterprise applications Web and business-to-business

More information

Java the UML Way: Integrating Object-Oriented Design and Programming

Java the UML Way: Integrating Object-Oriented Design and Programming Java the UML Way: Integrating Object-Oriented Design and Programming by Else Lervik and Vegard B. Havdal ISBN 0-470-84386-1 John Wiley & Sons, Ltd. Table of Contents Preface xi 1 Introduction 1 1.1 Preliminaries

More information

SignalDraw: GUI Tool For Generating Pulse Sequences

SignalDraw: GUI Tool For Generating Pulse Sequences SignalDraw: GUI Tool For Generating Pulse Sequences Konstantin Berlin Department of Computer Science University of Maryland College Park, MD 20742 kberlin@cs.umd.edu December 9, 2005 Abstract Generating

More information

The Basics of Robot Mazes Teacher Notes

The Basics of Robot Mazes Teacher Notes The Basics of Robot Mazes Teacher Notes Why do robots solve Mazes? A maze is a simple environment with simple rules. Solving it is a task that beginners can do successfully while learning the essentials

More information

Sources: On the Web: Slides will be available on:

Sources: On the Web: Slides will be available on: C programming Introduction The basics of algorithms Structure of a C code, compilation step Constant, variable type, variable scope Expression and operators: assignment, arithmetic operators, comparison,

More information

Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design

Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design I. Automated Banking System Case studies: Outline Requirements Engineering: OO and incremental software development 1. case study: withdraw money a. use cases b. identifying class/object (class diagram)

More information

Chapter 13: Program Development and Programming Languages

Chapter 13: Program Development and Programming Languages 15 th Edition Understanding Computers Today and Tomorrow Comprehensive Chapter 13: Program Development and Programming Languages Deborah Morley Charles S. Parker Copyright 2015 Cengage Learning Learning

More information

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci Software Engineering Software Development Process Models Lecturer: Giuseppe Santucci Summary Modeling the Software Process Generic Software Process Models Waterfall model Process Iteration Incremental

More information

Course: Programming II - Abstract Data Types. The ADT Stack. A stack. The ADT Stack and Recursion Slide Number 1

Course: Programming II - Abstract Data Types. The ADT Stack. A stack. The ADT Stack and Recursion Slide Number 1 Definition Course: Programming II - Abstract Data Types The ADT Stack The ADT Stack is a linear sequence of an arbitrary number of items, together with access procedures. The access procedures permit insertions

More information

1. What are Data Structures? Introduction to Data Structures. 2. What will we Study? CITS2200 Data Structures and Algorithms

1. What are Data Structures? Introduction to Data Structures. 2. What will we Study? CITS2200 Data Structures and Algorithms 1 What are ata Structures? ata Structures and lgorithms ata structures are software artifacts that allow data to be stored, organized and accessed Topic 1 They are more high-level than computer memory

More information

Twin A Design Pattern for Modeling Multiple Inheritance

Twin A Design Pattern for Modeling Multiple Inheritance Twin A Design Pattern for Modeling Multiple Inheritance Hanspeter Mössenböck University of Linz, Institute of Practical Computer Science, A-4040 Linz moessenboeck@ssw.uni-linz.ac.at Abstract. We introduce

More information

CompuScholar, Inc. Alignment to Utah's Computer Programming II Standards

CompuScholar, Inc. Alignment to Utah's Computer Programming II Standards CompuScholar, Inc. Alignment to Utah's Computer Programming II Standards Course Title: TeenCoder: Java Programming Course ISBN: 978 0 9887070 2 3 Course Year: 2015 Note: Citation(s) listed may represent

More information

2.3 WINDOW-TO-VIEWPORT COORDINATE TRANSFORMATION

2.3 WINDOW-TO-VIEWPORT COORDINATE TRANSFORMATION 2.3 WINDOW-TO-VIEWPORT COORDINATE TRANSFORMATION A world-coordinate area selected for display is called a window. An area on a display device to which a window is mapped is called a viewport. The window

More information

Web Presentation Layer Architecture

Web Presentation Layer Architecture Chapter 4 Web Presentation Layer Architecture In this chapter we provide a discussion of important current approaches to web interface programming based on the Model 2 architecture [59]. From the results

More information

Java (12 Weeks) Introduction to Java Programming Language

Java (12 Weeks) Introduction to Java Programming Language Java (12 Weeks) Topic Lecture No. Introduction to Java Programming Language 1 An Introduction to Java o Java as a Programming Platform, The Java "White Paper" Buzzwords, Java and the Internet, A Short

More information

Software Analysis Visualization

Software Analysis Visualization 28th International Conference on Software Engineering Software Analysis Visualization Harald Gall and Michele Lanza !oftware Visualiza"o# Tutorial F7 Software Evolution: Analysis and Visualization 2006

More information

Programming and Software Development CTAG Alignments

Programming and Software Development CTAG Alignments Programming and Software Development CTAG Alignments This document contains information about four Career-Technical Articulation Numbers (CTANs) for Programming and Software Development Career-Technical

More information

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries First Semester Development 1A On completion of this subject students will be able to apply basic programming and problem solving skills in a 3 rd generation object-oriented programming language (such as

More information

Chapter 13: Program Development and Programming Languages

Chapter 13: Program Development and Programming Languages Understanding Computers Today and Tomorrow 12 th Edition Chapter 13: Program Development and Programming Languages Learning Objectives Understand the differences between structured programming, object-oriented

More information

Specimen 2015 am/pm Time allowed: 1hr 30mins

Specimen 2015 am/pm Time allowed: 1hr 30mins SPECIMEN MATERIAL GCSE COMPUTER SCIENCE 8520/1 Paper 1 Specimen 2015 am/pm Time allowed: 1hr 30mins Materials There are no additional materials required for this paper. Instructions Use black ink or black

More information

Unit Testing & JUnit

Unit Testing & JUnit Unit Testing & JUnit Lecture Outline Communicating your Classes Introduction to JUnit4 Selecting test cases UML Class Diagrams Rectangle height : int width : int resize(double,double) getarea(): int getperimeter():int

More information

Computer Science. 232 Computer Science. Degrees and Certificates Awarded. A.S. Degree Requirements. Program Student Outcomes. Department Offices

Computer Science. 232 Computer Science. Degrees and Certificates Awarded. A.S. Degree Requirements. Program Student Outcomes. Department Offices 232 Computer Science Computer Science (See Computer Information Systems section for additional computer courses.) We are in the Computer Age. Virtually every occupation in the world today has an interface

More information

Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective

Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective Orit Hazzan's Column Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective This column is coauthored with Jeff Kramer, Department of Computing, Imperial College, London ABSTRACT

More information

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,

More information

Translating to Java. Translation. Input. Many Level Translations. read, get, input, ask, request. Requirements Design Algorithm Java Machine Language

Translating to Java. Translation. Input. Many Level Translations. read, get, input, ask, request. Requirements Design Algorithm Java Machine Language Translation Translating to Java Introduction to Computer Programming The job of a programmer is to translate a problem description into a computer language. You need to be able to convert a problem description

More information

Wilson Area School District Planned Course Guide

Wilson Area School District Planned Course Guide Wilson Area School District Planned Course Guide Title of planned course: Introduction to Computer Programming Subject Area: Business Grade Level: 9-12 Course Description: In this course, students are

More information

Comprensione del software - principi base e pratica reale 5

Comprensione del software - principi base e pratica reale 5 Prologue C era una volta Comprensione del software - principi base e pratica reale Reverse engineer 1 200 000 lines of C++ code in ca. 2300 classes * 2 = 2 400 000 seconds / 3600 = 667 hours 667 hours

More information

EET 310 Programming Tools

EET 310 Programming Tools Introduction EET 310 Programming Tools LabVIEW Part 1 (LabVIEW Environment) LabVIEW (short for Laboratory Virtual Instrumentation Engineering Workbench) is a graphical programming environment from National

More information

Teaching Object-Oriented Concepts with Eclipse

Teaching Object-Oriented Concepts with Eclipse Teaching Object-Oriented Concepts with Eclipse Matthias Meyer, Lothar Wendehals Software Engineering Group Department of Computer Science University of Paderborn Warburger Straße 100 33098 Paderborn, Germany

More information

Classes and Objects. Agenda. Quiz 7/1/2008. The Background of the Object-Oriented Approach. Class. Object. Package and import

Classes and Objects. Agenda. Quiz 7/1/2008. The Background of the Object-Oriented Approach. Class. Object. Package and import Classes and Objects 2 4 pm Tuesday 7/1/2008 @JD2211 1 Agenda The Background of the Object-Oriented Approach Class Object Package and import 2 Quiz Who was the oldest profession in the world? 1. Physician

More information

Introduction to ProForm Rapid elearning Studio. What is ProForm? The ProForm Course Authoring Tool allows you to quickly create

Introduction to ProForm Rapid elearning Studio. What is ProForm? The ProForm Course Authoring Tool allows you to quickly create Introduction to ProForm Rapid elearning Studio The ProForm Rapid elearning Studio includes the ProForm Course Authoring Tool, the SWiSH Rapid Animation Tool, and the RapidCam Screen Recording Tool. This

More information

COMPUTER SCIENCE. Paper 1 (THEORY)

COMPUTER SCIENCE. Paper 1 (THEORY) COMPUTER SCIENCE Paper 1 (THEORY) (Three hours) Maximum Marks: 70 (Candidates are allowed additional 15 minutes for only reading the paper. They must NOT start writing during this time) -----------------------------------------------------------------------------------------------------------------------

More information

Artificial Intelligence

Artificial Intelligence Artificial Intelligence ICS461 Fall 2010 1 Lecture #12B More Representations Outline Logics Rules Frames Nancy E. Reed nreed@hawaii.edu 2 Representation Agents deal with knowledge (data) Facts (believe

More information

1 Hour, Closed Notes, Browser open to Java API docs is OK

1 Hour, Closed Notes, Browser open to Java API docs is OK CSCI 143 Exam 2 Name 1 Hour, Closed Notes, Browser open to Java API docs is OK A. Short Answer For questions 1 5 credit will only be given for a correct answer. Put each answer on the appropriate line.

More information

Software Specification and Architecture 2IW80

Software Specification and Architecture 2IW80 Software Specification and Architecture 2IW80 Julien Schmaltz (slides partly from M. Mousavi and A. Serebrenik) Lecture 03: Use Cases Before we start The system shall give access to the database to any

More information

The Darwin Game 2.0 Programming Guide

The Darwin Game 2.0 Programming Guide The Darwin Game 2.0 Programming Guide In The Darwin Game creatures compete to control maps and race through mazes. You play by programming your own species of creature in Java, which then acts autonomously

More information

Software Engineering Techniques

Software Engineering Techniques Software Engineering Techniques Low level design issues for programming-in-the-large. Software Quality Design by contract Pre- and post conditions Class invariants Ten do Ten do nots Another type of summary

More information

Object Oriented Design

Object Oriented Design Object Oriented Design Kenneth M. Anderson Lecture 20 CSCI 5828: Foundations of Software Engineering OO Design 1 Object-Oriented Design Traditional procedural systems separate data and procedures, and

More information

(Refer Slide Time: 01:52)

(Refer Slide Time: 01:52) Software Engineering Prof. N. L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture - 2 Introduction to Software Engineering Challenges, Process Models etc (Part 2) This

More information

A Client-Server Interactive Tool for Integrated Artificial Intelligence Curriculum

A Client-Server Interactive Tool for Integrated Artificial Intelligence Curriculum A Client-Server Interactive Tool for Integrated Artificial Intelligence Curriculum Diane J. Cook and Lawrence B. Holder Department of Computer Science and Engineering Box 19015 University of Texas at Arlington

More information

Section C. Requirements Elicitation

Section C. Requirements Elicitation This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike License. Your use of this material constitutes acceptance of that license and the conditions of use of materials on this

More information

Rational Software White Paper

Rational Software White Paper Modeling Web Application Architectures with UML By: Jim Conallen, Rational Software June 1999 A version of this material appears in the October 1999 (volume 42, number 10) issue of Communications of the

More information

The Environment Model. a paper by Neil Lasher neil.l@thelearningcoach.co.uk @neillasher. The scene:

The Environment Model. a paper by Neil Lasher neil.l@thelearningcoach.co.uk @neillasher. The scene: The Environment Model. a paper by Neil Lasher neil.l@thelearningcoach.co.uk @neillasher The scene: So what does this paper hold? If you are a level 4 learner you will want the whole story in this paragraph

More information

Creating Database Tables in Microsoft SQL Server

Creating Database Tables in Microsoft SQL Server Creating Database Tables in Microsoft SQL Server Microsoft SQL Server is a relational database server that stores and retrieves data for multi-user network-based applications. SQL Server databases are

More information

Technical Writing - Definition of Bad and Good Code

Technical Writing - Definition of Bad and Good Code 1 Workshop on Distributed Software Management for e-science Day 2 - Software Design Lecture 4 Code Design Basics Geoff Cawood Consultant, EPCC Telephone: +44 131 650 5120 Email: geoffc@epcc.ed.ac.uk 4Low

More information

Organization of DSLE part. Overview of DSLE. Model driven software engineering. Engineering. Tooling. Topics:

Organization of DSLE part. Overview of DSLE. Model driven software engineering. Engineering. Tooling. Topics: Organization of DSLE part Domain Specific Language Engineering Tooling Eclipse plus EMF Xtext, Xtend, Xpand, QVTo and ATL Prof.dr. Mark van den Brand GLT 2010/11 Topics: Meta-modeling Model transformations

More information

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS) CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS) Prescriptive Process Model Defines a distinct set of activities, actions, tasks, milestones, and work products that are required to engineer high quality

More information

The first program: Little Crab

The first program: Little Crab CHAPTER 2 The first program: Little Crab topics: concepts: writing code: movement, turning, reacting to the screen edges source code, method call, parameter, sequence, if-statement In the previous chapter,

More information

Title: Topic 3 Software process models (Topic03 Slide 1).

Title: Topic 3 Software process models (Topic03 Slide 1). Title: Topic 3 Software process models (Topic03 Slide 1). Topic 3: Lecture Notes (instructions for the lecturer) Author of the topic: Klaus Bothe (Berlin) English version: Katerina Zdravkova, Vangel Ajanovski

More information

Management Information Systems 260 Web Programming Fall 2006 (CRN: 42459)

Management Information Systems 260 Web Programming Fall 2006 (CRN: 42459) Management Information Systems 260 Web Programming Fall 2006 (CRN: 42459) Class Time: 6:00 8:05 p.m. (T,Th) Venue: WSL 5 Web Site: www.pbvusd.net/mis260 Instructor Name: Terrell Tucker Office: BDC 127

More information

Application of UML in Real-Time Embedded Systems

Application of UML in Real-Time Embedded Systems Application of UML in Real-Time Embedded Systems Aman Kaur King s College London, London, UK Email: aman.kaur@kcl.ac.uk Rajeev Arora Mechanical Engineering Department, Invertis University, Invertis Village,

More information

Team Builder Project

Team Builder Project Team Builder Project Software Requirements Specification Draft 2 February 2, 2015 Team:.dat ASCII 1 Table of Contents Introduction Purpose 4 Scope of Project.4 Overview.5 Business Context 5 Glossary 6

More information

From Object Oriented Conceptual Modeling to Automated Programming in Java

From Object Oriented Conceptual Modeling to Automated Programming in Java From Object Oriented Conceptual Modeling to Automated Programming in Java Oscar Pastor, Vicente Pelechano, Emilio Insfrán, Jaime Gómez Department of Information Systems and Computation Valencia University

More information

Progress Record. Seq. Lesson # Lesson Title Date Grade. Introduction to Computers (CORE COURSE) 1

Progress Record. Seq. Lesson # Lesson Title Date Grade. Introduction to Computers (CORE COURSE) 1 F-710 M-230 M-110 Progress Record Study your lessons in the order listed below. As graded examinations are returned to you, enter your grade in the space below. Set a schedule for yourself then watch your

More information

Menouer Boubekeur, Gregory Provan

Menouer Boubekeur, Gregory Provan Software Requirements Menouer Boubekeur, Gregory Provan Lectures Introduction to UML Introduction to Requirements Analysis Advanced techniques for Requirement Analysis M. Boubekeur, CSL, University College

More information

Affdex SDK for Android. Developer Guide For SDK version 1.0

Affdex SDK for Android. Developer Guide For SDK version 1.0 Affdex SDK for Android Developer Guide For SDK version 1.0 www.affdex.com/mobile-sdk 1 August 4, 2014 Introduction The Affdex SDK is the culmination of years of scientific research into emotion detection,

More information

Keywords revenue management, yield management, genetic algorithm, airline reservation

Keywords revenue management, yield management, genetic algorithm, airline reservation Volume 4, Issue 1, January 2014 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com A Revenue Management

More information

Course MS10975A Introduction to Programming. Length: 5 Days

Course MS10975A Introduction to Programming. Length: 5 Days 3 Riverchase Office Plaza Hoover, Alabama 35244 Phone: 205.989.4944 Fax: 855.317.2187 E-Mail: rwhitney@discoveritt.com Web: www.discoveritt.com Course MS10975A Introduction to Programming Length: 5 Days

More information

2 SYSTEM DESCRIPTION TECHNIQUES

2 SYSTEM DESCRIPTION TECHNIQUES 2 SYSTEM DESCRIPTION TECHNIQUES 2.1 INTRODUCTION Graphical representation of any process is always better and more meaningful than its representation in words. Moreover, it is very difficult to arrange

More information

2 The first program: Little Crab

2 The first program: Little Crab 2 The first program: Little Crab topics: concepts: writing code: movement, turning, reacting to the screen edges source code, method call, parameter, sequence, if statement In the previous chapter, we

More information

Chapter 1 Java Program Design and Development

Chapter 1 Java Program Design and Development presentation slides for JAVA, JAVA, JAVA Object-Oriented Problem Solving Third Edition Ralph Morelli Ralph Walde Trinity College Hartford, CT published by Prentice Hall Java, Java, Java Object Oriented

More information

Information systems modelling UML and service description languages

Information systems modelling UML and service description languages Internet Engineering Tomasz Babczyński, Zofia Kruczkiewicz Tomasz Kubik Information systems modelling UML and service description languages Student Contact Hours: 25.02.2015- Location: 325 C3 room 25.03.2015:

More information

A Tutorial on dynamic networks. By Clement Levallois, Erasmus University Rotterdam

A Tutorial on dynamic networks. By Clement Levallois, Erasmus University Rotterdam A Tutorial on dynamic networks By, Erasmus University Rotterdam V 1.0-2013 Bio notes Education in economics, management, history of science (Ph.D.) Since 2008, turned to digital methods for research. data

More information

Java 6 'th. Concepts INTERNATIONAL STUDENT VERSION. edition

Java 6 'th. Concepts INTERNATIONAL STUDENT VERSION. edition Java 6 'th edition Concepts INTERNATIONAL STUDENT VERSION CONTENTS PREFACE vii SPECIAL FEATURES xxviii chapter i INTRODUCTION 1 1.1 What Is Programming? 2 J.2 The Anatomy of a Computer 3 1.3 Translating

More information

Mobile App Design Project #1 Java Boot Camp: Design Model for Chutes and Ladders Board Game

Mobile App Design Project #1 Java Boot Camp: Design Model for Chutes and Ladders Board Game Mobile App Design Project #1 Java Boot Camp: Design Model for Chutes and Ladders Board Game Directions: In mobile Applications the Control Model View model works to divide the work within an application.

More information

Java Application Developer Certificate Program Competencies

Java Application Developer Certificate Program Competencies Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle

More information

Why are Business Process Models often too complex? Do s and Don ts for Business Process Modelers

Why are Business Process Models often too complex? Do s and Don ts for Business Process Modelers Why are Business Process Models often too complex? Do s and Don ts for Business Process Modelers Version 1.0 This document developed by Dr. Juergen Pitschke, BCS-Dr. Juergen Pitschke, www.enterprise-design.eu

More information

Graphical Web based Tool for Generating Query from Star Schema

Graphical Web based Tool for Generating Query from Star Schema Graphical Web based Tool for Generating Query from Star Schema Mohammed Anbar a, Ku Ruhana Ku-Mahamud b a College of Arts and Sciences Universiti Utara Malaysia, 0600 Sintok, Kedah, Malaysia Tel: 604-2449604

More information

What makes a good coder and technology user at Mountfields Lodge School?

What makes a good coder and technology user at Mountfields Lodge School? What makes a good coder and technology user at Mountfields Lodge School? Pupils who persevere to become competent in coding for a variety of practical and inventive purposes, including the application

More information

Communication Diagrams

Communication Diagrams Communication Diagrams Massimo Felici Realizing Use cases in the Design Model 1 Slide 1: Realizing Use cases in the Design Model Use-case driven design is a key theme in a variety of software processes

More information

Introduction to programming

Introduction to programming Unit 1 Introduction to programming Summary Architecture of a computer Programming languages Program = objects + operations First Java program Writing, compiling, and executing a program Program errors

More information

The Design and Implementation of an Android Game: Foxes and Chickens

The Design and Implementation of an Android Game: Foxes and Chickens Vol.3, Issue.2, March-April. 2013 pp-1129-1134 ISSN: 2249-6645 The Design and Implementation of an Android Game: Foxes and Chickens Justin R. Martinez, 1 Wenbin Luo 2 12 Engineering Department, St. Mary's

More information

THE BCS PROFESSIONAL EXAMINATIONS Diploma. April 2006 EXAMINERS REPORT. Systems Design

THE BCS PROFESSIONAL EXAMINATIONS Diploma. April 2006 EXAMINERS REPORT. Systems Design THE BCS PROFESSIONAL EXAMINATIONS Diploma April 2006 EXAMINERS REPORT Systems Design Question. a) Write a BRIEF explanation of the purpose of TWO of the following UML diagrams as used in Object- Oriented

More information

Chapter 6: Programming Languages

Chapter 6: Programming Languages Chapter 6: Programming Languages Computer Science: An Overview Eleventh Edition by J. Glenn Brookshear Copyright 2012 Pearson Education, Inc. Chapter 6: Programming Languages 6.1 Historical Perspective

More information

Intel Retail Client Manager Audience Analytics

Intel Retail Client Manager Audience Analytics Intel Retail Client Manager Audience Analytics By using this document, in addition to any agreements you have with Intel, you accept the terms set forth below. You may not use or facilitate the use of

More information

Texas Essential Knowledge and Skills Correlation to Video Game Design Foundations 2011 N130.0993. Video Game Design

Texas Essential Knowledge and Skills Correlation to Video Game Design Foundations 2011 N130.0993. Video Game Design Texas Essential Knowledge and Skills Correlation to Video Game Design Foundations 2011 N130.0993. Video Game Design STANDARD CORRELATING PAGES Standard (1) The student demonstrates knowledge and appropriate

More information

Umbrello UML Modeller Handbook

Umbrello UML Modeller Handbook 2 Contents 1 Introduction 7 2 UML Basics 8 2.1 About UML......................................... 8 2.2 UML Elements........................................ 9 2.2.1 Use Case Diagram.................................

More information

Manage Software Development in LabVIEW with Professional Tools

Manage Software Development in LabVIEW with Professional Tools Manage Software Development in LabVIEW with Professional Tools Introduction For many years, National Instruments LabVIEW software has been known as an easy-to-use development tool for building data acquisition

More information

Social Media in the Process Automation Industry

Social Media in the Process Automation Industry Social Media in the Process Automation Industry Distributed Software Development Design Document Version 0.1 In co-operation with: Title: Social Media in the Process Automation Industry Product name: ABBConnect

More information