Understanding Concerns in Software: Insights Gained from Two Case Studies Meghan Revelle, Tiffany Broadbent, and David Coppit

Size: px
Start display at page:

Download "Understanding Concerns in Software: Insights Gained from Two Case Studies Meghan Revelle, Tiffany Broadbent, and David Coppit"

Transcription

1 Understanding Concerns in Software: Insights Gained from Two Case Studies Meghan Revelle, Tiffany Broadbent, and David Coppit Department of Computer Science The College of William and Mary

2 Separation of Concerns in Software Encapsulation, separation, and abstraction of concerns key ways to fight complexity [Dijkstra76, Parnas72] Programming language support: subroutines, abstract data types, classes, aspects Reduce scattering of concerns across modules, and tangling of concerns within a module Reduced complexity yields less faults, lower maintenance costs, higher productivity 2

3 No Consensus on Concerns Definitions vary: General: "any consideration about the implementation of a program" [Robillard] Specific: features [Lai & Murphy] IEEE: "concerns are those interests which pertain to the system s development, its operation or any other aspects that are critical or otherwise important to one or more stakeholders" 3

4 Research Questions What is a concern? What types of concerns are there? How subjective are concerns to programmers? Do programmers think at similar levels of abstraction? How are concerns manifested in code? At what granularity? Are there factors that impact identification of concerns in code? 4

5 Approach Two case studies, where two programmers identified concerns in an existing system GNU sort: C, imperative, batch, feature-oriented Minesweeper: Java, object-oriented, interactive Compared the set of concerns found by each Compared the code for the concerns Classified concerns into types Studied factors for agreement 5

6 6

7 Metrics Overlap: Concern code programmer agreement Tried character and line accuracies Spread: The distribution of a concern in code 7

8 Concern Abstraction Mapping related concepts between programmers Shapes Shapes Triangles Squares Triangles Circles Squares Circles 8

9 Case Study #1: GNU sort Sorts lines from STDIN or files, merges sorted files, checks sortedness 2145 lines of C Batch Feature-oriented Revelle identified 50 concerns Previous data for 83 concerns [Carver & Griswold 1999] 9

10 Case Study #1: Concern Comparison 23 concerns in common, with >80% average character overlap Differences due to: Different levels of abstraction (more detail) System-specific concerns Sort Mode Modes Check Mode Merge Mode After abstraction mapping: Ours C&G's - 7 system-oriented concerns 10

11 11

12 Case Study #2: Minesweeper Game to find mines without exploding them 2776 lines of Java in six classes Interactive GUI-oriented Revelle identified 30 concerns Broadbent identified 26 concerns 12

13 Case Study #2: Concern Comparison 13 concerns in common, with about 50% character overlap Differences due to: Different levels of abstraction Not as feature-oriented as sort After abstraction mapping: Revelle's - 1 Broadbent's

14 14

15 15

16 Abstraction and Concern Code Overlap Level of Abstraction GUI 15.00% Game State 34.86% Game Difficulty 30.00% Debug 40.12% Graphics 35.98% Minefield 47.65% LED 45.80% Images 52.93% Cell State 79.32% Flag Cell 57.38% Error Handling 81.25% Menu 88.87% Timer 78.87% 0.00% 20.00% 40.00% 60.00% 80.00% % Character Concern Overlap 16

17 Spread and Concern Code Overlap Number of Classes GUI 15.00% Game Difficulty Game State 34.86% Graphics 35.98% Debug 40.12% Images 52.93% LED: 45.80% Minefield 47.65% Flag Cell 57.38% Error Handling 81.25% Timer 78.87% Cell State 79.32% Menu 88.87% % 20.00% 40.00% 60.00% 80.00% % Character Concern Overlap 17

18 Observations Measuring overlap accurately is tricky Character-level only within constant strings Tokens elsewhere Can be helped with tagging guidelines Context matters if(currentcell.getstate()!= Cell.STATE_FLAGGED) The meaning of a concern is important Programmers identify similar concerns, but work at different levels of abstraction 18

19 Types of Concerns Feature GUI, sorting, merging Domain-Independent Unit of Functionality Debugging, error handling Input/Output Internal Program Characteristic Caching, buffers Language Characteristic Exception handling, constructors 19

20 Concern Identification Guidelines 1. Review the file and look up any unfamiliar constructs of the language. 2. Identify the main pieces of the program (features); they are concerns. 3. Constants, user-defined types, class attributes and imported classes are good indicators of concerns. 4. Entire functions usually relate to a concern or support a concern (except for main). 5. When you create a concern, decide what it encompasses. 6. Look for domain independent concerns such as debugging and error handling. 20

21 Concern Tagging Guidelines 7. Different levels of concerns can be tagged in the same code fragment. 8. Even though a code fragment is tagged with one concern, it can be tagged with another concern. 9. Use the search feature to find code that is possibly related to the current concern of interest, but take the time to figure out the context of the code before tagging it. 10. If a function is tagged with a concern, the calls to it should also be tagged. 11. If the whole body of an if or switch statement is tagged, tag the if or switch as well as the beginning and ending braces. 12. If the whole body of a loop is tagged, tag the loop conditionals as well as the beginning and ending braces. 13. Make sure to tag both the declaration and use of variables associated with a concern. 14. When a variable is an argument or parameter to a function, tag only the argument or parameter and associated type. 15. Tag the whole expression when it affects a concern variable. When a concern variable is used on the right side of an assignment statement, tag only the use of that variable. 16. White space, new lines and comments should be included when tagging concerns. 17. Most to all of the code in a file should be tagged. 21

22 Evaluation Only two data points for small systems Need more study of contributing factors Studied scatter (average distance between instances of a concern in the file) Taxonomy only a start Patterns Hard to control all factors Example: Spread vs. size 22

23 Conclusion Two case studies investigate how programmers think about concerns, and identify concern code Identified 5 types of concerns Developed (but did not evaluate) guidelines Spread and abstraction are key factors that affect concern identification Programmers do identify same concepts But at different levels of abstraction Concerns manifested at character level 23

Software Plans for Separation of Concerns

Software Plans for Separation of Concerns Software Plans for Separation of Concerns David Coppit and Benjamin Cox The College of William and Mary 9/11/13 1 Elevation 9/11/13 2 Floor Plan 9/11/13 3 Foundation Plan 9/11/13 4 Software 9/11/13 5 Example:

More information

A Model for Software Plans

A Model for Software Plans A Model for Software Plans Robert R. Painter and David Coppit Department of Computer Science The College of William and Mary private static Vector readdata() { BufferedReader stdin = new BufferedReader(

More information

GRAPHICS & INTERACTIVE PROGRAMMING. Lecture 1 Introduction to Processing

GRAPHICS & INTERACTIVE PROGRAMMING. Lecture 1 Introduction to Processing BRIDGES TO COMPUTING General Information: This document was created for use in the "Bridges to Computing" project of Brooklyn College. This work is licensed under the Creative Commons Attribution-ShareAlike

More information

Assignment #4 Minesweeper

Assignment #4 Minesweeper Assignment #4 Minesweeper Date assigned: Friday, January 9, 2015 Date due: Java Minesweeper, Tuesday, January 13, 2015 Android Minesweeper, Friday, January 17, 2015 Points: 100 Java Minesweeper The game

More information

Array Basics: Outline. Creating and Accessing Arrays. Creating and Accessing Arrays. Arrays (Savitch, Chapter 7)

Array Basics: Outline. Creating and Accessing Arrays. Creating and Accessing Arrays. Arrays (Savitch, Chapter 7) Array Basics: Outline Arrays (Savitch, Chapter 7) TOPICS Array Basics Arrays in Classes and Methods Programming with Arrays Searching and Sorting Arrays Multi-Dimensional Arrays Static Variables and Constants

More information

Programming Languages and Techniques (CIS120)

Programming Languages and Techniques (CIS120) Programming Languages and Techniques () Lecture 13 February 12, 2018 Mutable State & Abstract Stack Machine Chapters 14 &15 Homework 4 Announcements due on February 20. Out this morning Midterm results

More information

Software Plans. A Multidimensional Approach for Fine-Grained Tangling of Concerns in Code. David Coppit Robert R. Painter Meghan Revelle

Software Plans. A Multidimensional Approach for Fine-Grained Tangling of Concerns in Code. David Coppit Robert R. Painter Meghan Revelle Software Plans A Multidimensional Approach for Fine-Grained Tangling of Concerns in Code David Coppit Robert R. Painter Meghan Revelle Department of Computer Science The College of William and Mary Williamsburg,

More information

3D Graphics Programming Mira Costa High School - Class Syllabus,

3D Graphics Programming Mira Costa High School - Class Syllabus, 3D Graphics Programming Mira Costa High School - Class Syllabus, 2009-2010 INSTRUCTOR: Mr. M. Williams COURSE GOALS and OBJECTIVES: 1 Learn the fundamentals of the Java language including data types and

More information

Chapter 21 Aspect-Oriented Software Engineering (AOSE)

Chapter 21 Aspect-Oriented Software Engineering (AOSE) Chapter 21 Aspect-Oriented Software Engineering (AOSE) Chapter 21 Aspect-Oriented Software Engineering Slide 1 Topics covered Introduction and motivation The separation of concerns Core vs. cross-cutting

More information

MARS AREA SCHOOL DISTRICT Curriculum TECHNOLOGY EDUCATION

MARS AREA SCHOOL DISTRICT Curriculum TECHNOLOGY EDUCATION Course Title: Java Technologies Grades: 10-12 Prepared by: Rob Case Course Unit: What is Java? Learn about the history of Java. Learn about compilation & Syntax. Discuss the principles of Java. Discuss

More information

Lecturer: William W.Y. Hsu. Programming Languages

Lecturer: William W.Y. Hsu. Programming Languages Lecturer: William W.Y. Hsu Programming Languages Chapter 9 Data Abstraction and Object Orientation 3 Object-Oriented Programming Control or PROCESS abstraction is a very old idea (subroutines!), though

More information

JAVA CONCEPTS Early Objects

JAVA CONCEPTS Early Objects INTERNATIONAL STUDENT VERSION JAVA CONCEPTS Early Objects Seventh Edition CAY HORSTMANN San Jose State University Wiley CONTENTS PREFACE v chapter i INTRODUCTION 1 1.1 Computer Programs 2 1.2 The Anatomy

More information

Big Java Late Objects

Big Java Late Objects Big Java Late Objects Horstmann, Cay S. ISBN-13: 9781118087886 Table of Contents 1. Introduction 1.1 Computer Programs 1.2 The Anatomy of a Computer 1.3 The Java Programming Language 1.4 Becoming Familiar

More information

APCS Semester #1 Final Exam Practice Problems

APCS Semester #1 Final Exam Practice Problems Name: Date: Per: AP Computer Science, Mr. Ferraro APCS Semester #1 Final Exam Practice Problems The problems here are to get you thinking about topics we ve visited thus far in preparation for the semester

More information

CMPSCI 187: Programming With Data Structures. Lecture 6: The StringLog ADT David Mix Barrington 17 September 2012

CMPSCI 187: Programming With Data Structures. Lecture 6: The StringLog ADT David Mix Barrington 17 September 2012 CMPSCI 187: Programming With Data Structures Lecture 6: The StringLog ADT David Mix Barrington 17 September 2012 The StringLog ADT Data Abstraction Three Views of Data Java Interfaces Defining the StringLog

More information

Index. Animation. factors, 186. Abstract Window Toolkit (AWT), 111. frame rate, 185. Access modifiers. multiple objects. package-private, 27

Index. Animation. factors, 186. Abstract Window Toolkit (AWT), 111. frame rate, 185. Access modifiers. multiple objects. package-private, 27 Index A Abstract Window Toolkit (AWT), 111 Access modifiers package-private, 27 private, 27 protected, 27 public, 27 Additive operators, 57 58 Animal classes animals speak, 106 Carnivore interface, 105

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

Parallelizing Graphics Pipeline Execution (+ Basics of Characterizing a Rendering Workload)

Parallelizing Graphics Pipeline Execution (+ Basics of Characterizing a Rendering Workload) Lecture 2: Parallelizing Graphics Pipeline Execution (+ Basics of Characterizing a Rendering Workload) Visual Computing Systems Today Finishing up from last time Brief discussion of graphics workload metrics

More information

Software Design Models, Tools & Processes. Lecture 6: Transition Phase Cecilia Mascolo

Software Design Models, Tools & Processes. Lecture 6: Transition Phase Cecilia Mascolo Software Design Models, Tools & Processes Lecture 6: Transition Phase Cecilia Mascolo UML Component diagram Component documentation Your own classes should be documented the same way library classes are.

More information

Architectural Styles. Reid Holmes

Architectural Styles. Reid Holmes Material and some slide content from: - Emerson Murphy-Hill - Software Architecture: Foundations, Theory, and Practice - Essential Software Architecture Architectural Styles Reid Holmes Lecture 5 - Tuesday,

More information

A Survey of Concern-Oriented Development Approaches Nicolas Lopez

A Survey of Concern-Oriented Development Approaches Nicolas Lopez A Survey of Concern-Oriented Development Approaches Nicolas Lopez Advisor: André van der Hoek Abstract Concern-oriented development has been of significant interest to the software engineering community

More information

IMPROVING FEATURE LOCATION BY COMBINING DYNAMIC ANALYSIS AND STATIC INFERENCES

IMPROVING FEATURE LOCATION BY COMBINING DYNAMIC ANALYSIS AND STATIC INFERENCES IMPROVING FEATURE LOCATION BY COMBINING DYNAMIC ANALYSIS AND STATIC INFERENCES Meghan Revelle Advisor: David Coppit Department of Computer Science The College of William and Mary Williamsburg, Virginia

More information

Performance analysis basics

Performance analysis basics Performance analysis basics Christian Iwainsky Iwainsky@rz.rwth-aachen.de 25.3.2010 1 Overview 1. Motivation 2. Performance analysis basics 3. Measurement Techniques 2 Why bother with performance analysis

More information

Govt. of Karnataka, Department of Technical Education Diploma in Information Science & Engineering. Fifth Semester

Govt. of Karnataka, Department of Technical Education Diploma in Information Science & Engineering. Fifth Semester Govt. of Karnataka, Department of Technical Education Diploma in Information Science & Engineering Fifth Semester Subject: Programming With Java Contact Hrs / week: 4 Total hrs: 64 Table of Contents SN

More information

The Object Oriented Paradigm

The Object Oriented Paradigm The Object Oriented Paradigm Joseph Spring 7COM1023 Programming Paradigms 1 Discussion The OO Paradigm Procedural Abstraction Abstract Data Types Constructors, Methods, Accessors and Mutators Coupling

More information

Optimal Algorithm. Replace page that will not be used for longest period of time Used for measuring how well your algorithm performs

Optimal Algorithm. Replace page that will not be used for longest period of time Used for measuring how well your algorithm performs Optimal Algorithm Replace page that will not be used for longest period of time Used for measuring how well your algorithm performs page 1 Least Recently Used (LRU) Algorithm Reference string: 1, 2, 3,

More information

ClearSpeed Visual Profiler

ClearSpeed Visual Profiler ClearSpeed Visual Profiler Copyright 2007 ClearSpeed Technology plc. All rights reserved. 12 November 2007 www.clearspeed.com 1 Profiling Application Code Why use a profiler? Program analysis tools are

More information

Matlab Advanced Programming. Matt Wyant University of Washington

Matlab Advanced Programming. Matt Wyant University of Washington Matlab Advanced Programming Matt Wyant University of Washington Matlab as a programming Language Strengths (as compared to C/C++/Fortran) Fast to write -no type declarations needed Memory allocation/deallocation

More information

GB Programming Challenges

GB Programming Challenges GB21802 - Programming Challenges Week 1 - Ad-hoc problems Claus Aranha caranha@cs.tsukuba.ac.jp College of Information Science April 18, 2014 Some Notes Before the Class Don t forget to send me your username

More information

Background. Virtual Memory (2/2) Demand Paging Example. First-In-First-Out (FIFO) Algorithm. Page Replacement Algorithms. Performance of Demand Paging

Background. Virtual Memory (2/2) Demand Paging Example. First-In-First-Out (FIFO) Algorithm. Page Replacement Algorithms. Performance of Demand Paging Virtual Memory (/) Background Page Replacement Allocation of Frames Thrashing Background Virtual memory separation of user logical memory from physical memory. Only part of the program needs to be in memory

More information

Separation of Concerns. AspectJ. What if the concerns are Cross-Cutting? SoC: Programming Paradigms. Key theme: Modularity and Encapsulation

Separation of Concerns. AspectJ. What if the concerns are Cross-Cutting? SoC: Programming Paradigms. Key theme: Modularity and Encapsulation Separation of Concerns and AspectJ EEC 625 Lecture #16 April 3, 2006 EEC 625: Software Design & Architecture Separation of Concerns Breaking a program into pieces that overlap in functionality as little

More information

Visualising Solid Shapes

Visualising Solid Shapes VISUALISING SOLID SHAPES 2 7 7 Visualising Solid Shapes Chapter 15 15.1 INTRODUCTION: PLANE FIGURES AND SOLID SHAPES In this chapter, you will classify figures you have seen in terms of what is known as

More information

Support Services Document. Dynamic Map Points. Version 1.0.0

Support Services Document. Dynamic Map Points. Version 1.0.0 Support Services Document Dynamic Map Points Version 1.0.0 Overview Dynamic Map Points is a feature that gives the user the ability to create new or additional data points to any of the geographic map

More information

Chapter 9 :: Data Abstraction and Object Orientation

Chapter 9 :: Data Abstraction and Object Orientation Chapter 9 :: Data Abstraction and Object Orientation Programming Language Pragmatics Michael L. Scott Control or PROCESS abstraction is a very old idea (subroutines!), though few languages provide it in

More information

Objectives. Order (sort) the elements of an array Search an array for a particular item Define, use multidimensional array

Objectives. Order (sort) the elements of an array Search an array for a particular item Define, use multidimensional array Arrays Chapter 7 Objectives Nature and purpose of an array Using arrays in Java programs Methods with array parameter Methods that return an array Array as an instance variable Use an array not filled

More information

Addition and Subtraction

Addition and Subtraction PART Looking Back At: Grade Number and Operations 89 Geometry 9 Fractions 94 Measurement 9 Data 9 Number and Operations 96 Geometry 00 Fractions 0 Measurement 02 Data 0 Looking Forward To: Grade Number

More information

Software Architecture

Software Architecture Software Architecture Does software architecture global design?, architect designer? Overview What is it, why bother? Architecture Design Viewpoints and view models Architectural styles Architecture asssessment

More information

Raster Classification with ArcGIS Desktop. Rebecca Richman Andy Shoemaker

Raster Classification with ArcGIS Desktop. Rebecca Richman Andy Shoemaker Raster Classification with ArcGIS Desktop Rebecca Richman Andy Shoemaker Raster Classification What is it? - Classifying imagery into different land use/ land cover classes based on the pixel values of

More information

Part I: Preliminaries 24

Part I: Preliminaries 24 Contents Preface......................................... 15 Acknowledgements................................... 22 Part I: Preliminaries 24 1. Basics of Software Testing 25 1.1. Humans, errors, and testing.............................

More information

NARROW CORRIDOR. Teacher s Guide Getting Started. Lay Chin Tan Singapore

NARROW CORRIDOR. Teacher s Guide Getting Started. Lay Chin Tan Singapore Teacher s Guide Getting Started Lay Chin Tan Singapore Purpose In this two-day lesson, students are asked to determine whether large, long, and bulky objects fit around the corner of a narrow corridor.

More information

CSE351 Winter 2016, Final Examination March 16, 2016

CSE351 Winter 2016, Final Examination March 16, 2016 CSE351 Winter 2016, Final Examination March 16, 2016 Please do not turn the page until 2:30. Rules: The exam is closed-book, closed-note, etc. Please stop promptly at 4:20. There are 125 (not 100) points,

More information

Objective: Analyze and classify triangles based on side length, angle measure or both.

Objective: Analyze and classify triangles based on side length, angle measure or both. NYS COMMON CORE MATHEMATICS CURRICULUM Lesson 13 4 4 Lesson 13 Objective: Analyze and classify triangles based on side length, angle measure or Suggested Lesson Structure Fluency Practice Application Problem

More information

This page intentionally left blank

This page intentionally left blank This page intentionally left blank arting Out with Java: From Control Structures through Objects International Edition - PDF - PDF - PDF Cover Contents Preface Chapter 1 Introduction to Computers and Java

More information

Project MineSweeper Collaboration: Solo Complete this Project by yourself or with help from Section Leaders and Rick You are asked to write the non-graphical user interface aspects of the popular game

More information

3 Welcome Application 41 Introduction to Visual Programming

3 Welcome Application 41 Introduction to Visual Programming CO N T E N T S Preface xvii 1 Graphing Application 1 Introducing Computers, the Internet and Visual Basic.NET 1.1 What Is a Computer? 1 1.2 Computer Organization 2 1.3 Machine Languages, Assembly Languages

More information

Investigations in Number, Data, and Space for the Common Core 2012

Investigations in Number, Data, and Space for the Common Core 2012 A Correlation of Investigations in Number, Data, and Space for the Common Core 2012 to the Common Core State s with California Additions s Map Kindergarten Mathematics Common Core State s with California

More information

Describe Plane Shapes

Describe Plane Shapes Lesson 12.1 Describe Plane Shapes You can use math words to describe plane shapes. point an exact position or location line endpoints line segment ray a straight path that goes in two directions without

More information

Introduction to Parallel Performance Engineering

Introduction to Parallel Performance Engineering Introduction to Parallel Performance Engineering Markus Geimer, Brian Wylie Jülich Supercomputing Centre (with content used with permission from tutorials by Bernd Mohr/JSC and Luiz DeRose/Cray) Performance:

More information

Chapter 10 :: Data Abstraction and Object Orientation

Chapter 10 :: Data Abstraction and Object Orientation Chapter 10 :: Data Abstraction and Object Orientation Programming Language Pragmatics, Fourth Edition Michael L. Scott Copyright 2016 Elsevier Chapter10_Data_Abstraction_and_Object_Orientation_4e 1 Object-Oriented

More information

AP Computer Science A Mira Costa High School - Class Syllabus,

AP Computer Science A Mira Costa High School - Class Syllabus, AP Computer Science A Mira Costa High School - Class Syllabus, 2011-2012 INSTRUCTOR: Mr. M. Williams COURSE GOALS and OBJECTIVES: 1 Learn the fundamentals of the Java language including data types and

More information

TIMSS 2011 Fourth Grade Mathematics Item Descriptions developed during the TIMSS 2011 Benchmarking

TIMSS 2011 Fourth Grade Mathematics Item Descriptions developed during the TIMSS 2011 Benchmarking TIMSS 2011 Fourth Grade Mathematics Item Descriptions developed during the TIMSS 2011 Benchmarking Items at Low International Benchmark (400) M01_05 M05_01 M07_04 M08_01 M09_01 M13_01 Solves a word problem

More information

Course Outline. Introduction to java

Course Outline. Introduction to java Course Outline 1. Introduction to OO programming 2. Language Basics Syntax and Semantics 3. Algorithms, stepwise refinements. 4. Quiz/Assignment ( 5. Repetitions (for loops) 6. Writing simple classes 7.

More information

Using the Shaping Tools to Modify Objects

Using the Shaping Tools to Modify Objects Using the Shaping Tools to Modify Objects In CorelDRAW, shaping commands give users a powerful means to create new shapes or manipulate current shapes by adding, subtracting, or dividing them. Shaping

More information

NaCIN An Eclipse Plug-In for Program Navigation-based Concern Inference

NaCIN An Eclipse Plug-In for Program Navigation-based Concern Inference NaCIN An Eclipse Plug-In for Program Navigation-based Concern Inference Imran Majid and Martin P. Robillard School of Computer Science McGill University Montreal, QC, Canada {imajid, martin} @cs.mcgill.ca

More information

In this task, students will investigate the attributes of quadrilaterals.

In this task, students will investigate the attributes of quadrilaterals. PRACTICE TASK: Investigating Quadrilaterals In this task, students will investigate the attributes of quadrilaterals. STANDARDS FOR MATHEMATICAL CONTENT MCC5.G.3 Understanding that attributes belonging

More information

Geometry. Professor Harms Minnesota State University Moorhead Feb. 24 th, 2014

Geometry. Professor Harms Minnesota State University Moorhead Feb. 24 th, 2014 Geometry Professor Harms Minnesota State University Moorhead Feb. 24 th, 2014 Engaging those Calvins in your class The van Hiele model of thinking in Geometry The student recognizes, names, compares and

More information

Standards/ Strands Essential Questions Skills Assessment. What are the strengths and weaknesses of Processing as a programming language?

Standards/ Strands Essential Questions Skills Assessment. What are the strengths and weaknesses of Processing as a programming language? WDHS Curriculum Map Course: Introduction to Computer Science 2 Time Interval/ Content Standards/ Strands Essential Questions Skills Assessment Unit 1: Introduction to 2 weeks Learning Lesson 1 (Chapters

More information

Six Marks Questions: ( ) 3) Find the value of the derivative of f (z) = at z = i. r r r r. ( ) where C: z-a = r. (p). f ( z)

Six Marks Questions: ( ) 3) Find the value of the derivative of f (z) = at z = i. r r r r. ( ) where C: z-a = r. (p). f ( z) Bapatla Engineering College:: Bapatla (Autonomous) Department of Information Technology Assignment-I Question Paper - IV Sem Class: 2/4 B.Tech 2017-18 Section: B Sub: EM-IV (14MA401) Section: A & B Date:

More information

Chapter 1: Introduction Operating Systems MSc. Ivan A. Escobar

Chapter 1: Introduction Operating Systems MSc. Ivan A. Escobar Chapter 1: Introduction Operating Systems MSc. Ivan A. Escobar What is an Operating System? A program that acts as an intermediary between a user of a computer and the computer hardware. Operating system

More information

File Management By : Kaushik Vaghani

File Management By : Kaushik Vaghani File Management By : Kaushik Vaghani File Concept Access Methods File Types File Operations Directory Structure File-System Structure File Management Directory Implementation (Linear List, Hash Table)

More information

K.CC.3 Write numbers from 1 to 20. Represent a number of objects with a written numeral (1-20). Write numbers to 20.

K.CC.3 Write numbers from 1 to 20. Represent a number of objects with a written numeral (1-20). Write numbers to 20. COUNTING & CARDINALITY NAME: K.CC.1 Count to 100 by ones and by tens. See individual assessment. K.CC.2 Count forward beginning from a given number within the known sequence. See individual assessment.

More information

Software Engineering (CSC 4350/6350) Rao Casturi

Software Engineering (CSC 4350/6350) Rao Casturi Software Engineering (CSC 4350/6350) Rao Casturi Testing Software Engineering -CSC4350/6350 - Rao Casturi 2 Testing What is testing? Process of finding the divergence between the expected behavior of the

More information

Before You Begin 1 Graphing Application 1 Introducing Computers, the Internet and Visual Basic.NET

Before You Begin 1 Graphing Application 1 Introducing Computers, the Internet and Visual Basic.NET CO N T E N T S Preface Before You Begin xviii xxviii 1 Graphing Application 1 Introducing Computers, the Internet and Visual Basic.NET 1.1 What Is a Computer? 1 1.2 Computer Organization 2 1.3 Machine

More information

instruction is 6 bytes, might span 2 pages 2 pages to handle from 2 pages to handle to Two major allocation schemes

instruction is 6 bytes, might span 2 pages 2 pages to handle from 2 pages to handle to Two major allocation schemes Allocation of Frames How should the OS distribute the frames among the various processes? Each process needs minimum number of pages - at least the minimum number of pages required for a single assembly

More information

Programs as Models. Procedural Paradigm. Class Methods. CS256 Computer Science I Kevin Sahr, PhD. Lecture 11: Objects

Programs as Models. Procedural Paradigm. Class Methods. CS256 Computer Science I Kevin Sahr, PhD. Lecture 11: Objects CS256 Computer Science I Kevin Sahr, PhD Lecture 11: Objects 1 Programs as Models remember: we write programs to solve realworld problems programs act as models of the real-world problem to be solved one

More information

Hanukkah. Star of David Tessellation. Name:... Date:...

Hanukkah. Star of David Tessellation. Name:... Date:... Name:... Date:... Star of David Tessellation The Star of David is known as a hexagram shape. This means it s made from two equilateral triangles one placed on top of the other. An equilateral triangle

More information

The Dynamic Typing Interlude

The Dynamic Typing Interlude CHAPTER 6 The Dynamic Typing Interlude In the prior chapter, we began exploring Python s core object types in depth with a look at Python numbers. We ll resume our object type tour in the next chapter,

More information

1 Getting used to Python

1 Getting used to Python 1 Getting used to Python We assume you know how to program in some language, but are new to Python. We'll use Java as an informal running comparative example. Here are what we think are the most important

More information

Create an Adorable Hedgehog with Basic Tools in Inkscape Aaron Nieze on Sep 23rd 2013 with 5 Comments

Create an Adorable Hedgehog with Basic Tools in Inkscape Aaron Nieze on Sep 23rd 2013 with 5 Comments Create an Adorable Hedgehog with Basic Tools in Inkscape Aaron Nieze on Sep 23rd 2013 with 5 Comments Tutorial Details Software: Inkscape Difficulty: Beginner Completion Time: 2 hours View post on Tuts+

More information

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 11/10/2015

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 11/10/2015 Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm Rao Casturi 11/10/2015 http://cs.gsu.edu/~ncasturi1 Class announcements Final Exam date - Dec 1 st. Final Presentations Dec 3 rd. And

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

Subject to Change Drawing Application 1 Introducing Computers, the Internet and C#

Subject to Change Drawing Application 1 Introducing Computers, the Internet and C# CO N T E N T S Subject to Change 08-01-2003 Preface Before You Begin Brief Table of Contents i iv vii 1 Drawing Application 1 Introducing Computers, the Internet and C# 1.1 What Is a Computer? 1 1.2 Computer

More information

CISC 1600 Lecture 3.1 Introduction to Processing

CISC 1600 Lecture 3.1 Introduction to Processing CISC 1600 Lecture 3.1 Introduction to Processing Topics: Example sketches Drawing functions in Processing Colors in Processing General Processing syntax Processing is for sketching Designed to allow artists

More information

3.1 Using Exponents to Describe Numbers

3.1 Using Exponents to Describe Numbers .1 Using to Describe Numbers Represent repeated multiplication with exponents Describe how powers represent repeated multiplication Demonstrate the difference between the exponent and the base by building

More information

DB2 is a complex system, with a major impact upon your processing environment. There are substantial performance and instrumentation changes in

DB2 is a complex system, with a major impact upon your processing environment. There are substantial performance and instrumentation changes in DB2 is a complex system, with a major impact upon your processing environment. There are substantial performance and instrumentation changes in versions 8 and 9. that must be used to measure, evaluate,

More information

Chapter 5 Memory Hierarchy Design. In-Cheol Park Dept. of EE, KAIST

Chapter 5 Memory Hierarchy Design. In-Cheol Park Dept. of EE, KAIST Chapter 5 Memory Hierarchy Design In-Cheol Park Dept. of EE, KAIST Why cache? Microprocessor performance increment: 55% per year Memory performance increment: 7% per year Principles of locality Spatial

More information

Page Replacement. 3/9/07 CSE 30341: Operating Systems Principles

Page Replacement. 3/9/07 CSE 30341: Operating Systems Principles Page Replacement page 1 Page Replacement Algorithms Want lowest page-fault rate Evaluate algorithm by running it on a particular string of memory references (reference string) and computing the number

More information

Main Idea: classify polygons and determine which polygons can form a tessellation.

Main Idea: classify polygons and determine which polygons can form a tessellation. 10 8: Polygons and Tesselations Main Idea: classify polygons and determine which polygons can form a tessellation. Vocabulary: polygon A simple closed figure in a plane formed by three or more line segments

More information

Specification-Based Testing 1

Specification-Based Testing 1 Specification-Based Testing 1 Stuart Anderson Overview 1 Basic terminology A view of faults through failure Systematic versus randomised testing A systematic approach to specification-based testing A simple

More information

Syllabus- Java + Android. Java Fundamentals

Syllabus- Java + Android. Java Fundamentals Introducing the Java Technology Syllabus- Java + Android Java Fundamentals Key features of the technology and the advantages of using Java Using an Integrated Development Environment (IDE) Introducing

More information

Diocese of Erie Mathematics Curriculum First Grade August 2012

Diocese of Erie Mathematics Curriculum First Grade August 2012 Operations and Algebraic Thinking 1.OA Represent and solve problems involving addition and subtraction 1 1. Use addition within 20 to solve word x+4=10; 4+3=x; 7+x=12 problems involving situations of adding

More information

Software Engineering Fall 2014

Software Engineering Fall 2014 Software Engineering Fall 2014 (CSC 4350/6350) Mon.- Wed. 5:30 pm 7:15 pm ALC : 107 Rao Casturi 11/10/2014 Final Exam date - Dec 10 th? Class announcements Final Presentations Dec 3 rd. And Dec 8 th. Ability

More information

Building Java Programs

Building Java Programs Building Java Programs A Back to Basics Approach Stuart Reges I Marty Stepp University ofwashington Preface 3 Chapter 1 Introduction to Java Programming 25 1.1 Basic Computing Concepts 26 Why Programming?

More information

Lab 3 : Sort program

Lab 3 : Sort program Lab : Sort program Introduction Your pointy haired Dilbert manager decided to write a Sort program which you have now inherited. The Sort program intends to emulate the main functionality of the GNU sort

More information

UMBC CMSC 331 Final Exam

UMBC CMSC 331 Final Exam UMBC CMSC 331 Final Exam Name: UMBC Username: You have two hours to complete this closed book exam. We reserve the right to assign partial credit, and to deduct points for answers that are needlessly wordy

More information

North Carolina Standard Course of Study Kindergarten Mathematics

North Carolina Standard Course of Study Kindergarten Mathematics North Carolina Standard Course of Study Kindergarten Mathematics Standards for Mathematical Practice 1. Make sense of problems and persevere in solving them. 2. Reason abstractly and quantitatively. 3.

More information

DR. JIVRAJ MEHTA INSTITUTE OF TECHNOLOGY

DR. JIVRAJ MEHTA INSTITUTE OF TECHNOLOGY DR. JIVRAJ MEHTA INSTITUTE OF TECHNOLOGY Subject Name: - DISTRIBUTED SYSTEMS Semester :- 8 th Subject Code: -180701 Branch :- Computer Science & Engineering Department :- Computer Science & Engineering

More information

Methods. Contents Anatomy of a Method How to design a Method Static methods Additional Reading. Anatomy of a Method

Methods. Contents Anatomy of a Method How to design a Method Static methods Additional Reading. Anatomy of a Method Methods Objectives: 1. create a method with arguments 2. create a method with return value 3. use method arguments 4. use the return keyword 5. use the static keyword 6. write and invoke static methods

More information

Developing Geometric Reasoning Part 2. Focus on Quadrilaterals

Developing Geometric Reasoning Part 2. Focus on Quadrilaterals Developing Geometric Reasoning Part 2 Focus on Quadrilaterals Math Teacher Leader Seminar January 8 & 11, 2007 Henry Kepner Kevin McLeod DeAnn Huinker Connie Laughlin Karen Corlyn Lee Ann Pruske Paige

More information

Course: Honors AP Computer Science Instructor: Mr. Jason A. Townsend

Course: Honors AP Computer Science Instructor: Mr. Jason A. Townsend Course: Honors AP Computer Science Instructor: Mr. Jason A. Townsend Email: jtownsend@pkwy.k12.mo.us Course Description: The material for this course is the equivalent of one to two semesters of an entry

More information

Counting Objects and Sets CC Part 1 (Counting and Cardinality Standards: K.CC.4 K.CC.5)

Counting Objects and Sets CC Part 1 (Counting and Cardinality Standards: K.CC.4 K.CC.5) 1 Count with One to One Correspondence 2 Count with One to One Correspondence K.CC.4a: When counting objects say the number names in the standard 3 Count with One to One Correspondence order pairing each

More information

12/22/11. } Rolling a Six-Sided Die. } Fig 6.7: Rolling a Six-Sided Die 6,000,000 Times

12/22/11. } Rolling a Six-Sided Die. } Fig 6.7: Rolling a Six-Sided Die 6,000,000 Times } Rolling a Six-Sided Die face = 1 + randomnumbers.nextint( 6 ); The argument 6 called the scaling factor represents the number of unique values that nextint should produce (0 5) This is called scaling

More information

Grade 6 Math Circles Fall 2010 Tessellations I

Grade 6 Math Circles Fall 2010 Tessellations I 1 University of Waterloo Faculty of Mathematics entre for Education in Mathematics and omputing Grade 6 Math ircles Fall 2010 Tessellations I tessellation is a collection of shapes that fit together with

More information

Memory Hierarchy Basics

Memory Hierarchy Basics Computer Architecture A Quantitative Approach, Fifth Edition Chapter 2 Memory Hierarchy Design 1 Memory Hierarchy Basics Six basic cache optimizations: Larger block size Reduces compulsory misses Increases

More information

What s different about Factor?

What s different about Factor? Harshal Lehri What s different about Factor? Factor is a concatenative programming language - A program can be viewed as a series of functions applied on data Factor is a stack oriented program - Data

More information

A MATLAB Exercise Book. Ludmila I. Kuncheva and Cameron C. Gray

A MATLAB Exercise Book. Ludmila I. Kuncheva and Cameron C. Gray A MATLAB Exercise Book Ludmila I. Kuncheva and Cameron C. Gray Contents 1 Getting Started 1 1.1 MATLAB................................................. 1 1.2 Programming Environment......................................

More information

AP Computer Science AB

AP Computer Science AB AP Computer Science AB Dr. Tyler Krebs Voice Mail: 431-8938 Classroom: B128 Office: TV Studio Characteristics We Value in This Classroom: 1. Respect. (Show respect for everyone and everything.) 2. Integrity.

More information

Laboratory Activity 5: First Look at Classes

Laboratory Activity 5: First Look at Classes Laboratory Activity 5: First Look at Classes 1 Introduction The software company that you have been working for has asked you to developing a program that will be used by a Car Dealer. As the first stage

More information

(the bubble footer is automatically inserted in this space)

(the bubble footer is automatically inserted in this space) Page 1 of 12 Name: Email ID: CS 2150 Final Exam You MUST write your name and e-mail ID on EACH page and bubble in your userid at the bottom of EACH page including this page. If you are still writing when

More information

Chapter 13. Object Oriented Programming

Chapter 13. Object Oriented Programming Chapter 13. Object Oriented Programming Byoung-Tak Zhang TA: Hanock Kwak Biointelligence Laboratory School of Computer Science and Engineering Seoul National University http://bi.snu.ac.kr Computer Programming

More information