Maslab Software 2010
|
|
- Chester Arnold
- 5 years ago
- Views:
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 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 informationCS18000: 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 informationLecture 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 informationCSE 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 informationLecture 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 informationSoftware 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 informationCUDA 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 informationWhat 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 informationTuesday, 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 informationIntroduction 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 informationDeveloping 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 informationIf 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 informationPage 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 informationThe 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 informationCertified 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 informationCS 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 informationCSCI 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 informationIntroduction 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 informationCSE 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 informationIT151: 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 informationNotes 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 informationCSE 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 informationSection 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 informationCOMP220/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 informationCOMP220: 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 informationCS 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 informationTechnology 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 informationAn 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 informationNSIGHT 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 informationPage 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 informationIntroduction 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 informationCS201 - 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 informationCOMP 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 informationBefore 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 informationCISC 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 informationAUTOMATION 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 informationChapter 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 informationGetting 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 information8/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 informationTechnology 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 informationIntroduction 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 informationContinuous 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 informationCS/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 informationProfiling & 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 informationlejos 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 informationThe 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 informationNSIGHT 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 informationVersion 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 informationComputer 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 informationBindel, 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 informationEclipse 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 informationWhat 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 informationSubversion. 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 informationgit 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 informationOutline. 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 informationVersion 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 informationSystems 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 informationProgrammieren 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 informationIntroduction 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 informationStory 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 informationCS 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 informationMartin 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 informationTask-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 informationWarmup. 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 informationJava 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 informationProfiling & 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 information6.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 informationLecture 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 informationGroovy. 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 informationThis 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 informationOperating-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 informationSelenium 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 informationIntroduction 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 informationCHAPTER 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 informationAn 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 informationCS370 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 informationTesting. 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 informationPortions 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 informationIntroduction 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 informationCSE 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 informationCSC207 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 informationOPENVZ 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 informationCSC116: 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 informationJavac 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 informationIntroduction. 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 informationLevel 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 informationTools 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 informationMatrex 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 informationIndex. 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 informationUsing 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 informationIndex. 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 informationTurbo 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 informationSoftware 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 informationLecture 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 informationSECTION 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 informationGETTING 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 informationSpringSource 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 informationObject-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 informationSECTION 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 informationSSH 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