3D Animation of Java Program Execution for Teaching Object Oriented Concepts

Size: px
Start display at page:

Download "3D Animation of Java Program Execution for Teaching Object Oriented Concepts"

Transcription

1 3D Animation of Java Program Execution for Teaching Object Oriented Concepts Tim Storer September 23, 2006 Abstract The successful teaching of the object oriented programming paradigm has been identified as a difficult task. Coupled with the difficulty of conveying abstract concepts in general to students, is the complexity of the object oriented paradigm itself. A common approach to conveying complex abstract notions (such as algorithms or data structures) is the use of visualisations. This paper describes the and the design and implementation of the JOOPA2 tool for animation of the execution of simple object oriented (Java) programs in a 3D environment. The tool was developed for the purpose of supporting the teaching of object oriented concepts in an introductory level programming course. 1 Introduction A commonly cited difficultly of teaching computer science is the need to successfully convey a plethora of abstract concepts [?,?]. Such concepts include, for example, the notion of an algorithm and the relationship between an abstract data structure and the multitude of potential implementations. Recently, the Object Oriented (OO) programming paradigm has gained in popularity because of the perceived potential gain for code modularisation, encapsulation and component re-use. The popularity of the OO paradigm in industry has led to the adoption of OO programming languages in university computer science courses. In particular, the Java language is increasingly being taught in university, because of its popularity in industry and the availabilty of support materials [?]. A natural consequence of the switch to teaching OO programming is the need to convey the abstract concepts involved in the paradigm and in the case of Java, to convey these concepts alongside the notion of a procedural imperative programming language. However, the teaching of this paradigm, with multiple abstract concepts to be conveyed, is non-trivial. Students struggle to grasp the notion of an object oriented environment, the necessity of the distinction between a class and an object and the relationship between the paradigm and the textual description (their source code). A common technique when teaching abstract concepts in any subject is to use visualisations that are able to guide novice students through the main features [?,?]. For the OO paradigm, a commonly employed graphical tool is the Unified Modelling Language (UML) [4]. Students use UML to associate 1

2 graphical visualisations of program structure with the Java source code implementation of their program. A disadvantage of the UML is that it is intended for a static medium and thus is limited in its ability to visualise dynamic program execution. An alternative approach is to use animation to provide dynamic visualisations of software and/or algorithms in execution. The remainder of this paper is structured as follows. Section 1.1 discusses previous approaches to the use of visualisation for teaching computer science, including visualisation of algorithms and software. Section 2 describes the design considerations for the JOOPA 2 tool with respect to supporting student learning of the Java programming language. Section 3 describes the architecture for the JOOPA 2 tool, which integrates an event driven, JDI debugger with a Java3D visualisation environment 1. Section 4 describes the aspects of the Java programming language currently visualised by the JOOPA 2 tool, whilst Section 5 describes future developments planned for the tool and Section 6 summarises the work presented in the paper. 1.1 Related Work An early attempt to produce a software animation package was the Brown University Algorithm Simulator and Animator (BALSA) [1]. Written in C, BALSA produced an animation of a program as it ran, coupled with a display of the code (usually written in Pascal) highlighting each line as it was executed. BALSA also incorporated a feature for displaying static data structures using dots and sticks as the animation of the algorithm progressed. BALSA illustrates how careful separation of purpose for animations prevents over cluttering the display with too much detail. No attempt was made to incorporate the data structures into the animation of the program as it was running, but the user could observe both simultaneously through two different views. A number of approaches have been made to the teaching of OO programming and design using visualisation techniques. The UML may be used to develop a comprehensive OO design, complete with class hierarchies, use case diagrams, and sequence diagrams amongst others [4]. The design can then be used to produce an outline implementation either manually or through an animation tool such as Together or BlueJ [?, 2]. UML can be considered as a notation that is highly adapted to the description of the design of complex OO systems, but that it is less suited to the teaching of OO concepts by itself. As the capabilities of domestically available machines have increased, a tendency towards using three-dimensional graphics for a variety of applications has increased. One such tool for algorithm animation is Polka-3D [?], which behaves in a similar manner to its predecessor, Polka for algorithm animation. More recently, work has been undertaken on visualising object oriented software in virtual reality environments, in order to provide users with an interactive, graphical environment for exploring the static aspects of a programs structure [3]. 1 To a certain degree, the tool is a re-implementation of the visualisations presented in its precursor, JOOPA1. However, the new version, provides visualisations of several aspects of the Java language not present in the original tool, and crucially, the automation of animation generation. 2

3 1.2 Motivation The tool described in this paper, JOOPA2, animates the classes and objects of Java programs as they are executed in a virtual machine. The animation occurs in a 3D environment, which allows a user to explore the relationships between classes, objects, methods and attributes as a program executes. The argued advantage of this approach is that a visualisation of the object oriented paradigm (as implemented in Java) is presented to a user for a program of their choice. The visualisation is combined with the procedural execution of the program to emphasise the dynamic nature of an object oriented program. The extra dimensionality afforded by a 3D visualisation also allows a user to interact and explore a program s environment, investigating object features and the relationship between objects. Users can also manipulate the layout of a program s visualisation, pausing execution to cluster entities of interest together as required. 2 Design Considerations 2.1 Integration with UML Given the intended use for the JOOPA tool as a teaching aid within an introductory Java programming course, it is desirable that the visualisations presented are consistent with other graphical notations employed in a course. In particular, the Unified Modelling Language (UML) is a commonly employed tool for teaching program design concepts for object oriented languages. UML includes commonly accepted graphical notations for classes, objects, references, fields, methods, and their respective labelling conventions. In addition, UML incorporates diagrams for static program design (class diagrams), as well as diagrams to illustrate program usage (activity diagrams) and likely method method sequence calls (sequence diagrams). The design of the JOOPA tools reflects these pre-existing conventions in order to enhance consistency across visualisations. In particular, notations for class and object visualisations are retained (in a 3D context) and labelling notations are modelled on UML. 2.2 Detail Level A problem associated with many visualisations of software is the need to reduce detail clutter so that the fundamental abstract concepts underlying the visualisation can be conveyed successfully. Detail clutter is the inclusion of multiple aspects of a program s features which detract from, rather than enhance, the understandability of a visualisation. A desirable feature of the JOOPA2 tool would be features which permit the user to conveniently configure the amount of detail rendered in a visualisation. 2.3 Relationship to other Representations Multiple representations of software are used during the teaching of a programming course. These include source code of high level languages, natural langauge descriptions of functionality and graphical notations such as UML. To 3

4 Figure 1: The architecture of the JOOPA 2 tool. A JDI based debugger generates debugging events from a target application. The events are passed to the animation engine, which renders a 3D representation of the Java application state. The 3D environment may be viewed by one or more user interfaces. enhance understandability of a new representation, it is desirable that conventions adopted in one representation occur elsewhere. This consistency supports students in making connections between different representations of a software artifact. 2.4 Teaching Support The JOOPA 2 visualisation tool is intended to support the teaching of object oriented concepts with respect to an introductory programming course. OO concepts are taught via the Java programming language. Teachers employing the tool to convey particular aspects of the OO paradigm through example programs. A desirable feature of the JOOPA2 tool would be the automatic conversion of simple target applications into visualisations for use in a teaching environment. The teacher would then be free to concentrate on writing the application to best illustrate the features they wish to convey. 3 System Architecture and Implementation Figure 1 illustrates the architecture of the JOOPA 2 tool. The core functionality of the tool is divided into two components, a Java Debug Interface (JDI) based debugger and an event driven visualisation engine. To initiate a visualisation of a program s execution, the debugger invokes the applications main() method within a Java Virtual Machine (JVM). The debugger is adapted from the com.sun.tools.example.trace application supplied with the Java Debug Platform Architecture package supplied by Sun. The current implementation employs the JVM. The debugger uses the JDI to request desired program events with the JVM. Events requested include: Class loaded to track the loading of new classes. Method entry to track thread stack push events. This event can also be used to identify new object instantations, since at the point of method entry the newly constructed object is assigned to the this field of the uppermost thread stack frame. 4

5 Figure 2: References from 3D engine entities to target entities in the JVM (via degugger and JDI). Method exit to track thread stack pop events. Field modification to track changes to instance and static fields. Statement steps to track changes to method variables. A disadvantage of this approach (explained below) is that variable assignment changes in the visualisation may not occur in the right order. The debugger incorporates an event handler for each of the event types of interest. As events are collected from the JDI they are passed to the visualisation engine via the engine s event interface. The events are used to alter the visualisation engine s internal representation of the target application s state, and thus alter the 3D visualisation that is rendered to the viewer. The visualisation engine maintains data structures that map the state of the target application within the JVM. All entities within the JVM are mirrored by entities stored within the visualisation engine. Further, all entities within the visualisation engine maintain references to the corresponding entities within the JVM (via the JDI interface representation). The references are used to obtain information about the targets to support the construction of the 3D visualisation. For example, in the case of a method, the method s type, name, visibility, arguments and modifiers can be obtained by querying the debugger via the JDI. The relationship is illustrated in Figure 2. 3D mirror entities are thus used to generate visualisations of their respective targets within the JVM. Currently, the JOOPA2 tool maintains a visualisation of a single thread. A stack of method frames representations is maintained within the visualisation engine which mirrors the state of the target application thread (StackFrame3D). Each StackFrame3D stores references to 3D representations of variables. The engine maintains a store of loaded class (Class3D) representations and instantiated objects (Object3D). Both of these entity representations maintain stores of member methods and fields, with Class3D stores maintaining static members, and Object3D maintaining instance fields and methods. In the case of instance methods, a many to one relationship is created between 3D representations and the JVM entity. Arrays represent a special type of object in the visualisation, but are maintained as objects by the engine. To render a 3D visualisation of the target application state, a 3D universe is implemented using the Java 3D package [5]. Java 3D maintains a hierarchical 5

6 scene graph structure, to which all features of a 3D environment must be added, either for there 3D representation to be present (in the case of shapes), or for a components functionality to be executed (picking or translational behaviour, for example). JOOPA2 exploits this functionality by adding Object3D and Class3D entities to the scene at the scene root. Entity members (fields and methods) are added to the entities as sub-graphs. This allows clusters of shapes to manipulated collectively, by acting on the branches of the graph attached to the scene root, reflecting the structure of the Java OO paradigm itself. Multiple view platforms can be added to the scene graph, separately manipulated and rendered to separate canvases. This allows a user to set up different simultaneous view points on the state of the target application. Although the current visualisation engine only tracks a single application thread, this feature could in future allow the concurent execution of threads to be observed, a possibility that is discussed in Section 5. 4 Visualisations This section describes the current features of the Java programming language (with respect to OO concepts) currently implemented in the JOOPA2 tool. Changes to the visualisation are caused either by events that are passed from the debugger to the 3D engine, or through a query of the debugger for information regarding an entity, as described in Section Entity Types The type of an entity in a visualisation is represented by its colour. By default, void types (for methods are coloured grey). A user is able to preset colours for expected types. Colours for non-anticipated types are assigned randomly by the visualisation engine. More detail of the use of colour coding is explaining for each aspect of the visualisation presented below. 4.2 Class Load Figure 3 illustrates a loaded class representation in the 3D environment. The class visualisation is implemented to mimic the representation of classes in a UML class diagram. A flat rectangular shape is added to the scene, with the largest face divided into sections by horiztonal lines. The size of the class is scaled by the number of static members present, giving some (crude) indication of the complexity and size of the class. The upper most section of the face contains the local label for the class, in this case HelloWorld. The section immediately lower to this lists the static methods associated with the class, represented by a small sphere colour coded for the methods return type. In the example, two methods are listed, the main(string[]) method and, the static constructor for the class, <clinit>(). The method label consists of the identifier of the method, any parameters and the return type. Below the methods, the static fields of the class are listed, represented by a box and a label. Each box is labelled with the field s identitier and (local) type. Notice that primitive fields are treated differently to reference fields in the visualisation. Primitive fields (int, boolean etc) are represented by hollow 6

7 Figure 3: Representation of a loaded class (HelloWorld) in the JOOPA2 tool. The visualisation is modelled on UML class diagram notations, with static methods and fields listed on the face of the class. boxes, in which the current value of the field is stored. Reference fields are represented by solid boxes from which association lines to relevant object are drawn (see Section 4.5. This differentiation between references and primitives is also maintained for method variables. 4.3 Object Instantiation Figure 4 illustrates an instantiated object in the visualisation. An object are represented by regular cubes, the size of which are scaled by the number of instance members the object s class possesses. As for classes, this gives some indication as to the size and complexity of the object s class. Instance methods for the object are visualised in a similar manner to that of static methods for classes, although the methods are listed down the rear right hand edge of the object. Fields are visualised along the front left hand edge. This layout is intended to differentiate objects from classes in the visualisation. For the purposes of the visualisation, constructors are treated as being associated with class instances, since the constructor operates within the scope of an instantiated object. 4.4 Arrays Visualisations of arrays in JOOPA are presented as a grouping of variables of the appropriate type. Figure 4.5 References Figure 6 illustrates a reference from an array s 0th index and a target object. The assignment of a object to a variable (a field, a local method variable, or an array element) is visualised by the drawing of a line from the representation 7

8 Figure 4: An instantated object in the 3D visualiation. THe object includes visualations for non static members (methods and fields). The object is labelled and colour coded for its type (HelloWorld). (a) A primitive array of type int and size 4. All elements of the array are currently empty. (b) A reference array of type HelloWorld and size 4. Visualisations of references to HelloWorld objects are visible. Figure 5: Visualisation of arrays in JOOPA 2 of the source variable to the target object. The leading tip of the reference line is represented by an arrow head to indicate the reference s direction and the line is colour coded by the variable s type (rather than the target s type), to emphasise the notion that an object is treated as the type declared for the variable. When a variable is re-assigned to another object, the reference line is removed from the animation. The reference line shape is implemented as a bezier spline. The control points of the spline (other than the origin and end points) are configurable. 4.6 Method Invocation and Execution Figure 7 illustrates the visualisation of a method execution in the JOOPA 2 tool. As the statements of a method are executed, a method execution edge is extended from the sphere representation of a method in an object or class. Local variables are placed along the edge as it extends and as they are declared. Parameters are treated as method variables and so are placed on the method execution edge when the method is first executed. To cope with multiple invocations of the same method on the same object or class, the angle of the execution edge is varied for each call. An animation is also include to visualise the call of one method by another. In Figure 7, the origin of a method call (to a HelloWorld constructor) is visible 8

9 Figure 6: Visualisation of a reference from the 0th index of an array to a HelloWorld object. The reference is represented by an arrow reaching from the point of origin ot the upper, rear left hand vertex of the target object. Figure 7: Execution of the static main method from the HelloWorld class. The method is represented by a line with terminated by a small sphere (the point of execution reached). Arguments are visualised as variables, in this case String []: args. A variable has also been declared - HelloWorld:hh. leaving the execution point of the main method. The extension of the call edge is similr to that of a reference edge, except that the end of the call edge is a sphere (the point of execution) rather than an arrow. A user can follow the sequence of method calls from the main method to the current point of execution. 4.7 Layout Control The initial allocation of entities to space within the 3D environment is controlled by a Layout Manager. The Layout Manager is a pluggable component of the visualisation engine, and as such can implement layout policies as desired by a user. Each time a new entity is to be placed into the visualisation, the The default layout manager implements a basic 3D space filling algorithm. 9

10 4.8 Tool Configuration and Control The visualisation can be controlled either by manipulating one of the views on the visualisation (view location and orientation); passing program control events to the debugger (halt, step forward etc); or by manipulating the 3D representation (object placement). To control the visualisation s 3D environment, a simple GUI was implemented, which controlled the positioning of a user s view platform with respect to the program visualisation. The view control uses the utility classes provided with Java 3D to permit the user to rotate and translate their perspective. In addition, the user is able to drag individual objects or classes within the visualisation. This feature, may be useful, for example, if a tutor wishes to concetrate on one particular object in view, by removing other objects from cluttering the view. Execution of the visualisation is controlled by issuing instructions to the debugger. The debugger s execution speed can be controlled, as well as the ability to play and pause execution. One current limitation is that it is not possible to step back through a program. In addition to controlling flow, the JDI can be used to register class exclusion patterns with the JVM. The JVM suppresses event generation for a class with a fully qualified name that matches one of the exclusion patterns. This feature can be used to reduce the complexity of a visualisation by omitting classes from standard libraries, or non-essential support libraries employed by the application. Finally, functionality is included to permit image and video capture of animations in progress. This feature is useful for producing pre-recorded visualisations, which can be incorporated into a lecture course, rather than risking software failure or a live visualisation. 5 Future Work This paper describes a work in progress. Several features are planned for future incorporation in the JOOPA2 tool, in order to extend the scope of program aspects that can be captured. Immediately planned extensions include: Threading and Multiple Views The JOOPA2 tool currently tracks only a single thread (main) during execution. However, the design of the visualisation engine would readily support the representation of multiple threads, whilst the debugger currently ignores events for other threads. An extension to this would be the provision of multiple views on the program so that concurrently executing threads could be observed in separate GUI windows. Thread of Execution Tracking Currently, the user is required to manually track the thread of execution across a program. A potential extension would be to have the user s view platform automatically track the thread of execution, adjusting for zoom as necessary, etc. Method return values Currently, method return values are not explicitly visualised in JOOPA2. One approach would be for the method call edge on retraction to pass a reference to the return value to the calling method. 10

11 A future feature for visualisation under consideration is the potential to illustrate method logic under execution (if and for statements etc), using a more complex method execution visualisation. For, example, a if statement could be represented by a fork in a method execution edge, whilst a for statement could be visualised as a circle. The user would be able to track the precise point in the execution of a program from within the 3D environment. As the list of features of Java visualised by JOOPA becomes more comprehensive, there is potential to investigate the use of program visualisation in 3D for the purposes of debugging. Already, many IDEs incorporate visual aspects to debuggers. A potential avenue of research is the extent to which the 3D visualisation enhances this functionality. In addition, trials of the tool are planned for use in an introductory level programming course. The intent is to assess the usefulness to both students and teachers of providing a visualisation too for programs written in Java to enhance the understanding of the OO paradigm. 6 Summary This paper describes the motivation, design considerations and implementation of the JOOPA2 tool. The tool provides 3D visualisations of the execution of programs written in the Java object-oriented programming language, including representation of classes, objects, references and method execution. Considerable future work to extend the tool is planned and it is intended to assess the usefulness of the tool for teaching object-oriented programming concepts and to provide a 3D environment for debugging purposes. References [1] Sunita Asija. Visualization of object-oriented design models. Master s thesis, Depaul University, Chicago, USA, December [2] M. Klling. The BlueJ Reference Manual. BlueJ, version 0.1 for bluej version 1.1 edition, July [3] Jonathan I. Maletic, Andrian Marcus, Greg Dunlap, and Jason Leigh. Visualizing object-oriented software in virtual reality. pages 26 38, [4] James Rumbaugh, Ivar Jacobson, and Grady Booch. The UML Reference Manual. Addison Wesley, December [5] Henry Sowizral, Kevin Rushforth, and Michael Deering. The Java 3D API Specification. Addison Wesley, second edition,

Going Interactive: Combining Ad-Hoc and Regression Testing

Going Interactive: Combining Ad-Hoc and Regression Testing Going Interactive: Combining Ad-Hoc and Regression Testing Michael Kölling 1, Andrew Patterson 2 1 Mærsk Mc-Kinney Møller Institute, University of Southern Denmark, Denmark [email protected] 2 Deakin University,

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

Fundamentals of Java Programming

Fundamentals of Java Programming Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors

More information

Gadget: A Tool for Extracting the Dynamic Structure of Java Programs

Gadget: A Tool for Extracting the Dynamic Structure of Java Programs Gadget: A Tool for Extracting the Dynamic Structure of Java Programs Juan Gargiulo and Spiros Mancoridis Department of Mathematics & Computer Science Drexel University Philadelphia, PA, USA e-mail: gjgargiu,smancori

More information

How To Teach Object Oriented Programming At An Introductory Level Course

How To Teach Object Oriented Programming At An Introductory Level Course 149 TEACHING OBJECT ORIENTED PROGRAMMING AT THE INTRODUCTORY LEVEL Mehmet C. OKUR * ABSTRACT Teaching object oriented programming has become a rapidly expanding preference at various educational environments.

More information

The Java Series. Java Essentials I What is Java? Basic Language Constructs. Java Essentials I. What is Java?. Basic Language Constructs Slide 1

The Java Series. Java Essentials I What is Java? Basic Language Constructs. Java Essentials I. What is Java?. Basic Language Constructs Slide 1 The Java Series Java Essentials I What is Java? Basic Language Constructs Slide 1 What is Java? A general purpose Object Oriented programming language. Created by Sun Microsystems. It s a general purpose

More information

Design and UML Class Diagrams

Design and UML Class Diagrams Design and UML Class Diagrams 1 Suggested reading: Practical UML: A hands on introduction for developers http://dn.codegear.com/article/31863 UML DistilledCh. 3, by M. Fowler How do people draw / write

More information

Object Oriented Programming. Risk Management

Object Oriented Programming. Risk Management Section V: Object Oriented Programming Risk Management In theory, there is no difference between theory and practice. But, in practice, there is. - Jan van de Snepscheut 427 Chapter 21: Unified Modeling

More information

History OOP languages Year Language 1967 Simula-67 1983 Smalltalk

History OOP languages Year Language 1967 Simula-67 1983 Smalltalk History OOP languages Intro 1 Year Language reported dates vary for some languages... design Vs delievered 1957 Fortran High level programming language 1958 Lisp 1959 Cobol 1960 Algol Structured Programming

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 Visualization Tools for Component Reuse

Software Visualization Tools for Component Reuse Software Visualization Tools for Component Reuse Craig Anslow Stuart Marshall James Noble Robert Biddle 1 School of Mathematics, Statistics and Computer Science, Victoria University of Wellington, New

More information

PHP Code Design. The data structure of a relational database can be represented with a Data Model diagram, also called an Entity-Relation diagram.

PHP Code Design. The data structure of a relational database can be represented with a Data Model diagram, also called an Entity-Relation diagram. PHP Code Design PHP is a server-side, open-source, HTML-embedded scripting language used to drive many of the world s most popular web sites. All major web servers support PHP enabling normal HMTL pages

More information

CPS122 Lecture: State and Activity Diagrams in UML

CPS122 Lecture: State and Activity Diagrams in UML CPS122 Lecture: State and Activity Diagrams in UML Objectives: last revised February 14, 2012 1. To show how to create and read State Diagrams 2. To introduce UML Activity Diagrams Materials: 1. Demonstration

More information

How To Design Software

How To Design Software The Software Development Life Cycle: An Overview Presented by Maxwell Drew and Dan Kaiser Southwest State University Computer Science Program Last Time The design process and design methods Design strategies

More information

A TOOL FOR DATA STRUCTURE VISUALIZATION AND USER-DEFINED ALGORITHM ANIMATION

A TOOL FOR DATA STRUCTURE VISUALIZATION AND USER-DEFINED ALGORITHM ANIMATION A TOOL FOR DATA STRUCTURE VISUALIZATION AND USER-DEFINED ALGORITHM ANIMATION Tao Chen 1, Tarek Sobh 2 Abstract -- In this paper, a software application that features the visualization of commonly used

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

Semantic Object Language Whitepaper Jason Wells Semantic Research Inc.

Semantic Object Language Whitepaper Jason Wells Semantic Research Inc. Semantic Object Language Whitepaper Jason Wells Semantic Research Inc. Abstract While UML is the accepted visual language for object-oriented system modeling, it lacks a common semantic foundation with

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

UML basics: An introduction to the Unified Modeling Language

UML basics: An introduction to the Unified Modeling Language Copyright Rational Software 2003 http://www.therationaledge.com/content/jun_03/f_umlintro_db.jsp UML basics: An introduction to the Unified Modeling Language by Donald Bell IBM Global Services Way back

More information

Glossary of Object Oriented Terms

Glossary of Object Oriented Terms Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction

More information

The structured application of advanced logging techniques for SystemVerilog testbench debug and analysis. By Bindesh Patel and Amanda Hsiao.

The structured application of advanced logging techniques for SystemVerilog testbench debug and analysis. By Bindesh Patel and Amanda Hsiao. Logging makes sense for testbench debug The structured application of advanced logging techniques for SystemVerilog testbench debug and analysis. By Bindesh Patel and Amanda Hsiao. SystemVerilog provides

More information

VisuSniff: A Tool For The Visualization Of Network Traffic

VisuSniff: A Tool For The Visualization Of Network Traffic VisuSniff: A Tool For The Visualization Of Network Traffic Rainer Oechsle University of Applied Sciences, Trier Postbox 1826 D-54208 Trier +49/651/8103-508 [email protected] Oliver Gronz University

More information

University of Twente. A simulation of the Java Virtual Machine using graph grammars

University of Twente. A simulation of the Java Virtual Machine using graph grammars University of Twente Department of Computer Science A simulation of the Java Virtual Machine using graph grammars Master of Science thesis M. R. Arends, November 2003 A simulation of the Java Virtual Machine

More information

UML for C# Modeling Basics

UML for C# Modeling Basics UML for C# C# is a modern object-oriented language for application development. In addition to object-oriented constructs, C# supports component-oriented programming with properties, methods and events.

More information

How To Draw A Cell Phone Into A Cellphone In Unminimal Diagram (Uml)

How To Draw A Cell Phone Into A Cellphone In Unminimal Diagram (Uml) UML Tutorial: Collaboration Diagrams Robert C. Martin Engineering Notebook Column Nov/Dec, 97 In this column we will explore UML collaboration diagrams. We will investigate how they are drawn, how they

More information

KITES TECHNOLOGY COURSE MODULE (C, C++, DS)

KITES TECHNOLOGY COURSE MODULE (C, C++, DS) KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php [email protected] [email protected] Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL

More information

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB September Case Studies of Running the Platform NetBeans UML Servlet JSP GlassFish EJB In this project we display in the browser the Hello World, Everyone! message created in the session bean with servlets

More information

A UML Introduction Tutorial

A UML Introduction Tutorial A UML Introduction Tutorial 1/27/08 9:55 PM A UML Introduction Tutorial In this tutorial you will learn about the fundamentals of object oriented modelling, the Unified Modelling Language and the software

More information

Visualising Java Data Structures as Graphs

Visualising Java Data Structures as Graphs Visualising Java Data Structures as Graphs John Hamer Department of Computer Science University of Auckland [email protected] John Hamer, January 15, 2004 ACE 2004 Visualising Java Data Structures

More information

Using UML Part Two Behavioral Modeling Diagrams

Using UML Part Two Behavioral Modeling Diagrams UML Tutorials Using UML Part Two Behavioral Modeling Diagrams by Sparx Systems All material Sparx Systems 2007 Sparx Systems 2007 Page 1 Trademarks Object Management Group, OMG, Unified Modeling Language,

More information

Object Oriented program execution Visualization of Dynamic Program

Object Oriented program execution Visualization of Dynamic Program Object Oriented program execution Visualization of Dynamic Program Kees Huizing Ruurd Kuiper Pieter Deelen Huub van de Wetering Frank van Ham Technische Universiteit Eindhoven Netherlands IPA Herfst 2008

More information

Implementação. Interfaces Pessoa Máquina 2010/11. 2009-11 Salvador Abreu baseado em material Alan Dix. Thursday, June 2, 2011

Implementação. Interfaces Pessoa Máquina 2010/11. 2009-11 Salvador Abreu baseado em material Alan Dix. Thursday, June 2, 2011 Implementação Interfaces Pessoa Máquina 2010/11 2009-11 baseado em material Alan Dix 1 Windowing systems Architecture Layers Higher level Tool UI Toolkit (Widgets) Window System OS Application Hardware

More information

IRA 423/08. Designing the SRT control software: Notes to the UML schemes. Andrea Orlati 1 Simona Righini 2

IRA 423/08. Designing the SRT control software: Notes to the UML schemes. Andrea Orlati 1 Simona Righini 2 Designing the SRT control software: Notes to the UML schemes Andrea Orlati 1 Simona Righini 2 1 - I.N.A.F. Istituto di Radioastronomia. 2 Dip. Astronomia - Università degli Studi di Bologna. Dicembre 2008

More information

Part 1 Foundations of object orientation

Part 1 Foundations of object orientation OFWJ_C01.QXD 2/3/06 2:14 pm Page 1 Part 1 Foundations of object orientation OFWJ_C01.QXD 2/3/06 2:14 pm Page 2 1 OFWJ_C01.QXD 2/3/06 2:14 pm Page 3 CHAPTER 1 Objects and classes Main concepts discussed

More information

Model Simulation in Rational Software Architect: Business Process Simulation

Model Simulation in Rational Software Architect: Business Process Simulation Model Simulation in Rational Software Architect: Business Process Simulation Mattias Mohlin Senior Software Architect IBM The BPMN (Business Process Model and Notation) is the industry standard notation

More information

Design and UML Class Diagrams. Suggested reading: Practical UML: A hands on introduction for developers http://dn.codegear.

Design and UML Class Diagrams. Suggested reading: Practical UML: A hands on introduction for developers http://dn.codegear. Design and UML Class Diagrams Suggested reading: Practical UML: A hands on introduction for developers http://dn.codegear.com/article/31863 UML Distilled Ch. 3, by M. Fowler 1 Big questions What is UML?

More information

UML SUPPORTED SOFTWARE DESIGN

UML SUPPORTED SOFTWARE DESIGN UML SUPPORTED SOFTWARE DESIGN Darko Gvozdanović, Saša Dešić, Darko Huljenić Ericsson Nikola Tesla d.d., Krapinska 45, HR-0000 Zagreb, Croatia, tel.: +385 365 3889, faks: +385 365 3548, e-mail: [email protected]

More information

Evaluating OO-CASE tools: OO research meets practice

Evaluating OO-CASE tools: OO research meets practice Evaluating OO-CASE tools: OO research meets practice Danny Greefhorst, Matthijs Maat, Rob Maijers {greefhorst, maat, maijers}@serc.nl Software Engineering Research Centre - SERC PO Box 424 3500 AK Utrecht

More information

6.1. Example: A Tip Calculator 6-1

6.1. Example: A Tip Calculator 6-1 Chapter 6. Transition to Java Not all programming languages are created equal. Each is designed by its creator to achieve a particular purpose, which can range from highly focused languages designed for

More information

MiniDraw Introducing a framework... and a few patterns

MiniDraw Introducing a framework... and a few patterns MiniDraw Introducing a framework... and a few patterns What is it? [Demo] 2 1 What do I get? MiniDraw helps you building apps that have 2D image based graphics GIF files Optimized repainting Direct manipulation

More information

Programming and Software Development (PSD)

Programming and Software Development (PSD) Programming and Software Development (PSD) Course Descriptions Fundamentals of Information Systems Technology This course is a survey of computer technologies. This course may include computer history,

More information

Java CPD (I) Frans Coenen Department of Computer Science

Java CPD (I) Frans Coenen Department of Computer Science Java CPD (I) Frans Coenen Department of Computer Science Content Session 1, 12:45-14:30 (First Java Programme, Inheritance, Arithmetic) Session 2, 14:45-16:45 (Input and Programme Constructs) Materials

More information

Oracle Forms Developer 10g: Build Internet Applications

Oracle Forms Developer 10g: Build Internet Applications Oracle University Contact Us: +966 1 1 2739 894 Oracle Forms Developer 10g: Build Internet Applications Duration: 5 Days What you will learn Leverage your investment by taking advantage of web technologies

More information

Syllabus for CS 134 Java Programming

Syllabus for CS 134 Java Programming - Java Programming Syllabus Page 1 Syllabus for CS 134 Java Programming Computer Science Course Catalog 2000-2001: This course is an introduction to objectoriented programming using the Java language.

More information

Object Oriented Databases. OOAD Fall 2012 Arjun Gopalakrishna Bhavya Udayashankar

Object Oriented Databases. OOAD Fall 2012 Arjun Gopalakrishna Bhavya Udayashankar Object Oriented Databases OOAD Fall 2012 Arjun Gopalakrishna Bhavya Udayashankar Executive Summary The presentation on Object Oriented Databases gives a basic introduction to the concepts governing OODBs

More information

Software Project Management and UML

Software Project Management and UML Software Project Management and UML Ali Bigdelou Computer Aided Medical Procedures (CAMP), Technische Universität München, Germany Outline Intro to Software Project Management Project Requirements Specification

More information

DataPA OpenAnalytics End User Training

DataPA OpenAnalytics End User Training DataPA OpenAnalytics End User Training DataPA End User Training Lesson 1 Course Overview DataPA Chapter 1 Course Overview Introduction This course covers the skills required to use DataPA OpenAnalytics

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

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

Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation

Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science updated 03/08/2012 Unit 1: JKarel 8 weeks http://www.fcps.edu/is/pos/documents/hs/compsci.htm

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

Introduction to Object-Oriented Programming

Introduction to Object-Oriented Programming Introduction to Object-Oriented Programming Programs and Methods Christopher Simpkins [email protected] CS 1331 (Georgia Tech) Programs and Methods 1 / 8 The Anatomy of a Java Program It is customary

More information

Building Interactive Animations using VRML and Java

Building Interactive Animations using VRML and Java Building Interactive Animations using VRML and Java FABIANA SALDANHA TAMIOSSO 1,ALBERTO BARBOSA RAPOSO 1, LÉO PINI MAGALHÃES 1 2,IVAN LUIZ MARQUES RICARTE 1 1 State University of Campinas (UNICAMP) School

More information

PIE. Internal Structure

PIE. Internal Structure PIE Internal Structure PIE Composition PIE (Processware Integration Environment) is a set of programs for integration of heterogeneous applications. The final set depends on the purposes of a solution

More information

SceneBeans: A Component-Based Animation Framework for Java

SceneBeans: A Component-Based Animation Framework for Java 1. Abstract SceneBeans: A Component-Based Animation Framework for Java Nat Pryce and Jeff Magee Department of Computing, Imperial College. {np2,jnm}@doc.ic.ac.uk DRAFT VERSION This paper presents SceneBeans,

More information

School of Computer Science

School of Computer Science School of Computer Science Computer Science - Honours Level - 2014/15 October 2014 General degree students wishing to enter 3000- level modules and non- graduating students wishing to enter 3000- level

More information

zen Platform technical white paper

zen Platform technical white paper zen Platform technical white paper The zen Platform as Strategic Business Platform The increasing use of application servers as standard paradigm for the development of business critical applications meant

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

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53 Preface xvi Part I Introduction and System Engineering 1 Chapter 1 Introduction 2 1.1 What Is Software Engineering? 2 1.2 Why Software Engineering? 3 1.3 Software Life-Cycle Activities 4 1.3.1 Software

More information

An Open Framework for Reverse Engineering Graph Data Visualization. Alexandru C. Telea Eindhoven University of Technology The Netherlands.

An Open Framework for Reverse Engineering Graph Data Visualization. Alexandru C. Telea Eindhoven University of Technology The Netherlands. An Open Framework for Reverse Engineering Graph Data Visualization Alexandru C. Telea Eindhoven University of Technology The Netherlands Overview Reverse engineering (RE) overview Limitations of current

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

DIABLO VALLEY COLLEGE CATALOG 2014-2015

DIABLO VALLEY COLLEGE CATALOG 2014-2015 COMPUTER SCIENCE COMSC The computer science department offers courses in three general areas, each targeted to serve students with specific needs: 1. General education students seeking a computer literacy

More information

Exercise 8: SRS - Student Registration System

Exercise 8: SRS - Student Registration System You are required to develop an automated Student Registration System (SRS). This system will enable students to register online for courses each semester. As part of the exercise you will have to perform

More information

Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.

Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner. Handout 1 CS603 Object-Oriented Programming Fall 15 Page 1 of 11 Handout 1 Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner. Java

More information

Design Pattern for the Adaptive Scheduling of Real-Time Tasks with Multiple Versions in RTSJ

Design Pattern for the Adaptive Scheduling of Real-Time Tasks with Multiple Versions in RTSJ Design Pattern for the Adaptive Scheduling of Real-Time Tasks with Multiple Versions in RTSJ Rodrigo Gonçalves, Rômulo Silva de Oliveira, Carlos Montez LCMI Depto. de Automação e Sistemas Univ. Fed. de

More information

Bitrix Site Manager 4.1. User Guide

Bitrix Site Manager 4.1. User Guide Bitrix Site Manager 4.1 User Guide 2 Contents REGISTRATION AND AUTHORISATION...3 SITE SECTIONS...5 Creating a section...6 Changing the section properties...8 SITE PAGES...9 Creating a page...10 Editing

More information

GRAFICA - A COMPUTER GRAPHICS TEACHING ASSISTANT. Andreas Savva, George Ioannou, Vasso Stylianou, and George Portides, University of Nicosia Cyprus

GRAFICA - A COMPUTER GRAPHICS TEACHING ASSISTANT. Andreas Savva, George Ioannou, Vasso Stylianou, and George Portides, University of Nicosia Cyprus ICICTE 2014 Proceedings 1 GRAFICA - A COMPUTER GRAPHICS TEACHING ASSISTANT Andreas Savva, George Ioannou, Vasso Stylianou, and George Portides, University of Nicosia Cyprus Abstract This paper presents

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

Designing with Exceptions. CSE219, Computer Science III Stony Brook University http://www.cs.stonybrook.edu/~cse219

Designing with Exceptions. CSE219, Computer Science III Stony Brook University http://www.cs.stonybrook.edu/~cse219 Designing with Exceptions CSE219, Computer Science III Stony Brook University http://www.cs.stonybrook.edu/~cse219 Testing vs. Debugging Testing Coding Does the code work properly YES NO 2 Debugging Testing

More information

INTERNET PROGRAMMING AND DEVELOPMENT AEC LEA.BN Course Descriptions & Outcome Competency

INTERNET PROGRAMMING AND DEVELOPMENT AEC LEA.BN Course Descriptions & Outcome Competency INTERNET PROGRAMMING AND DEVELOPMENT AEC LEA.BN Course Descriptions & Outcome Competency 1. 420-PA3-AB Introduction to Computers, the Internet, and the Web This course is an introduction to the computer,

More information

Introduction to Java

Introduction to Java Introduction to Java The HelloWorld program Primitive data types Assignment and arithmetic operations User input Conditional statements Looping Arrays CSA0011 Matthew Xuereb 2008 1 Java Overview A high

More information

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note Text book of CPET 545 Service-Oriented Architecture and Enterprise Application: SOA Principles of Service Design, by Thomas Erl, ISBN

More information

Designing Real-Time and Embedded Systems with the COMET/UML method

Designing Real-Time and Embedded Systems with the COMET/UML method By Hassan Gomaa, Department of Information and Software Engineering, George Mason University. Designing Real-Time and Embedded Systems with the COMET/UML method Most object-oriented analysis and design

More information

CS 4620 Practicum Programming Assignment 6 Animation

CS 4620 Practicum Programming Assignment 6 Animation CS 4620 Practicum Programming Assignment 6 Animation out: Friday 14th November 2014 due: : Monday 24th November 2014 1 Introduction In this assignment, we will explore a common topic in animation: key

More information

Overview of the Adobe Flash Professional CS6 workspace

Overview of the Adobe Flash Professional CS6 workspace Overview of the Adobe Flash Professional CS6 workspace In this guide, you learn how to do the following: Identify the elements of the Adobe Flash Professional CS6 workspace Customize the layout of the

More information

Aspect Oriented Strategy to model the Examination Management Systems

Aspect Oriented Strategy to model the Examination Management Systems Aspect Oriented Strategy to model the Examination Management Systems P.Durga 1, S.Jeevitha 2, A.Poomalai 3, Prof.M.Sowmiya 4 and Prof.S.Balamurugan 5 Department of IT, Kalaignar Karunanidhi Institute of

More information

Computing Concepts with Java Essentials

Computing Concepts with Java Essentials 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Computing Concepts with Java Essentials 3rd Edition Cay Horstmann

More information

Source Code Translation

Source Code Translation Source Code Translation Everyone who writes computer software eventually faces the requirement of converting a large code base from one programming language to another. That requirement is sometimes driven

More information

Object-Oriented Program Animation using JAN

Object-Oriented Program Animation using JAN Object-Oriented Program Animation using JAN Klaus-Peter Löhr [email protected] André Vratislavsky [email protected] Institut für Informatik Freie Universität Berlin ABSTRACT Concept and design of

More information

1. Relational database accesses data in a sequential form. (Figures 7.1, 7.2)

1. Relational database accesses data in a sequential form. (Figures 7.1, 7.2) Chapter 7 Data Structures for Computer Graphics (This chapter was written for programmers - option in lecture course) Any computer model of an Object must comprise three different types of entities: 1.

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

A Meeting Room Scheduling Problem

A Meeting Room Scheduling Problem A Scheduling Problem Objective Engineering, Inc. 699 Windsong Trail Austin, Texas 78746 512-328-9658 FAX: 512-328-9661 [email protected] http://www.oeng.com Objective Engineering, Inc., 1999-2007. Photocopying,

More information

JustClust User Manual

JustClust User Manual JustClust User Manual Contents 1. Installing JustClust 2. Running JustClust 3. Basic Usage of JustClust 3.1. Creating a Network 3.2. Clustering a Network 3.3. Applying a Layout 3.4. Saving and Loading

More information

Programming Language Constructs as Basis for Software Architectures

Programming Language Constructs as Basis for Software Architectures Programming Language Constructs as Basis for Software Architectures 1 From individual parts to components In the 50s: Machine/Assembler programs: bound to specific hardware In the 60s-70s: Higher programming

More information

Maya 2014 Basic Animation & The Graph Editor

Maya 2014 Basic Animation & The Graph Editor Maya 2014 Basic Animation & The Graph Editor When you set a Keyframe (or Key), you assign a value to an object s attribute (for example, translate, rotate, scale, color) at a specific time. Most animation

More information

An Overview of Java. overview-1

An Overview of Java. overview-1 An Overview of Java overview-1 Contents What is Java Major Java features Java virtual machine Java programming language Java class libraries (API) GUI Support in Java Networking and Threads in Java overview-2

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

Software Engineering Best Practices. Christian Hartshorne Field Engineer Daniel Thomas Internal Sales Engineer

Software Engineering Best Practices. Christian Hartshorne Field Engineer Daniel Thomas Internal Sales Engineer Software Engineering Best Practices Christian Hartshorne Field Engineer Daniel Thomas Internal Sales Engineer 2 3 4 Examples of Software Engineering Debt (just some of the most common LabVIEW development

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

Technical paper review. Program visualization and explanation for novice C programmers by Matthew Heinsen Egan and Chris McDonald.

Technical paper review. Program visualization and explanation for novice C programmers by Matthew Heinsen Egan and Chris McDonald. Technical paper review Program visualization and explanation for novice C programmers by Matthew Heinsen Egan and Chris McDonald Garvit Pahal Indian Institute of Technology, Kanpur October 28, 2014 Garvit

More information

Parameter Passing in Pascal

Parameter Passing in Pascal Parameter Passing in Pascal Mordechai Ben-Ari Department of Science Teaching Weizmann Institute of Science Rehovot 76100 Israel [email protected] Abstract This paper claims that reference parameters

More information

[1] http://en.wikipedia.org/wiki/first-mover_advantage [2] http://www.acunote.com

[1] http://en.wikipedia.org/wiki/first-mover_advantage [2] http://www.acunote.com -Gene Sher Software Development Processes: Those in engineering and science will sooner or later either be members of teams solving some large project, or be managing teams solving some large project.

More information

Practical Data Visualization and Virtual Reality. Virtual Reality VR Software and Programming. Karljohan Lundin Palmerius

Practical Data Visualization and Virtual Reality. Virtual Reality VR Software and Programming. Karljohan Lundin Palmerius Practical Data Visualization and Virtual Reality Virtual Reality VR Software and Programming Karljohan Lundin Palmerius Synopsis Scene graphs Event systems Multi screen output and synchronization VR software

More information

HTML5 Data Visualization and Manipulation Tool Colorado School of Mines Field Session Summer 2013

HTML5 Data Visualization and Manipulation Tool Colorado School of Mines Field Session Summer 2013 HTML5 Data Visualization and Manipulation Tool Colorado School of Mines Field Session Summer 2013 Riley Moses Bri Fidder Jon Lewis Introduction & Product Vision BIMShift is a company that provides all

More information

PART-A Questions. 2. How does an enumerated statement differ from a typedef statement?

PART-A Questions. 2. How does an enumerated statement differ from a typedef statement? 1. Distinguish & and && operators. PART-A Questions 2. How does an enumerated statement differ from a typedef statement? 3. What are the various members of a class? 4. Who can access the protected members

More information