The$credit$for$crea-ng$these$slides$belongs$to$ Fall$2014$CS$521/621$students.$$Student$names$ have$been$removed$per$ferpa$regula-ons.

Size: px
Start display at page:

Download "The$credit$for$crea-ng$these$slides$belongs$to$ Fall$2014$CS$521/621$students.$$Student$names$ have$been$removed$per$ferpa$regula-ons."

Transcription

1 The$credit$for$crea-ng$these$slides$belongs$to$ Fall$2014$CS$521/621$students.$$Student$names$ have$been$removed$per$ferpa$regula-ons.$

2 Refactoring With Synthesis

3 Refactoring and Synthesis Refactoring - restructuring existing code without changing the behavior of the code Synthesis - combining two different things to form one Code Synthesis - have software complete a piece of the code for you. Combines manually written and computer generated code for a finished product.

4 Motivation Refactoring is a key part to software engineering and agile software development techniques. It was conceived as a manual activity but soon tools have become available to help automate refactorings.

5 Motivation Tools are available to help with refactorings, but 90% are still done manually. Poor discoverability. A developer must know the refactoring by name and select it from a menu/use a known keyboard shortcut. Complex user interface for some refactorings.

6 Research Questions 1. Could a unified interface be devised that simplified the usage of automatic refactoring tools for complex refactorings? 2. Given such a tool, would developers choose to use it over performing the refactorings manually?

7 Contributions 1. A new technique, based on extending a small set of manual changes, implemented in a tool called RESYNTH 2. A user study of RESYNTH to determine its usefulness to experienced and inexperienced programmers

8 Proposed Simpler Interface 1. Press a Start Refactoring button, indicating the program whose semantics should be preserved. 2. Manually perform a few actions of the desired refactoring, resulting in another program. 3. Click a Complete button. The tool will attempt to find a sequence of refactorings from the initial program, that when applied includes the edits made in step 2.

9 Advantages of This Interface Developer doesn t have to remember menu items or keyboard shortcuts Adding a new refactoring doesn t clutter the refactoring interface Applying a sequence of refactorings becomes easier - the tool discovers the sequence for the developer Performing a set of related refactorings is easier - they can be done as a unit

10 RESYNTH 1. Program entities not edited by the user are discarded - narrows the search space 2. A* search is performed over this smaller search space to find refactoring sequences 3. Attempts to execute discovered sequences of refactorings on the entire program

11 RESYNTH The manual changes are compared to the initial program to determine a small set of desired edits (stored as a tree) Local versions of each refactoring are performed on the modified areas of the original program, generating successors A* search is used to navigate this space, finding a set of local refactorings that produce the edits

12 RESYNTH Once the desired edits are found through local refactorings, attempt to apply the full versions to the entire program If the full refactorings generate errors, continue searching Otherwise, report the refactorings to the user

13 Examples - Single Refactorings Rename - A method, field, or local variable can be renamed by editing its declaration or any reference to use the new name Initial: int x = 0; x += 5; return x; Manual Edit: int x = 0; y += 5; return x; Result: int y = 0; y += 5; return y; RESYNTH finds Rename accomplishes the local edit, applies it globally.

14 Examples - Single Refactorings Inline Local - Deleting a local variable declaration will cause its value to be inlined Initial: int x = getvalue(); return x; Manual Edit: int x = getvalue(); return x; Result: return getvalue(); RESYNTH finds Inline Local accomplishes the local edit, applies it globally.

15 Examples - Complex Refactoring Swap Fields - Switching the names of two fields will cause the appropriate renames Initial: int x = 5; int y = 15; x += 3; y *= 10; return x / y; Manual Edit: int x = 5; int y = 15; x += 3; y *= 10; return y / x; Result: int y = 5; int x = 15; y += 3; x *= 10; return y / x; RESYNTH finds three uses of Rename accomplish local edits, applies them globally. This requires Rename(x, tmp), Rename(y, x), Rename(tmp, y)

16 Adding Refactorings to RESYNTH For RESYNTH to use a refactoring tool, it must be modified to include a successors function successors takes a current program state as input and returns a finite set of possible successors after applying the refactoring locally These successors are added to the A* search space

17 Evaluation - Single Refactorings RESYNTH includes implementations of 5 common refactorings that are frequently used. Rename Inline Local Inline Method Extract Local Extract Method With Holes

18 Evaluation - Complex Refactorings These complex refactorings can be accomplished using a sequence of the single refactorings that were implemented

19 Evaluation - Timing Benchmarks Search space was limited to 20,000 trees Synthetic examples were more challenging on average than real examples In both, the time to search for a refactoring + the time for Eclipse to apply the full refactoring was relatively low

20 Evaluation - User Study 6 participants were asked to complete 3 refactoring tasks using RESYNTH, Eclipse s built in refactorings, or manual editing. In one task RESYNTH cannot come up with the correct solution. Only 2 noticed that the solution given was not exactly the expected solution 4 of the participants found the tool useful

21 Discussion 1. Previous work found that most refactorings are performed by hand?. Do you use built in refactoring tools when programming, or prefer to do the edits yourself? Why??: Negara, S., Chen, N., Vakilian, M.m Johnson, R. E., and Dig, D. A Comparative Study of Manual and Automated Refactorings. In ECOOP (2013)

22 Discussion 2. The group used to evaluate RESYNTH was extremely small and only ⅔ of the participants found it useful. Would you consider these results to be positive? How could RESYNTH be improved to be more useful?

23 Discussion 3. Some of the users forgot to activate RESYNTH when they wanted to mark an edit. Do you think RESYNTH could benefit from speculative analysis to infer when a user was performing a refactoring? What could the pros and cons be?

24 Discussion 4. Can you think of any other applications of the search technique implemented in RESYNTH? Debugging?

25 Discussion 5. RESYNTH uses an A* search in its implementation. How would you expect the average timing and deviation of times needed to come up with a solution to differ if the implementation used a breadth first or depth first search?

26 Discussion 6. RESYNTH may potentially fail to find a refactoring if the user does not do a correct manual edit. Does this seem like a major flaw? How could it be corrected?

Refactoring with Eclipse

Refactoring with Eclipse Refactoring with Eclipse Seng 371 Lab 8 By Bassam Sayed Based on IBM article Explore refactoring functions in Eclipse JDT by Prashant Deva Code Refactoring Code refactoring is a disciplined way to restructure

More information

Refactoring Practice: How it is and How it Should be Supported

Refactoring Practice: How it is and How it Should be Supported Refactoring Practice: How it is and How it Should be Supported Zhenchang Xing and EleniStroulia Presented by: Sultan Almaghthawi 1 Outline Main Idea Related Works/Literature Alignment Overview of the Case

More information

Designing with patterns - Refactoring. What is Refactoring?

Designing with patterns - Refactoring. What is Refactoring? Designing with patterns - Refactoring Bottom up based application of patterns Improving the design after it has been written What is Refactoring? Two definitions, the object and act of change in software

More information

Refactoring. Refactoring Techniques

Refactoring. Refactoring Techniques Refactoring Refactoring Techniques Code Quality is Important! Refactoring is... A disciplined technique for restructuring an existing body of code, altering its internal structure without changing its

More information

Xcode Tricks. ios App Development Fall 2010 Lecture 13

Xcode Tricks. ios App Development Fall 2010 Lecture 13 Xcode Tricks ios App Development Fall 2010 Lecture 13 Questions? Announcements Reminder: Assignment #3 due Monday, October 18 th by 11:59pm Today s Topics Building & Running Code Troubleshooting Debugging

More information

COURSE 11 DESIGN PATTERNS

COURSE 11 DESIGN PATTERNS COURSE 11 DESIGN PATTERNS PREVIOUS COURSE J2EE Design Patterns CURRENT COURSE Refactoring Way refactoring Some refactoring examples SOFTWARE EVOLUTION Problem: You need to modify existing code extend/adapt/correct/

More information

Chapter 2 XML, XML Schema, XSLT, and XPath

Chapter 2 XML, XML Schema, XSLT, and XPath Summary Chapter 2 XML, XML Schema, XSLT, and XPath Ryan McAlister XML stands for Extensible Markup Language, meaning it uses tags to denote data much like HTML. Unlike HTML though it was designed to carry

More information

4HOnline HelpSheet. Using and Creating Reports. Top two reminders: Understanding & navigating the reports screen

4HOnline HelpSheet. Using and Creating Reports. Top two reminders: Understanding & navigating the reports screen Using and Creating Reports Top two reminders: 1. Printing labels (from any report format) will only work correctly if you remember to change Page Scaling to none on the printer setup dialog box. 2. If

More information

User Testing & Automated Evaluation. Product Hall of Shame! User Testing & Automated Evaluation. Visual Design Review. Outline. Visual design review

User Testing & Automated Evaluation. Product Hall of Shame! User Testing & Automated Evaluation. Visual Design Review. Outline. Visual design review landay 1 USER INTERFACE DESIGN + PROTOTYPING + EVALUATION Product Hall of Fame or Shame? User Testing & Automated Evaluation Prof. James A. Landay University of Washington Apple One Button Mouse Autumn

More information

Laboratory 1: Eclipse and Karel the Robot

Laboratory 1: Eclipse and Karel the Robot Math 121: Introduction to Computing Handout #2 Laboratory 1: Eclipse and Karel the Robot Your first laboratory task is to use the Eclipse IDE framework ( integrated development environment, and the d also

More information

FileMaker, Inc. All Rights Reserved. Document Version 2.0 FileMaker, Inc Patrick Henry Drive Santa Clara, California FileMaker

FileMaker, Inc. All Rights Reserved. Document Version 2.0 FileMaker, Inc Patrick Henry Drive Santa Clara, California FileMaker User s Guide 2003-2004 FileMaker, Inc. All Rights Reserved. Document Version 2.0 FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker is a trademark of FileMaker, Inc., registered

More information

POC Evaluation Guide May 09, 2017

POC Evaluation Guide May 09, 2017 POC Evaluation Guide May 09, 2017 This page intentionally left blank P r o p r i e t a r y a n d C o n f i d e n t i a l. 2 0 1 7 R F P M o n k e y. c o m L L C Page 2 CONTENTS Read Me First... 4 About

More information

CSCE 548 Building Secure Software Software Analysis Basics

CSCE 548 Building Secure Software Software Analysis Basics CSCE 548 Building Secure Software Software Analysis Basics Professor Lisa Luo Spring 2018 Previous Class Ø Android Background Ø Two Android Security Problems: 1. Android App Repackaging o Very easy to

More information

Test-Driven Development (TDD)

Test-Driven Development (TDD) Test-Driven Development (TDD) CS 4501 / 6501 Software Testing [Lasse Koskela, Test Driven, Chapters 2-3] 1 Agile Airplane Testing Test harness: Appearance matches Color coding in place Fly 6ft (or 2m)

More information

UG4 Honours project selection: Talk to Vijay or Boris if interested in computer architecture projects

UG4 Honours project selection: Talk to Vijay or Boris if interested in computer architecture projects Announcements UG4 Honours project selection: Talk to Vijay or Boris if interested in computer architecture projects Inf3 Computer Architecture - 2017-2018 1 Last time: Tomasulo s Algorithm Inf3 Computer

More information

Software Design COSC 4353/6353 D R. R A J S I N G H

Software Design COSC 4353/6353 D R. R A J S I N G H Software Design COSC 4353/6353 D R. R A J S I N G H Week 5 Refactoring What is Refactoring? Code Smells Why Refactoring? Techniques IDEs What is Refactoring? Art of improving the design of existing code

More information

Noopur Gupta Eclipse JDT/UI Committer IBM India

Noopur Gupta Eclipse JDT/UI Committer IBM India Noopur Gupta Eclipse JDT/UI Committer IBM India noopur_gupta@in.ibm.com 1 2 3 Show Workspace Location in the Title Bar (-showlocation) OR 4 Show Workspace Name in the Title Bar (Window > Preferences >

More information

Pointers, Arrays and Parameters

Pointers, Arrays and Parameters Pointers, Arrays and Parameters This exercise is different from our usual exercises. You don t have so much a problem to solve by creating a program but rather some things to understand about the programming

More information

Heuristic Evaluation of NUIG Participate Module 1

Heuristic Evaluation of NUIG Participate Module 1 Heuristic Evaluation of NUIG Participate Module 1 Nielsen s 10 Usability Heuristics (Nielsen & Mack, 1994) 1. Aesthetic & Minimalist Design Pages should not contain information which is irrelevant or rarely

More information

RefactorPad: Editing Source Code on Touchscreens

RefactorPad: Editing Source Code on Touchscreens RefactorPad: Editing Source Code on Touchscreens Felix Raab University of Regensburg Chair for Media Informatics felix.raab@ur.de Christian Wolff University of Regensburg Chair for Media Informatics christian.wolff@ur.de

More information

4HOnline has a powerful report system that allows you to take an existing report, customize it to suit your needs, and then save it to use again.

4HOnline has a powerful report system that allows you to take an existing report, customize it to suit your needs, and then save it to use again. 4HOnline USING AND CREATING REPORTS Created: October 14, 2013 OVERVIEW 4HOnline has a powerful report system that allows you to take an existing report, customize it to suit your needs, and then save it

More information

1.7 Limit of a Function

1.7 Limit of a Function 1.7 Limit of a Function We will discuss the following in this section: 1. Limit Notation 2. Finding a it numerically 3. Right and Left Hand Limits 4. Infinite Limits Consider the following graph Notation:

More information

Objectives: On completion of this project the student should be able to:

Objectives: On completion of this project the student should be able to: ENGI-0655/5232 Software Construction and Evolution Project 1 Reverse Engineering Refactoring & Object Oriented Design Due date November 10, 2009-4:00 pm 1. Aims The aim of this project is to give you more

More information

But before understanding the Selenium WebDriver concept, we need to know about the Selenium first.

But before understanding the Selenium WebDriver concept, we need to know about the Selenium first. As per the today s scenario, companies not only desire to test software adequately, but they also want to get the work done as quickly and thoroughly as possible. To accomplish this goal, organizations

More information

CS161: Introduction to Computer Science Homework Assignment 10 Due: Monday 11/28 by 11:59pm

CS161: Introduction to Computer Science Homework Assignment 10 Due: Monday 11/28 by 11:59pm CS161: Introduction to Computer Science Homework Assignment 10 Due: Monday 11/28 by 11:59pm Many cable packages come with a search interface that let s you search for a show or movie by typing the name

More information

For Volunteers An Elvanto Guide

For Volunteers An Elvanto Guide For Volunteers An Elvanto Guide www.elvanto.com Volunteers are what keep churches running! This guide is for volunteers who use Elvanto. If you re in charge of volunteers, why not check out our Volunteer

More information

Choosing an Intellectual Property Core

Choosing an Intellectual Property Core Choosing an Intellectual Property Core MIPS Technologies, Inc. June 2002 One of the most important product development decisions facing SOC designers today is choosing an intellectual property (IP) core.

More information

Maciej Sobieraj. Lecture 1

Maciej Sobieraj. Lecture 1 Maciej Sobieraj Lecture 1 Outline 1. Introduction to computer programming 2. Advanced flow control and data aggregates Your first program First we need to define our expectations for the program. They

More information

Retaining Comments when Refactoring Code or

Retaining Comments when Refactoring Code or Retaining Comments when Refactoring Code or Why and how we build Refactoring Eclipse plug-ins for several non-java languages Prof. Peter Sommerlad IFS Institute for Software HSR Rapperswil, Switzerland

More information

Schedule Builder Agency User Guide

Schedule Builder Agency User Guide Schedule Builder Page 1 of 19 Table of Contents Introduction... 3 Creating a new Schedule... 4 Revalidate... 6 Copying Lines... 7 Deleting Lines... 7 Visual Tools... 8 Actions... 8 Layout Manager... 9

More information

Autodesk Inventor Tips & Tricks Placing Features On

Autodesk Inventor Tips & Tricks Placing Features On 1 Autodesk Inventor Tips & Tricks Placing Features On Cylindrical Shapes The adoption of parametric, feature based solid modeling will present many challenges to the new user as they are confronted for

More information

Chapter 2 Web Development Overview

Chapter 2 Web Development Overview Chapter 2 Web Development Overview Presented by Thomas Powell Slides adopted from HTML & XHTML: The Complete Reference, 4th Edition 2003 Thomas A. Powell Five Pillars of Sites Web sites have five aspects

More information

Chapter 2 The SAS Environment

Chapter 2 The SAS Environment Chapter 2 The SAS Environment Abstract In this chapter, we begin to become familiar with the basic SAS working environment. We introduce the basic 3-screen layout, how to navigate the SAS Explorer window,

More information

Using Microsoft Excel

Using Microsoft Excel Using Microsoft Excel Introduction This handout briefly outlines most of the basic uses and functions of Excel that we will be using in this course. Although Excel may be used for performing statistical

More information

Refactoring. Paul Jackson. School of Informatics University of Edinburgh

Refactoring. Paul Jackson. School of Informatics University of Edinburgh Refactoring Paul Jackson School of Informatics University of Edinburgh Refactoring definition Refactoring (noun) is a change made to the internal structure of software to make it easier to understand,

More information

Starting to Program in C++ (Basics & I/O)

Starting to Program in C++ (Basics & I/O) Copyright by Bruce A. Draper. 2017, All Rights Reserved. Starting to Program in C++ (Basics & I/O) On Tuesday of this week, we started learning C++ by example. We gave you both the Complex class code and

More information

Understanding prototype fidelity What is Digital Prototyping? Introduction to various digital prototyping tools

Understanding prototype fidelity What is Digital Prototyping? Introduction to various digital prototyping tools HCI and Design Today Assignment 1 is graded Assignment 3 is posted Understanding prototype fidelity What is Digital Prototyping? Introduction to various digital prototyping tools Reminder: What is a prototype?

More information

Errors and Exceptions. EECS 230 Winter 2018

Errors and Exceptions. EECS 230 Winter 2018 Errors and Exceptions EECS 230 Winter 2018 2 Kinds of errors Static (compile-time) errors Syntax errors Semantic (type) errors Linker errors Dynamic (run-time) errors Logic errors (bugs) User and environment

More information

Recommended Design Techniques for ECE241 Project Franjo Plavec Department of Electrical and Computer Engineering University of Toronto

Recommended Design Techniques for ECE241 Project Franjo Plavec Department of Electrical and Computer Engineering University of Toronto Recommed Design Techniques for ECE241 Project Franjo Plavec Department of Electrical and Computer Engineering University of Toronto DISCLAIMER: The information contained in this document does NOT contain

More information

Teiid Designer User Guide 7.5.0

Teiid Designer User Guide 7.5.0 Teiid Designer User Guide 1 7.5.0 1. Introduction... 1 1.1. What is Teiid Designer?... 1 1.2. Why Use Teiid Designer?... 2 1.3. Metadata Overview... 2 1.3.1. What is Metadata... 2 1.3.2. Editing Metadata

More information

Cost Models. Chapter Twenty-One Modern Programming Languages, 2nd ed. 1

Cost Models. Chapter Twenty-One Modern Programming Languages, 2nd ed. 1 Cost Models Chapter Twenty-One Modern Programming Languages, 2nd ed. 1 Which Is Faster? Y=[1 X] append(x,[1],y) Every experienced programmer has a cost model of the language: a mental model of the relative

More information

CHAPTER 1 COPYRIGHTED MATERIAL. Finding Your Way in the Inventor Interface

CHAPTER 1 COPYRIGHTED MATERIAL. Finding Your Way in the Inventor Interface CHAPTER 1 Finding Your Way in the Inventor Interface COPYRIGHTED MATERIAL Understanding Inventor s interface behavior Opening existing files Creating new files Modifying the look and feel of Inventor Managing

More information

Goal of the course: The goal is to learn to design and analyze an algorithm. More specifically, you will learn:

Goal of the course: The goal is to learn to design and analyze an algorithm. More specifically, you will learn: CS341 Algorithms 1. Introduction Goal of the course: The goal is to learn to design and analyze an algorithm. More specifically, you will learn: Well-known algorithms; Skills to analyze the correctness

More information

DAT159 Refactoring (Introduction)

DAT159 Refactoring (Introduction) DAT159 Refactoring (Introduction) Volker Stolz 1, with contributions by: Larissa Braz 2, Anna M. Eilertsen 3, Fernando Macías 1, Rohit Gheyi 2 Western Norway University of Applied Sciences, Universidade

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

New Visual Design for IRON HQ Release Notes

New Visual Design for IRON HQ Release Notes New Visual Design for IRON HQ Release Notes Based on customer feedback, NetSuite, our platform for HQ, has improved key areas of the user interface including readability, navigation, data entry, and dashboard

More information

HCI and Design SPRING 2016

HCI and Design SPRING 2016 HCI and Design SPRING 2016 Topics for today Heuristic Evaluation 10 usability heuristics How to do heuristic evaluation Project planning and proposals Usability Testing Formal usability testing in a lab

More information

Digital Design and Computer Architecture

Digital Design and Computer Architecture Digital Design and Computer Architecture Introduction Lab 4: Thunderbird Turn Signal In this lab, you will design a finite state machine in SystemVerilog to control the taillights of a 1965 Ford Thunderbird

More information

Cascade: A Universal Programmer-assisted Type Qualifier Inference Tool

Cascade: A Universal Programmer-assisted Type Qualifier Inference Tool Cascade: A Universal Programmer-assisted Type Qualifier Inference Tool Mohsen Vakilian* Amarin Phaosawasdi* Michael D. Ernst Ralph E. Johnson* *University of Illinois at Urbana-Champaign University of

More information

Crab Shack Kitchen Web Application

Crab Shack Kitchen Web Application Crab Shack Kitchen Web Application EVALUATION ASSIGNMENT 2 HEURISTIC EVALUATION Author: Sachin FERNANDES Graduate 8 Undergraduate Team 2 Instructor: Dr. Robert PASTEL February 16, 2016 LIST OF FIGURES

More information

Untangling: A Slice Extraction Refactoring

Untangling: A Slice Extraction Refactoring Untangling: A Slice Extraction Refactoring Ran Ettinger and Mathieu Verbaere Programming Tools Group Computing Laboratory University of Oxford Thanks to our supervisor Oege de Moor Supported by an Eclipse

More information

Tutorial 1 Answers. Question 1

Tutorial 1 Answers. Question 1 Tutorial 1 Answers Question 1 Complexity Software in it what is has to do, is often essentially complex. We can think of software which is accidentally complex such as a large scale e-commerce system (simple

More information

Excel Basics: Working with Spreadsheets

Excel Basics: Working with Spreadsheets Excel Basics: Working with Spreadsheets E 890 / 1 Unravel the Mysteries of Cells, Rows, Ranges, Formulas and More Spreadsheets are all about numbers: they help us keep track of figures and make calculations.

More information

Helping Developers Find Useful Tools

Helping Developers Find Useful Tools Emerson Murphy-Hill North Carolina State University Helping Developers Find Useful Tools Developer Liberation Front Helping Developers Find Useful Tools Helping Developers Find Useful Tools http://www.flickr.com/photos/kakutani/2761992149

More information

Automated Unit Testing A Practitioner's and Teacher's Perspective

Automated Unit Testing A Practitioner's and Teacher's Perspective Automated Unit Testing A Practitioner's and Teacher's Perspective Prof. Peter Sommerlad HSR - Hochschule für Technik Rapperswil Institute for Software Oberseestraße 10, CH-8640 Rapperswil peter.sommerlad@hsr.ch

More information

Private/Public Saved Searches

Private/Public Saved Searches Private/Public Saved Searches Learning Objectives In this Job Aid, you will learn how to: 1 Save a private/public search page 3 2 Save a search template page 5 3 Access private and public saved searches

More information

Computers for Beginners

Computers for Beginners Computers for Beginners Class Objective: This class will familiarize you with using computers. By the end of the session you will be familiar with: Starting programs Quitting programs Saving files Opening

More information

Evolving Software. CMSC 433 Programming Language Technologies and Paradigms Spring Example. Some Motivations for This Refactoring

Evolving Software. CMSC 433 Programming Language Technologies and Paradigms Spring Example. Some Motivations for This Refactoring CMSC 433 Programming Language Technologies and Paradigms Spring 2007 Refactoring April 24, 2007 Lots of material taken from Fowler, Refactoring: Improving the Design of Existing Code 1 Evolving Software

More information

CS 553: Algorithmic Language Compilers (PLDI) Graduate Students and Super Undergraduates... Logistics. Plan for Today

CS 553: Algorithmic Language Compilers (PLDI) Graduate Students and Super Undergraduates... Logistics. Plan for Today Graduate Students and Super Undergraduates... CS 553: Algorithmic Language Compilers (PLDI) look for other sources of information make decisions, because all research problems are under-specified evaluate

More information

Collaborative Programming: Pair Programming and Reviews CSE 403

Collaborative Programming: Pair Programming and Reviews CSE 403 Collaborative Programming: Pair Programming and Reviews CSE 403 Pair programming pair programming: 2 people, 1 computer take turns driving rotate pairs often pair people of different experience levels

More information

How We Refactor, and How We Know It

How We Refactor, and How We Know It Emerson Murphy-Hill, Chris Parnin, Andrew P. Black How We Refactor, and How We Know It Urs Fässler 30.03.2010 Urs Fässler () How We Refactor, and How We Know It 30.03.2010 1 / 14 Refactoring Definition

More information

Charlotte Housing Authority Applicant Portal Overview

Charlotte Housing Authority Applicant Portal Overview Topic Charlotte Housing Authority Table of Contents Page Login Page 3 Forgot Password 4 Registering- Currently on waiting list 6-10 Home Screen 11 Wait Listing Information Basic Details 12-13 Waiting List

More information

ALTIRIS Console 6.5 Overview

ALTIRIS Console 6.5 Overview ALTIRIS Console 6.5 Overview Document Version: 1.0 The information contained in the Altiris Knowledgebase is subject to the Terms of Use as outlined at http://www.altiris.com/legal/termsofuse.asp. History

More information

Image-Based Rendering. Johns Hopkins Department of Computer Science Course : Rendering Techniques, Professor: Jonathan Cohen

Image-Based Rendering. Johns Hopkins Department of Computer Science Course : Rendering Techniques, Professor: Jonathan Cohen Image-Based Rendering Image-Based Rendering What is it? Still a difficult question to answer Uses images (photometric( info) as key component of model representation What s Good about IBR Model acquisition

More information

M.CS201 Programming language

M.CS201 Programming language Power Engineering School M.CS201 Programming language Lecture 4 Lecturer: Prof. Dr. T.Uranchimeg Agenda How a Function Works Function Prototype Structured Programming Local Variables Return value 2 Function

More information

A few more things about Agile and SE. Could help in interviews, but don t try to bluff your way through

A few more things about Agile and SE. Could help in interviews, but don t try to bluff your way through A few more things about Agile and SE Could help in interviews, but don t try to bluff your way through 1 Refactoring How to do it, where it fits in http://www.cse.ohio-state.edu/~crawfis/cse3902/index.htm

More information

Administrivia. Programming Language Fall Example. Evolving Software. Project 3 coming out Midterm October 28. Refactoring October 14, 2004

Administrivia. Programming Language Fall Example. Evolving Software. Project 3 coming out Midterm October 28. Refactoring October 14, 2004 CMSC 433 Programming Language Fall 2004 Project 3 coming out Midterm October 28 Administrivia Refactoring October 14, 2004 Lots of material taken from Fowler, Refactoring: Improving the Design of Existing

More information

Refactoring (guest lecture)

Refactoring (guest lecture) Refactoring (guest lecture) Question: Is there anything wrong with this code? char b[2][10000],*s,*t=b,*d,*e=b+1,**p;main(int c,char**v) {int n=atoi(v[1]);strcpy(b,v[2]);while(n--){for(s=t,d=e;*s;s++)

More information

id Marking US Page 1

id Marking US Page 1 id Marking So you ve bought the 3M Dynatel EMS id Marking System! As a utility owner, or service provider, you have purchased the id markers and probably a piece of equipment that will find the marker

More information

Module 10A Lecture - 20 What is a function? Why use functions Example: power (base, n)

Module 10A Lecture - 20 What is a function? Why use functions Example: power (base, n) Programming, Data Structures and Algorithms Prof. Shankar Balachandran Department of Computer Science and Engineering Indian Institute of Technology, Madras Module 10A Lecture - 20 What is a function?

More information

The Haskell Refactorer, HaRe, and its API

The Haskell Refactorer, HaRe, and its API LDTA 2005 Preliminary Version The Haskell Refactorer, HaRe, and its API Huiqing Li a,1 Simon Thompson a,1 Claus Reinke b,1 a Computing Laboratory, University of Kent, Canterbury, UK b Canterbury, UK Abstract

More information

Usability: An Ultimate Journey of Experience STC-2013

Usability: An Ultimate Journey of Experience STC-2013 1 Usability: An Ultimate Journey of Experience STC-2013 Kanika Chugh QA InfoTech Pvt. Ltd. - B-8, Sector 59, Noida - A-19, Sector 59, Noida - Plot 190, NSEZ, Phase II, Noida, - Tower C, 3rd Floor, DLF

More information

ER Modeling Data Modeling and the Entity-Relationship (ER) Diagram Pg 1

ER Modeling Data Modeling and the Entity-Relationship (ER) Diagram Pg 1 ER Modeling Data Modeling and the Entity-Relationship (ER) Diagram Pg 1 Data Modeling and the Entity-Relationship (ER) Diagram Ray Lockwood Points: The Entity-Relationship (ER) Diagram is seen by various

More information

Best Practices for. Membership Renewals

Best Practices for. Membership Renewals Best Practices for Membership Renewals For many associations, it s easy to get caught up in the marketing efforts associated with attracting new members. But as important as membership growth is, renewal

More information

Navigating in SPSS. C h a p t e r 2 OBJECTIVES

Navigating in SPSS. C h a p t e r 2 OBJECTIVES C h a p t e r 2 Navigating in SPSS 2.1 Introduction and Objectives As with any new software program you may use, it is important that you are able to move around the screen with the mouse and that you

More information

MTAT Software Engineering. Written Exam 17 January Start: 9:15 End: 11:45

MTAT Software Engineering. Written Exam 17 January Start: 9:15 End: 11:45 MTAT.03.094 Software Engineering Written Exam 17 January 2014 Start: 9:15 End: 11:45 Important Notes: The exam is open book and open laptop. Web browsing is allowed, but you are not allowed to use e mail

More information

} Evaluate the following expressions: 1. int x = 5 / 2 + 2; 2. int x = / 2; 3. int x = 5 / ; 4. double x = 5 / 2.

} Evaluate the following expressions: 1. int x = 5 / 2 + 2; 2. int x = / 2; 3. int x = 5 / ; 4. double x = 5 / 2. Class #10: Understanding Primitives and Assignments Software Design I (CS 120): M. Allen, 19 Sep. 18 Java Arithmetic } Evaluate the following expressions: 1. int x = 5 / 2 + 2; 2. int x = 2 + 5 / 2; 3.

More information

CS50 Supersection (for those less comfortable)

CS50 Supersection (for those less comfortable) CS50 Supersection (for those less comfortable) Friday, September 8, 2017 3 4pm, Science Center C Maria Zlatkova, Doug Lloyd Today s Topics Setting up CS50 IDE Variables and Data Types Conditions Boolean

More information

Creating Reports using Report Designer Part 1. Training Guide

Creating Reports using Report Designer Part 1. Training Guide Creating Reports using Report Designer Part 1 Training Guide 2 Dayforce HCM Creating Reports using Report Designer Part 1 Contributors We would like to thank the following individual who contributed to

More information

5 Google Drive tips you'll kick yourself for not knowing

5 Google Drive tips you'll kick yourself for not knowing 5 Google Drive tips you'll kick yourself for not knowing Take your Google Drive experience to the next level with these five handy tips. Are you getting the most out of Google Drive? If you don't know,

More information

Programming Assignment IV

Programming Assignment IV Programming Assignment IV 1 Introduction In this assignment, you will implement the static semantics of Cool. You will use the abstract syntax trees (AST) built by the parser to check that a program conforms

More information

Expressions and Casting. Data Manipulation. Simple Program 11/5/2013

Expressions and Casting. Data Manipulation. Simple Program 11/5/2013 Expressions and Casting C# Programming Rob Miles Data Manipulation We know that programs use data storage (variables) to hold values and statements to process the data The statements are obeyed in sequence

More information

Programming Languages

Programming Languages TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Programming Languages Concurrency: Atomic Executions, Locks and Monitors Dr. Michael Petter Winter term 2016 Atomic Executions, Locks and Monitors

More information

Ad Muncher's New Interface Layout

Ad Muncher's New Interface Layout Ad Muncher's New Interface Layout We are currently working on a new layout for Ad Muncher's configuration window. This page will document the new layout. Interface Layout Objectives The ability to modify

More information

National Documentation Centre Open access in Cultural Heritage digital content

National Documentation Centre Open access in Cultural Heritage digital content National Documentation Centre Open access in Cultural Heritage digital content Haris Georgiadis, Ph.D. Senior Software Engineer EKT hgeorgiadis@ekt.gr The beginning.. 42 institutions documented & digitalized

More information

Admin console design changes

Admin console design changes Admin console design changes New icons and navigation for the toolbar Settings open in card view Managing your users Managing user accounts inline Managing multiple users Filtering your organization units

More information

Expressions and Casting

Expressions and Casting Expressions and Casting C# Programming Rob Miles Data Manipulation We know that programs use data storage (variables) to hold values and statements to process the data The statements are obeyed in sequence

More information

printf( Please enter another number: ); scanf( %d, &num2);

printf( Please enter another number: ); scanf( %d, &num2); CIT 593 Intro to Computer Systems Lecture #13 (11/1/12) Now that we've looked at how an assembly language program runs on a computer, we're ready to move up a level and start working with more powerful

More information

Extension Web Publishing 3 Lecture # 1. Chapter 6 Site Types and Architectures

Extension Web Publishing 3 Lecture # 1. Chapter 6 Site Types and Architectures Chapter 6 Site Types and Architectures Site Types Definition: A public Web site, an Internet Web site, an external Web site or simply a Web site is one that is not explicitly restricted to a particular

More information

Detailed Guide to Office Word

Detailed Guide to Office Word Detailed Guide to Office 2010 - Word Microsoft Word is many different things to many different people. It can be used for anything from creating a simple document to creating templates to creating forms.

More information

With Dreamweaver CS4, Adobe has radically

With Dreamweaver CS4, Adobe has radically Introduction to the Dreamweaver Interface With Dreamweaver CS4, Adobe has radically reengineered the Dreamweaver interface to provide a more unified experience across all of the Creative Suite applications.

More information

CS103 Handout 29 Winter 2018 February 9, 2018 Inductive Proofwriting Checklist

CS103 Handout 29 Winter 2018 February 9, 2018 Inductive Proofwriting Checklist CS103 Handout 29 Winter 2018 February 9, 2018 Inductive Proofwriting Checklist In Handout 28, the Guide to Inductive Proofs, we outlined a number of specifc issues and concepts to be mindful about when

More information

Welcome to Mac OS X, the world s most advanced operating system. This book helps you start using Mac OS X. First install the software, then discover h

Welcome to Mac OS X, the world s most advanced operating system. This book helps you start using Mac OS X. First install the software, then discover h Welcome to Mac OS X Welcome to Mac OS X, the world s most advanced operating system. This book helps you start using Mac OS X. First install the software, then discover how easy it is to use. 2 Installing

More information

Unit 6 Chapter 15 EXAMPLES OF COMPLEXITY CALCULATION

Unit 6 Chapter 15 EXAMPLES OF COMPLEXITY CALCULATION DESIGN AND ANALYSIS OF ALGORITHMS Unit 6 Chapter 15 EXAMPLES OF COMPLEXITY CALCULATION http://milanvachhani.blogspot.in EXAMPLES FROM THE SORTING WORLD Sorting provides a good set of examples for analyzing

More information

Testing and Migration

Testing and Migration Testing and Migration Tudor Gîrba www.tudorgirba.com Reengineering... is the examination and alteration of a subject system to reconstitute it in a new form and the subsequent implementation of the new

More information

Assignment 5 is posted! Heuristic evaluation and AB testing. Heuristic Evaluation. Thursday: AB Testing

Assignment 5 is posted! Heuristic evaluation and AB testing. Heuristic Evaluation. Thursday: AB Testing HCI and Design Topics for today Assignment 5 is posted! Heuristic evaluation and AB testing Today: Heuristic Evaluation Thursday: AB Testing Formal Usability Testing Formal usability testing in a lab:

More information

Objects and Classes. Chapter 8

Objects and Classes. Chapter 8 200 Chapter 8 Objects and Classes The style of programming we have seen so far is called procedural programming. This was the first programming paradigm, developed in the 1950 s and 1960 s alongside the

More information

Extreme Java Productivity with Spring Roo and Spring 3.0

Extreme Java Productivity with Spring Roo and Spring 3.0 Extreme Java Productivity with Spring Roo and Spring 3.0 Rod Johnson Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Agenda Motivation

More information

Open and respond to this poll: PollEv.com/comp110. Calling Methods Mr. Roboto

Open and respond to this poll: PollEv.com/comp110. Calling Methods Mr. Roboto Open and respond to this poll: PollEv.com/comp110 Lecture 1 Calling Methods Mr. Roboto Fall 2016 Special thanks to Dr. Andy van Dam, my grad school advisor, and Brown s CS15 course for this fantastic method

More information

Programming Using C# QUEEN S UNIVERSITY BELFAST. Practical Week 7

Programming Using C# QUEEN S UNIVERSITY BELFAST. Practical Week 7 Programming Using C# QUEEN S UNIVERSITY BELFAST Practical Week 7 Table of Contents PRACTICAL 7... 2 EXERCISE 1... 2 TASK 1: Zoo Park (Without Inheritance)... 2 TASK 2: Zoo Park with Inheritance... 5 TASK

More information