Maslab Software 2010

Size: px
Start display at page:

Download "Maslab Software 2010"

Transcription

1 Maslab Software 2010 Bhaskar Mookerji (and Maslab staff of yesteryear) Mobile Autonomous Systems Laboratory 6 January 2010 Bhaskar Mookerji (MIT) Software January / 26

2 Outline 1 Development Cycle Basic Ideas Example: Finite State Machine 2 Useful Java Tools Build Tools ant Debugging jdb Unit Testing junit 3 Miscellaneous Java libraries in python jython Version Control git and svn Performance Issues 4 Conclusions Bhaskar Mookerji (MIT) Software January / 26

3 Outline Development Cycle Basic Ideas 1 Development Cycle Basic Ideas Example: Finite State Machine 2 Useful Java Tools Build Tools ant Debugging jdb Unit Testing junit 3 Miscellaneous Java libraries in python jython Version Control git and svn Performance Issues 4 Conclusions Bhaskar Mookerji (MIT) Software January / 26

4 Development Cycle Basic Ideas Implementation Sequence 1 Open a text editor to edit a source code file. 2 Write class declaration, method declarations, annotated with comments. 3 Fill in source code. 4 Compile. 5 Fix compile errors and repeat compilation until successful. 6 Run and debug behaviors. 7 Back up files into version control. emacs MyExample.java Adjust your /.emacs file Bhaskar Mookerji (MIT) Software January / 26

5 Development Cycle Basic Ideas Implementation Sequence 1 Open a text editor to edit a source code file. 2 Write class declaration, method declarations, annotated with comments. 3 Fill in source code. 4 Compile. 5 Fix compile errors and repeat compilation until successful. 6 Run and debug behaviors. 7 Back up files into version control. Bhaskar Mookerji (MIT) Software January / 26

6 Development Cycle Basic Ideas Implementation Sequence 1 Open a text editor to edit a source code file. 2 Write class declaration, method declarations, annotated with comments. 3 Fill in source code. 4 Compile. 5 Fix compile errors and repeat compilation until successful. 6 Run and debug behaviors. 7 Back up files into version control. Java API APIs for Maslab, OrcBoard Sun s Java Tutorial Ed Faulkner s Java Reference Bhaskar Mookerji (MIT) Software January / 26

7 Development Cycle Basic Ideas Implementation Sequence 1 Open a text editor to edit a source code file. 2 Write class declaration, method declarations, annotated with comments. 3 Fill in source code. 4 Compile. 5 Fix compile errors and repeat compilation until successful. 6 Run and debug behaviors. 7 Back up files into version control. javac MyExample.java Produces MyExample.class if successful make, Ant Bhaskar Mookerji (MIT) Software January / 26

8 Development Cycle Basic Ideas Implementation Sequence 1 Open a text editor to edit a source code file. 2 Write class declaration, method declarations, annotated with comments. 3 Fill in source code. 4 Compile. 5 Fix compile errors and repeat compilation until successful. 6 Run and debug behaviors. 7 Back up files into version control. Bhaskar Mookerji (MIT) Software January / 26

9 Development Cycle Basic Ideas Implementation Sequence 1 Open a text editor to edit a source code file. 2 Write class declaration, method declarations, annotated with comments. 3 Fill in source code. 4 Compile. 5 Fix compile errors and repeat compilation until successful. 6 Run and debug behaviors. 7 Back up files into version control. BotClient, OrcSpy jdb, junit Bhaskar Mookerji (MIT) Software January / 26

10 Development Cycle Basic Ideas Implementation Sequence 1 Open a text editor to edit a source code file. 2 Write class declaration, method declarations, annotated with comments. 3 Fill in source code. 4 Compile. 5 Fix compile errors and repeat compilation until successful. 6 Run and debug behaviors. 7 Back up files into version control. svn, cvs Bhaskar Mookerji (MIT) Software January / 26

11 Development Cycle Basic Ideas Design Principles Motivation Coding a Maslab Robot is a formidable, multi-person project. Good design is critical! This ensures... easier debugging. different team members code all work together. one person s changes doesn t break another team member s code. Bhaskar Mookerji (MIT) Software January / 26

12 Development Cycle Modularity and Design Basic Ideas Modular design... provides abstraction. gives up fine-control abilities, but makes code much more manageable. The design process requires... top-down vs. bottom-up thinking. specifications for each module. implementation for modules. testing each module separately as it is being written. testing overall system for functionality. Bhaskar Mookerji (MIT) Software January / 26

13 Development Cycle Example: Finite State Machine Robot Update(): void GetFSM(): StateMach. <parameter> owner PreviousState StateMachine<Robot> SetGlobalState(State* ): void SetCurrentState(State*): void Update(Robot* ): void ChangeState(State*): void Revert2Previous(Robot*): void CurrentState GlobalState GlobalState CurrentState Execute(Owner*) Execute(Owner*) State<Robot> Enter(Robot* ): void Execute(Robot*): void Exit(Robot* ): void aglobalstate<robot> Enter(Robot* ): void Execute(Robot*): void Exit(Robot* ): void Wander<Robot> Enter(Robot* ): void Execute(Robot*): void Exit(Robot* ): void Turning<Robot> Enter(Robot* ): void Execute(Robot*): void Exit(Robot* ): void FetchingBall<Robot> Enter(Robot* ): void Execute(Robot*): void Exit(Robot* ): void uorc Actions Bhaskar Mookerji (MIT) Software January / 26

14 Development Cycle Writing Good Specifications Example: Finite State Machine Into each specification there should be... a synopsis of classes and methods. how methods are called. restrictions on argument values. the return value and effect of calling the method. Avoid... code implementation details. lengthy discourse. Bhaskar Mookerji (MIT) Software January / 26

15 Outline Useful Java Tools Build Tools ant 1 Development Cycle Basic Ideas Example: Finite State Machine 2 Useful Java Tools Build Tools ant Debugging jdb Unit Testing junit 3 Miscellaneous Java libraries in python jython Version Control git and svn Performance Issues 4 Conclusions Bhaskar Mookerji (MIT) Software January / 26

16 Useful Java Tools Build Tools ant ant is Sun s build system for Java executables. If you re not aware already, there s a sample.xml build file at 1 It includes options for ant build/clean/upload. 2 Consider making different options for running your robot. Good tutorials at with some additional discussion on library dependencies Bhaskar Mookerji (MIT) Software January / 26

17 Useful Java Tools Build Tools ant <! Oh man! you can d e f i n e v a r i a b l e s! > < p r o p e r t y name= " robotip " value= " " / > < p r o p e r t y name= " d e s t D i r " value= " / home / maslab " / > < p r o p e r t y name= " username " value= " maslab " / > < t a r g e t name= " b u i l d " > <! This does deep dependency checking on class f i l e s > <depend s r c d i r = ". " cache= " depcache " closure=" t r u e " / > <! This compiles a l l the java > <javac s r c d i r = ". " i n c l u d e s = " /. java " debug= " t r u e " classpath=" / mit / / / maslab. j a r :. " / > < / t a r g e t > <!... and a l l s o r t s of shorthand > < t a r g e t name= " upload " depends= " b u i l d " > <exec executable= " rsync " > <arg l i n e = " e ssh avr. ${ username }@${ robotip } : ${ d e s t D i r } " / > < / exec> < / t a r g e t > Bhaskar Mookerji (MIT) Software January / 26

18 Useful Java Tools Debugging jdb jdb allows in-line debugging of Java applications. There are two ways of doing this. 1 Running jdb to launch a Java application and start a debug session on that application. 2 Running jdb to connect to a separately launched Java application and start a debug session on that application. Resources: 1 Great tutorials: javaqa/ /04-qa-0623-jdb.html 2 More detailed: 3 Sun Reference: tooldocs/solaris/jdb.html Bhaskar Mookerji (MIT) Software January / 26

19 An example Useful Java Tools Debugging jdb > jdb TestMe > I n i t i a l i z i n g jdb... > 0 xaa:class<testme> > methods TestMe void main ( java. lang. S t r i n g [ ] ) void < i n i t > ( ) i n t g e t I n t _ v a l u e ( ) java. lang. S t r i n g g e t S t r i n g _ v a l u e ( ) void s e t I n t _ v a l u e ( i n t ) void s e t S t r i n g _ v a l u e ( java. lang. S t r i n g ) java. lang. S t r i n g t o S t r i n g ( ) > stop i n TestMe. main Breakpoint set i n javaworld. TestMe. main > run run javaworld. TestMe running Bhaskar Mookerji... (MIT) Software January / 26

20 An example Useful Java Tools Debugging jdb main [ 1 ] l i s t 6 p r i v a t e S t r i n g s t r i n g _ v a l u e ; 7 8 p u b l i c s t a t i c void main ( S t r i n g [ ] args ) 9 { 10 => TestMe testme = new TestMe ( ) ; 11 testme. s e t I n t _ v a l u e ( 1 ) ; 12 testme. s e t S t r i n g _ v a l u e ( " t e s t " ) ; i n t i n t e g e r = testme. g e t I n t _ v a l u e ( ) ; main [ 1 ] main [ 1 ] step main [ 1 ] Breakpoint h i t : javaworld. TestMe. < i n i t > ( TestMe:20 ) main [ 1 ] l o c a l s Method arguments: Local v a r i a b l e s : t Bhaskar h i s Mookerji = S t (MIT) r i n g v a l u e : n usoftware l l i n2010 t v a l u e : 0 6 January / 26

21 Useful Java Tools Unit Testing junit junit allows you to check the expected results of specific program execution routines and inputs. Resources: 1 Cookbook example: http: //junit.sourceforge.net/doc/cookbook/cookbook.htm 2 Detailed tutorial: documentation/tutorials/docsystem/build/ tutorials/junit/junit.html Bhaskar Mookerji (MIT) Software January / 26

22 Usage Useful Java Tools Unit Testing junit Steps are basic... 1 Annotate a method 2 When you want to check a value, import org.junit.assert.* statically, call asserttrue() and pass a boolean that is true if the test succeeds. Checking that an add method public void simpleadd ( ) { Money m12chf= new Money(12, "CHF" ) ; Money m14chf= new Money(14, "CHF" ) ; Money expected= new Money(26, "CHF" ) ; Money r e s u l t = m12chf. add (m14chf) ; asserttrue ( expected. equals ( r e s u l t ) ) ; } Run with java org.junit.runner.junitcore TestClass.class Bhaskar Mookerji (MIT) Software January / 26

23 Outline Miscellaneous Java libraries in python jython 1 Development Cycle Basic Ideas Example: Finite State Machine 2 Useful Java Tools Build Tools ant Debugging jdb Unit Testing junit 3 Miscellaneous Java libraries in python jython Version Control git and svn Performance Issues 4 Conclusions Bhaskar Mookerji (MIT) Software January / 26

24 Miscellaneous Java libraries in python jython What if I want to program in Python? Rumors of pyorc have been greatly exaggerated. You can use the JVM implementation of Python to import Java uorc libraries into a Python environment... import orc. ; import orc. camera. ; public class CameraRobot { } public s t a t i c void main ( S t r i n g args [ ] ) { Camera cam = Camera. makecamera ( ) ; BufferedImage img = cam. capture ( ) ; } Bhaskar Mookerji (MIT) Software January / 26

25 Miscellaneous Java libraries in python jython What if I want to program in Python?... and use this instead: from o r c. camera import Camera as cam from java. awt import imag as imag cam = Camera. makecamera ( ) img = cam. capture ( ) Bhaskar Mookerji (MIT) Software January / 26

26 Miscellaneous Java libraries in python jython Advantages: Concise, dynamically-typed, interpreted language High-level data types Shorter code, faster development time Disadvantages: Dude, aren t interpreted languages slow? 1 Benchmarks: 1 CPython 2.3 and Jython: 75% slower. 2 CPython 2.3 and JVM 1.4: 1 10 times slower. 2 Choose your battles with computationally intensive tasks. Slightly unknown territory for the staff Problems with dependencies and data types in Java Bhaskar Mookerji (MIT) Software January / 26

27 Miscellaneous Java libraries in python jython Jython Resources Jython: Python: Introduction: http: //onjava.com/pub/a/onjava/2002/03/27/jython.html Examples: DocumentationAndEducation Library: Tutorials: Library Reference: Searchable quick reference: Bhaskar Mookerji (MIT) Software January / 26

28 svn Miscellaneous Version Control git and svn Subversion tracks saved changes to your code. Please use it. Changes are locally in a database and then committed/altered: svn help [<command>] svn add/delete/move svn mkdir svn commit (co) -m <msg> svn update (up) svn info/list Resources: 1 Plug-in Integration with Eclipse: 2 Plug-in Integration with Windows Explorer: 3 Command-line tutorial: tutorial/subversion-with-mac-os-x Bhaskar Mookerji (MIT) Software January / 26

29 Miscellaneous Performance Issues Be Mindful of Performance Issues Software CPU bottleneck: Image processing Minimize raw image passes Downsampleing Hardware Camera Capture Frequency Motor Slew Rate Bhaskar Mookerji (MIT) Software January / 26

30 Outline Conclusions 1 Development Cycle Basic Ideas Example: Finite State Machine 2 Useful Java Tools Build Tools ant Debugging jdb Unit Testing junit 3 Miscellaneous Java libraries in python jython Version Control git and svn Performance Issues 4 Conclusions Bhaskar Mookerji (MIT) Software January / 26

31 Conclusions Take-home Messages Test constantly. Start small, build up. Modularity. Avoid over-abstraction. Use software tools at your disposal (svn, debugging, etc.). Knuth: We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Bhaskar Mookerji (MIT) Software January / 26

32 Done! Conclusions Questions? Java threads lecture tomorrow! More online resources: 1 State machine diagram from Programming Game AI by Example at libraries.mit.edu/get/books24x7. 2 Books on software development at Assignment 3: Your (peg) robot should be able to turn itself until it sees a red ball, drive up to it, stop, and publish something to the BotClient. Find a staff member to show them that your robot can do this. Bhaskar Mookerji (MIT) Software January / 26

Module Road Map. 7. Version Control with Subversion Introduction Terminology

Module Road Map. 7. Version Control with Subversion Introduction Terminology Module Road Map 1. Overview 2. Installing and Running 3. Building and Running Java Classes 4. Refactoring 5. Debugging 6. Testing with JUnit 7. Version Control with Subversion Introduction Terminology

More information

CS18000: Programming I

CS18000: Programming I CS18000: Programming I Testing Basics 19 April 2010 Prof. Chris Clifton Testing Programs Your programs are getting large and more complex How do you make sure they work? 1. Reason about the program Think

More information

Lecture 4: Introduction to Java and your Development Environment

Lecture 4: Introduction to Java and your Development Environment Lecture 4: Introduction to Java and your Development Environment COMP 250 Winter 2018 Carlos G. Oliver, Jérôme Waldispühl Slides adapted from Mathieu Blanchette 1 2 About me» 2nd Year PhD Student in Computer

More information

CSE 421 Course Overview and Introduction to Java

CSE 421 Course Overview and Introduction to Java CSE 421 Course Overview and Introduction to Java Computer Science and Engineering College of Engineering The Ohio State University Lecture 1 Learning Objectives Knowledgeable in how sound software engineering

More information

Lecture 1: Overview of Java

Lecture 1: Overview of Java Lecture 1: Overview of Java What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++ Designed for easy Web/Internet applications Widespread

More information

Software Development Tools. COMP220/COMP285 Sebastian Coope Eclipse and JUnit: Creating and running a JUnit test case

Software Development Tools. COMP220/COMP285 Sebastian Coope Eclipse and JUnit: Creating and running a JUnit test case Software Development Tools COMP220/COMP285 Sebastian Coope Eclipse and JUnit: Creating and running a JUnit test case These slides are mainly based on Java Development with Eclipse D.Gallardo et al., Manning

More information

CUDA Development Using NVIDIA Nsight, Eclipse Edition. David Goodwin

CUDA Development Using NVIDIA Nsight, Eclipse Edition. David Goodwin CUDA Development Using NVIDIA Nsight, Eclipse Edition David Goodwin NVIDIA Nsight Eclipse Edition CUDA Integrated Development Environment Project Management Edit Build Debug Profile SC'12 2 Powered By

More information

What s NetBeans? Like Eclipse:

What s NetBeans? Like Eclipse: What s NetBeans? Like Eclipse: It is a free software / open source platform-independent software framework for delivering what the project calls "richclient applications" It is an Integrated Development

More information

Tuesday, November 15. Testing

Tuesday, November 15. Testing Tuesday, November 15 1 Testing Testing Waterfall model show testing as an activity or box In practice, testing is performed constantly There has never been a project where there was too much testing. Products

More information

Introduction to Programming (Java) 2/12

Introduction to Programming (Java) 2/12 Introduction to Programming (Java) 2/12 Michal Krátký Department of Computer Science Technical University of Ostrava Introduction to Programming (Java) 2008/2009 c 2006 2008 Michal Krátký Introduction

More information

Developing Android applications in Windows

Developing Android applications in Windows Developing Android applications in Windows Below you will find information about the components needed for developing Android applications and other (optional) software needed to connect to the institution

More information

If you don t have the JDK, you will need to install it. 1. Go to

If you don t have the JDK, you will need to install it. 1. Go to Developing Android applications in Windows Below you will find information about the components needed for developing Android applications and other (optional) software needed to connect to the institution

More information

Page 1. Human-computer interaction. Lecture 1b: Design & Implementation. Building user interfaces. Mental & implementation models

Page 1. Human-computer interaction. Lecture 1b: Design & Implementation. Building user interfaces. Mental & implementation models Human-computer interaction Lecture 1b: Design & Implementation Human-computer interaction is a discipline concerned with the design, implementation, and evaluation of interactive systems for human use

More information

The Eclipse Parallel Tools Platform

The Eclipse Parallel Tools Platform May 1, 2012 Toward an Integrated Development Environment for Improved Software Engineering on Crays Agenda 1. What is the Eclipse Parallel Tools Platform (PTP) 2. Tour of features available in Eclipse/PTP

More information

Certified Core Java Developer VS-1036

Certified Core Java Developer VS-1036 VS-1036 1. LANGUAGE FUNDAMENTALS The Java language's programming paradigm is implementation and improvement of Object Oriented Programming (OOP) concepts. The Java language has its own rules, syntax, structure

More information

CS 220: Introduction to Parallel Computing. Beginning C. Lecture 2

CS 220: Introduction to Parallel Computing. Beginning C. Lecture 2 CS 220: Introduction to Parallel Computing Beginning C Lecture 2 Today s Schedule More C Background Differences: C vs Java/Python The C Compiler HW0 8/25/17 CS 220: Parallel Computing 2 Today s Schedule

More information

CSCI 2600: Principles of Software. Spring 2017 Lecture 01 Bill Thompson

CSCI 2600: Principles of Software. Spring 2017 Lecture 01 Bill Thompson CSCI 2600: Principles of Software Spring 2017 Lecture 01 Bill Thompson thompw4@rpi.edu https://www.cs.rpi.edu/~thompw4/csci-2600/spring2017/ Thanks Much of the material in this course comes from Prof.

More information

Introduction to Java Programming

Introduction to Java Programming Introduction to Java Programming Lecture 1 CGS 3416 Spring 2017 1/9/2017 Main Components of a computer CPU - Central Processing Unit: The brain of the computer ISA - Instruction Set Architecture: the specific

More information

CSE 303: Concepts and Tools for Software Development

CSE 303: Concepts and Tools for Software Development CSE 303: Concepts and Tools for Software Development Dan Grossman Spring 2007 Lecture 19 Profiling (gprof); Linking and Libraries Dan Grossman CSE303 Spring 2007, Lecture 19 1 Where are we Already started

More information

IT151: Introduction to Programming (java)

IT151: Introduction to Programming (java) IT151: Introduction to Programming (java) Programming Basics Program A set of instructions that a computer uses to do something. Programming / Develop The act of creating or changing a program Programmer

More information

Notes from a Short Introductory Lecture on Scala (Based on Programming in Scala, 2nd Ed.)

Notes from a Short Introductory Lecture on Scala (Based on Programming in Scala, 2nd Ed.) Notes from a Short Introductory Lecture on Scala (Based on Programming in Scala, 2nd Ed.) David Haraburda January 30, 2013 1 Introduction Scala is a multi-paradigm language that runs on the JVM (is totally

More information

CSE 326: Data Structures. Section notes, 4/9/2009

CSE 326: Data Structures. Section notes, 4/9/2009 CSE 326: Data Structures Java Generi ics & JUnit 4 Section notes, 4/9/2009 slides originally by Hal Perkins Type-Safe Containers Idea a class or interface can have a type parameter: public class Bag

More information

Section 2: Developer tools and you. Alex Mariakakis (staff-wide)

Section 2: Developer tools and you. Alex Mariakakis (staff-wide) Section 2: Developer tools and you Alex Mariakakis cse331-staff@cs.washington.edu (staff-wide) What is an SSH client? Uses the secure shell protocol (SSH) to connect to a remote computer o Enables you

More information

COMP220/285 Lab sessions 1-3

COMP220/285 Lab sessions 1-3 COMP220/285 Lab sessions 1-3 Contents General Notes... 2 Getting started... 2 Task 1 Checking your ANT install... 2 Task 2 Checking your JUnit install... 2 Task 3 JUnit documention review... 4 Task 4 Ant

More information

COMP220: SOFTWARE DEVELOPMENT TOOLS COMP285: COMPUTER AIDED SOFTWARE DEVELOPMENT

COMP220: SOFTWARE DEVELOPMENT TOOLS COMP285: COMPUTER AIDED SOFTWARE DEVELOPMENT COMP220: SOFTWARE DEVELOPMENT TOOLS COMP285: COMPUTER AIDED SOFTWARE DEVELOPMENT Sebastian Coope coopes@liverpool.ac.uk www.csc.liv.ac.uk/~coopes/comp220/ www.csc.liv.ac.uk/~coopes/comp285/ COMP 285/220

More information

CS 11 java track: lecture 1

CS 11 java track: lecture 1 CS 11 java track: lecture 1 Administrivia need a CS cluster account http://www.cs.caltech.edu/ cgi-bin/sysadmin/account_request.cgi need to know UNIX www.its.caltech.edu/its/facilities/labsclusters/ unix/unixtutorial.shtml

More information

Technology Background Development environment, Skeleton and Libraries

Technology Background Development environment, Skeleton and Libraries Technology Background Development environment, Skeleton and Libraries Slides by Prof. Dr. Matthias Hölzl (based on material from Dr. Andreas Schröder) Outline Lecture 1 I. Eclipse II. Git Lecture 2 IV.

More information

An Integrated Approach to Managing Windchill Customizations. Todd Baltes Lead PLM Technical Architect SRAM

An Integrated Approach to Managing Windchill Customizations. Todd Baltes Lead PLM Technical Architect SRAM An Integrated Approach to Managing Windchill Customizations Todd Baltes Lead PLM Technical Architect SRAM Event hashtag is #PTCUSER10 Join the conversation! Topics What is an Integrated Approach to Windchill

More information

NSIGHT ECLIPSE EDITION

NSIGHT ECLIPSE EDITION NSIGHT ECLIPSE EDITION DG-06450-001 _v7.0 March 2015 Getting Started Guide TABLE OF CONTENTS Chapter 1. Introduction...1 1.1. About...1 Chapter 2. New and Noteworthy... 2 2.1. New in 7.0... 2 2.2. New

More information

Page 1. Human-computer interaction. Lecture 2: Design & Implementation. Building user interfaces. Users and limitations

Page 1. Human-computer interaction. Lecture 2: Design & Implementation. Building user interfaces. Users and limitations Human-computer interaction Lecture 2: Design & Implementation Human-computer interaction is a discipline concerned with the design, implementation, and evaluation of interactive systems for human use and

More information

Introduction to Eclipse

Introduction to Eclipse Introduction to Eclipse Ed Gehringer Using (with permission) slides developed by Dwight Deugo (dwight@espirity.com) Nesa Matic (nesa@espirity.com( nesa@espirity.com) Sreekanth Konireddygari (IBM Corp.)

More information

CS201 - Assignment 3, Part 1 Due: Friday February 28, at the beginning of class

CS201 - Assignment 3, Part 1 Due: Friday February 28, at the beginning of class CS201 - Assignment 3, Part 1 Due: Friday February 28, at the beginning of class One of the keys to writing good code is testing your code. This assignment is going to introduce you and get you setup to

More information

COMP 110/L Lecture 6. Kyle Dewey

COMP 110/L Lecture 6. Kyle Dewey COMP 110/L Lecture 6 Kyle Dewey Outline Methods Variable scope Call-by-value Testing with JUnit Variable Scope Question Does this compile? public class Test { public static void main(string[] args) { int

More information

Before you start with this tutorial, you need to know basic Java programming.

Before you start with this tutorial, you need to know basic Java programming. JDB Tutorial 1 About the Tutorial The Java Debugger, commonly known as jdb, is a useful tool to detect bugs in Java programs. This is a brief tutorial that provides a basic overview of how to use this

More information

CISC 124: Introduction To Computing Science II

CISC 124: Introduction To Computing Science II CISC 124: Introduction To Computing Science II instructor: Margaret Lamb instructor's home page: www.cs.queensu.ca/home/malamb office: Goodwin 527 current office hours are always on my home page 1 Moodle

More information

AUTOMATION TESTING FRAMEWORK FOR LUMINOUS LMS

AUTOMATION TESTING FRAMEWORK FOR LUMINOUS LMS AUTOMATION TESTING FRAMEWORK FOR LUMINOUS LMS CONTENT Introduction. List of tools used to create Testing Framework Luminous LMS work scheme Testing Framework work scheme Automation scenario set lifecycle

More information

Chapter 1: Introduction to Computers and Java

Chapter 1: Introduction to Computers and Java Chapter 1: Introduction to Computers and Java Starting Out with Java: From Control Structures through Objects Fifth Edition by Tony Gaddis Chapter Topics Chapter 1 discusses the following main topics:

More information

Getting Started with Java. Atul Prakash

Getting Started with Java. Atul Prakash Getting Started with Java Atul Prakash Running Programs C++, Fortran, Pascal Python, PHP, Ruby, Perl Java is compiled into device-independent code and then interpreted Source code (.java) is compiled into

More information

8/23/2014. Chapter Topics. Introduction. Java History. Why Program? Java Applications and Applets. Chapter 1: Introduction to Computers and Java

8/23/2014. Chapter Topics. Introduction. Java History. Why Program? Java Applications and Applets. Chapter 1: Introduction to Computers and Java Chapter 1: Introduction to Computers and Java Starting Out with Java: From Control Structures through Objects Fifth Edition by Tony Gaddis Chapter Topics Chapter 1 discusses the following main topics:

More information

Technology Background Development environment, Skeleton and Libraries

Technology Background Development environment, Skeleton and Libraries Technology Background Development environment, Skeleton and Libraries Christian Kroiß (based on slides by Dr. Andreas Schroeder) 18.04.2013 Christian Kroiß Outline Lecture 1 I. Eclipse II. Redmine, Jenkins,

More information

Introduction to Java

Introduction to Java Introduction to Java Module 1: Getting started, Java Basics 22/01/2010 Prepared by Chris Panayiotou for EPL 233 1 Lab Objectives o Objective: Learn how to write, compile and execute HelloWorld.java Learn

More information

Continuous Testing in Eclipse. David Saff, Michael D. Ernst MIT CSAIL etx 2004, Barcelona, Spain

Continuous Testing in Eclipse. David Saff, Michael D. Ernst MIT CSAIL etx 2004, Barcelona, Spain Continuous Testing in Eclipse David Saff, Michael D. Ernst MIT CSAIL etx 2004, Barcelona, Spain Continuous testing: inspired by continuous compilation Continuous compilation, as in Eclipse, notifies the

More information

CS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 2: SEP. 8TH INSTRUCTOR: JIAYIN WANG

CS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 2: SEP. 8TH INSTRUCTOR: JIAYIN WANG CS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 2: SEP. 8TH INSTRUCTOR: JIAYIN WANG 1 Notice Class Website http://www.cs.umb.edu/~jane/cs114/ Reading Assignment Chapter 1: Introduction to Java Programming

More information

Profiling & Optimization

Profiling & Optimization Lecture 11 Sources of Game Performance Issues? 2 Avoid Premature Optimization Novice developers rely on ad hoc optimization Make private data public Force function inlining Decrease code modularity removes

More information

lejos NXJ Problem Solving with Robots [PRSOCO601]

lejos NXJ Problem Solving with Robots [PRSOCO601] lejos NXJ Problem Solving with Robots [PRSOCO601] Thomas Devine http://noucamp thomas.devine@lyit.ie February 20, 2008 1 Contents 1 lejos NXJ 4 1.1 Introducing the Java Development.......................

More information

The Atlas Platform. CEN5531 Mobile Computing. Raja Bose Dr. Sumi Helal September 21, 2006 Week 5

The Atlas Platform. CEN5531 Mobile Computing. Raja Bose Dr. Sumi Helal September 21, 2006 Week 5 The Atlas Platform CEN5531 Mobile Computing Raja Bose Dr. Sumi Helal September 21, 2006 Week 5 Atlas Overview Represents each of the devices (sensors and actuators) connected to it as software services

More information

NSIGHT ECLIPSE EDITION

NSIGHT ECLIPSE EDITION NSIGHT ECLIPSE EDITION DG-06450-001 _v8.0 September 2016 Getting Started Guide TABLE OF CONTENTS Chapter 1. Introduction...1 1.1. About...1 Chapter 2. New and Noteworthy... 2 2.1. New in 7.5... 2 2.2.

More information

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 11, 2017

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 11, 2017 Version Control Click to edit Master EECS text 2311 styles - Software Development Project Second level Third level Fourth level Fifth level January 11, 2017 1 Scenario 1 You finished the assignment at

More information

Computer Science 62 Lab 8

Computer Science 62 Lab 8 Computer Science 62 Lab 8 Wednesday, March 26, 2014 Today s lab has two purposes: it is a continuation of the binary tree experiments from last lab and an introduction to some command-line tools. The Java

More information

Bindel, Fall 2011 Applications of Parallel Computers (CS 5220) Tuning on a single core

Bindel, Fall 2011 Applications of Parallel Computers (CS 5220) Tuning on a single core Tuning on a single core 1 From models to practice In lecture 2, we discussed features such as instruction-level parallelism and cache hierarchies that we need to understand in order to have a reasonable

More information

Eclipse Tutorial. For Introduction to Java Programming By Y. Daniel Liang

Eclipse Tutorial. For Introduction to Java Programming By Y. Daniel Liang Eclipse Tutorial For Introduction to Java Programming By Y. Daniel Liang This supplement covers the following topics: Getting Started with Eclipse Choosing a Perspective Creating a Project Creating a Java

More information

What Is NetBeans? Free and open-source based > Open source since June, 2000 > Large community of users and developers

What Is NetBeans? Free and open-source based > Open source since June, 2000 > Large community of users and developers Page 1 Slide 1: title and presenter's name Slide 2: topic intro - what product/technology is Slide 3: topic intro - who is the target market (be very as specific as possible: e.g. geo, developer type,

More information

Subversion. CS 490MT/5555, Fall 2015, Yongjie Zheng

Subversion. CS 490MT/5555, Fall 2015, Yongjie Zheng Subversion CS 490MT/5555, Fall 2015, Yongjie Zheng About Subversion } Subversion } A free/open source version control system } A typical client-server model } Uses the copy-modify-merge strategy } History

More information

git commit --amend git rebase <base> git reflog git checkout -b Create and check out a new branch named <branch>. Drop the -b

git commit --amend git rebase <base> git reflog git checkout -b Create and check out a new branch named <branch>. Drop the -b Git Cheat Sheet Git Basics Rewriting Git History git init Create empty Git repo in specified directory. Run with no arguments to initialize the current directory as a git repository. git commit

More information

Outline. Computer programming. Debugging. What is it. Debugging. Hints. Debugging

Outline. Computer programming. Debugging. What is it. Debugging. Hints. Debugging Outline Computer programming Debugging Hints Gathering evidence Common C errors "Education is a progressive discovery of our own ignorance." Will Durant T.U. Cluj-Napoca - Computer Programming - lecture

More information

Version Control Systems

Version Control Systems Nothing to see here. Everything is under control! September 16, 2015 Change tracking File moving Teamwork Undo! Undo! UNDO!!! What strategies do you use for tracking changes to files? Change tracking File

More information

Systems Programming Advanced Software Development

Systems Programming Advanced Software Development Systems Programming Advanced Software Development School of Information and Communication Technology Griffith University Semester 1, 2012 Outline 1 Administrative Matters Course Organisation Questions?

More information

Programmieren II. Unit Testing & Test-Driven Development. Alexander Fraser.

Programmieren II. Unit Testing & Test-Driven Development. Alexander Fraser. Programmieren II Unit Testing & Test-Driven Development Alexander Fraser fraser@cl.uni-heidelberg.de (Based on material from Lars Vogel and T. Bögel) July 2, 2014 1 / 62 Outline 1 Recap 2 Testing - Introduction

More information

Introduction to Java. Lecture 1 COP 3252 Summer May 16, 2017

Introduction to Java. Lecture 1 COP 3252 Summer May 16, 2017 Introduction to Java Lecture 1 COP 3252 Summer 2017 May 16, 2017 The Java Language Java is a programming language that evolved from C++ Both are object-oriented They both have much of the same syntax Began

More information

Story Workbench Quickstart Guide Version 1.2.0

Story Workbench Quickstart Guide Version 1.2.0 1 Basic Concepts Story Workbench Quickstart Guide Version 1.2.0 Mark A. Finlayson (markaf@mit.edu) Annotation An indivisible piece of data attached to a text is called an annotation. Annotations, also

More information

CS 300 Leftovers. CS460 Pacific University 1

CS 300 Leftovers. CS460 Pacific University 1 CS 300 Leftovers Pacific University 1 argc/argv The C Programming Language section 5.10, page 114 int main(int argc, char** argv) argc - number of entries in argv argv - array of character pointers containing

More information

Martin Kruliš, v

Martin Kruliš, v Martin Kruliš 1 Optimizations in General Code And Compilation Memory Considerations Parallelism Profiling And Optimization Examples 2 Premature optimization is the root of all evil. -- D. Knuth Our goal

More information

Task-Oriented Solutions to Over 175 Common Problems. Covers. Eclipse 3.0. Eclipse CookbookTM. Steve Holzner

Task-Oriented Solutions to Over 175 Common Problems. Covers. Eclipse 3.0. Eclipse CookbookTM. Steve Holzner Task-Oriented Solutions to Over 175 Common Problems Covers Eclipse 3.0 Eclipse CookbookTM Steve Holzner Chapter CHAPTER 6 6 Using Eclipse in Teams 6.0 Introduction Professional developers frequently work

More information

Warmup. A programmer s wife tells him, Would you mind going to the store and picking up a loaf of bread? Also, if they have eggs, get a dozen.

Warmup. A programmer s wife tells him, Would you mind going to the store and picking up a loaf of bread? Also, if they have eggs, get a dozen. Warmup A programmer s wife tells him, Would you mind going to the store and picking up a loaf of bread? Also, if they have eggs, get a dozen. The programmer returns with 12 loaves of bread. Section 2:

More information

Java Program Structure and Eclipse. Overview. Eclipse Projects and Project Structure. COMP 210: Object-Oriented Programming Lecture Notes 1

Java Program Structure and Eclipse. Overview. Eclipse Projects and Project Structure. COMP 210: Object-Oriented Programming Lecture Notes 1 COMP 210: Object-Oriented Programming Lecture Notes 1 Java Program Structure and Eclipse Robert Utterback In these notes we talk about the basic structure of Java-based OOP programs and how to setup and

More information

Profiling & Optimization

Profiling & Optimization Lecture 18 Sources of Game Performance Issues? 2 Avoid Premature Optimization Novice developers rely on ad hoc optimization Make private data public Force function inlining Decrease code modularity removes

More information

6.170 Laboratory in Software Engineering Eclipse Reference for 6.170

6.170 Laboratory in Software Engineering Eclipse Reference for 6.170 6.170 Laboratory in Software Engineering Eclipse Reference for 6.170 Contents: CVS in Eclipse o Setting up CVS in Your Environment o Checkout the Problem Set from CVS o How Do I Add a File to CVS? o Committing

More information

Lecture 2 Operating System Structures (chapter 2)

Lecture 2 Operating System Structures (chapter 2) Bilkent University Department of Computer Engineering CS342 Operating Systems Lecture 2 Operating System Structures (chapter 2) Dr. İbrahim Körpeoğlu http://www.cs.bilkent.edu.tr/~korpe 1 References The

More information

Groovy. Extending Java with scripting capabilities. Last updated: 10 July 2017

Groovy. Extending Java with scripting capabilities. Last updated: 10 July 2017 Groovy Extending Java with scripting capabilities Last updated: 10 July 2017 Pepgo Limited, 71-75 Shelton Street, Covent Garden, London, WC2H 9JQ, United Kingdom Contents About Groovy... 3 Install Groovy...

More information

This tutorial will teach you how to use Java Servlets to develop your web based applications in simple and easy steps.

This tutorial will teach you how to use Java Servlets to develop your web based applications in simple and easy steps. About the Tutorial Servlets provide a component-based, platform-independent method for building Webbased applications, without the performance limitations of CGI programs. Servlets have access to the entire

More information

Operating-System Structures

Operating-System Structures Recap Chapter 2: Operating-System Structures Presented By: Dr. El-Sayed M. El-Alfy Note: Most of the slides are compiled from the textbook and its complementary resources From: OS by Tanenbaum, 2008 March

More information

Selenium Testing Course Content

Selenium Testing Course Content Selenium Testing Course Content Introduction What is automation testing? What is the use of automation testing? What we need to Automate? What is Selenium? Advantages of Selenium What is the difference

More information

Introduction to Computers and Java

Introduction to Computers and Java Introduction to Computers and Java Chapter 1 Objectives Overview of computer hardware and software, programs and compilers the Java programming language Example program Hardware and Software Computer systems

More information

CHAPTER 1 Introduction to Computers and Java

CHAPTER 1 Introduction to Computers and Java CHAPTER 1 Introduction to Computers and Java Copyright 2016 Pearson Education, Inc., Hoboken NJ Chapter Topics Chapter 1 discusses the following main topics: Why Program? Computer Systems: Hardware and

More information

An Introduction to Software Engineering. David Greenstein Monta Vista High School

An Introduction to Software Engineering. David Greenstein Monta Vista High School An Introduction to Software Engineering David Greenstein Monta Vista High School Software Today Software Development Pre-1970 s - Emphasis on efficiency Compact, fast algorithms on machines with limited

More information

CS370 Operating Systems

CS370 Operating Systems CS370 Operating Systems Colorado State University Yashwant K Malaiya Fall 2016 Lecture 5 Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 User Operating System Interface - CLI CLI

More information

Testing. Topics. Types of Testing. Types of Testing

Testing. Topics. Types of Testing. Types of Testing Topics 1) What are common types of testing? a) Testing like a user: through the UI. b) Testing like a dev: through the code. 2) What makes a good bug report? 3) How can we write code to test code (via

More information

Portions adapted from A Visual Guide to Version Control. Introduction to CVS

Portions adapted from A Visual Guide to Version Control. Introduction to CVS Portions adapted from A Visual Guide to Version Control Introduction to CVS Outline Introduction to Source Code Management & CVS CVS Terminology & Setup Basic commands Checkout, Add, Commit, Diff, Update,

More information

Introduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 08 09/17/2015

Introduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 08 09/17/2015 Introduction to Concurrent Software Systems CSCI 5828: Foundations of Software Engineering Lecture 08 09/17/2015 1 Goals Present an overview of concurrency in software systems Review the benefits and challenges

More information

CSE 374 Programming Concepts & Tools. Hal Perkins Winter 2012 Lecture 16 Version control and svn

CSE 374 Programming Concepts & Tools. Hal Perkins Winter 2012 Lecture 16 Version control and svn CSE 374 Programming Concepts & Tools Hal Perkins Winter 2012 Lecture 16 Version control and svn Where we are Learning tools and concepts relevant to multi-file, multi-person, multi-platform, multi-month

More information

CSC207 Week 4. Larry Zhang

CSC207 Week 4. Larry Zhang CSC207 Week 4 Larry Zhang 1 Logistics A1 Part 1, read Arnold s emails. Follow the submission schedule. Read the Q&A session in the handout. Ask questions on the discussion board. Submit on time! Don t

More information

OPENVZ SERVERS PLANS AND FEATURES

OPENVZ SERVERS PLANS AND FEATURES OPENVZ SERVERS PLANS AND FEATURES TABLE OF CONTENTS WHY CHOOSE OPENVZ VPS? 3 OPENVZ VIRTUAL PRIVATE SERVERS 4 BONUS FEATURES WITH HEPSIA 5 BONUS FEATURES WITH CPANEL & DIRECTADMIN 6 MANAGED SERVICES 7

More information

CSC116: Introduction to Computing - Java

CSC116: Introduction to Computing - Java CSC116: Introduction to Computing - Java Course Information Introductions Website Syllabus Computers First Java Program Text Editor Helpful Commands Java Download Intro to CSC116 Instructors Course Instructor:

More information

Javac and Eclipse tutorial

Javac and Eclipse tutorial Javac and Eclipse tutorial Author: Balázs Simon, BME IIT, 2013. Contents 1 Introduction... 2 2 JRE and JDK... 2 3 Java and Javac... 2 4 Environment variables... 3 4.1 Setting the environment variables

More information

Introduction. Lecture 1 MIT 12043, Fundamentals of Programming By: S. Sabraz Nawaz

Introduction. Lecture 1 MIT 12043, Fundamentals of Programming By: S. Sabraz Nawaz Introduction Lecture 1 MIT 12043, Fundamentals of Programming By: Programming Languages There are hundreds of programming languages. Very broadly these languages are categorized as o Low Level Languages

More information

Level 3 Computing Year 2 Lecturer: Phil Smith

Level 3 Computing Year 2 Lecturer: Phil Smith Level 3 Computing Year 2 Lecturer: Phil Smith Previously We started to build a GUI program using visual studio 2010 and vb.net. We have a form designed. We have started to write the code to provided the

More information

Tools for Unit Test - JUnit

Tools for Unit Test - JUnit Tools for Unit Test - JUnit Conrad Hughes School of Informatics Slides thanks to Stuart Anderson 15 January 2010 Software Testing: Lecture 2 1 JUnit JUnit is a framework for writing tests Written by Erich

More information

Matrex Table of Contents

Matrex Table of Contents Matrex Table of Contents Matrex...1 What is the equivalent of a spreadsheet in Matrex?...2 Why I should use Matrex instead of a spreadsheet application?...3 Concepts...4 System architecture in the future

More information

Index. Symbols. /**, symbol, 73 >> symbol, 21

Index. Symbols. /**, symbol, 73 >> symbol, 21 17_Carlson_Index_Ads.qxd 1/12/05 1:14 PM Page 281 Index Symbols /**, 73 @ symbol, 73 >> symbol, 21 A Add JARs option, 89 additem() method, 65 agile development, 14 team ownership, 225-226 Agile Manifesto,

More information

Using Eclipse Che IDE to develop your codebase. Red Hat Developers Documentation Team :54:11 UTC

Using Eclipse Che IDE to develop your codebase. Red Hat Developers Documentation Team :54:11 UTC Using Eclipse Che IDE to develop your codebase Red Hat Developers Documentation Team 2019-02-15 17:54:11 UTC Table of Contents Using Eclipse Che IDE to develop your codebase...............................................

More information

Index. Course Outline. Grading Policy. Lab Time Distribution. Important Instructions

Index. Course Outline. Grading Policy. Lab Time Distribution. Important Instructions Index Course Outline Grading Policy Lab Time Distribution Important Instructions 2 Course Outline Week Topics 1 - History and Evolution of Java - Overview of Java 2 - Datatypes - Variables 3 - Arrays 4

More information

Turbo boost your digital app test automation with Jenkins

Turbo boost your digital app test automation with Jenkins Turbo boost your digital app test automation with Jenkins Step-by-Step Tutorial May, 2018 Speakers Sheli Ashkenazi Sr. Product Manager Experitest Jonathan Aharon Sr. Sales Engineer Experitest 2 01 The

More information

Software Development. Integrated Software Environment

Software Development. Integrated Software Environment Software Development Integrated Software Environment Source Code vs. Machine Code What is source code? Source code and object code refer to the "before" and "after" versions of a computer program that

More information

Lecture 1: January 22

Lecture 1: January 22 CMPSCI 677 Distributed and Operating Systems Spring 2018 Lecture 1: January 22 Lecturer: Prashant Shenoy Scribe: Bin Wang 1.1 Introduction to the course The lecture started by outlining the administrative

More information

SECTION 2: Loop Reasoning & HW3 Setup

SECTION 2: Loop Reasoning & HW3 Setup SECTION 2: Loop Reasoning & HW3 Setup cse331-staff@cs.washington.edu Review: Reasoning about loops What is a loop invariant? An assertion that always holds at the top of a loop Why do we need invariants?

More information

GETTING STARTED. The longest journey begins with a single step. In this chapter, you will learn about: Compiling and Running a Java Program Page 2

GETTING STARTED. The longest journey begins with a single step. In this chapter, you will learn about: Compiling and Running a Java Program Page 2 ch01 11/17/99 9:16 AM Page 1 CHAPTER 1 GETTING STARTED The longest journey begins with a single step. CHAPTER OBJECTIVES In this chapter, you will learn about: Compiling and Running a Java Program Page

More information

SpringSource Tool Suite M2

SpringSource Tool Suite M2 SpringSource Tool Suite 2.7.0.M2 - New and Noteworthy - Martin Lippert 2.7.0.M2 June 13, 2011 Updated for 2.7.0.M2 ENHANCEMENTS 2.7.0.M2 General Updates Memory Settings We raised the default memory settings

More information

Object-oriented programming. and data-structures CS/ENGRD 2110 SUMMER 2018

Object-oriented programming. and data-structures CS/ENGRD 2110 SUMMER 2018 Object-oriented programming 1 and data-structures CS/ENGRD 2110 SUMMER 2018 Lecture 1: Types and Control Flow http://courses.cs.cornell.edu/cs2110/2018su Lecture 1 Outline 2 Languages Overview Imperative

More information

SECTION 1: CODE REASONING + VERSION CONTROL + ECLIPSE

SECTION 1: CODE REASONING + VERSION CONTROL + ECLIPSE SECTION 1: CODE REASONING + VERSION CONTROL + ECLIPSE cse331-staff@cs.washington.edu slides borrowed and adapted from Alex Mariakis and CSE 390a OUTLINE Introductions Code Reasoning Version control IDEs

More information

SSH Deploy Key Documentation

SSH Deploy Key Documentation SSH Deploy Key Documentation Release 0.1.1 Travis Bear February 03, 2014 Contents 1 Overview 1 2 Source Code 3 3 Contents 5 3.1 Alternatives................................................ 5 3.2 Compatibility...............................................

More information