Fundamentals of Software Development 1Slide 1 Pair Programming: What is it? What is it?What is it? Two programmers working side-by-side, collaborating.

Slides:



Advertisements
Similar presentations
Tips for Working in Teams or Groups. Not always easy  What challenges have you had when working in a team or group?
Advertisements

30-Apr-15 Extreme Programming. 2 Software engineering methodologies A methodology is a formalized process or set of practices for creating software An.
CSE 321: Case Studies in Component-Based Software.
CS 3500 L12pp - 1 The Benefits of Pair Programming Robert Kessler School of Computing University of Utah Special thanks to Laurie Williams North Carolina.
Welcome to Algebra I **Please take one handout per student Mrs. Leah Wood.
Gild Project – Explorations….. CSc 115/160 (S01) Pair Programming.
March 25, 2002R McFadyen a lightweight approach to software development. about 5 years old has been used at: Bayerische Landesbank, Credit Swiss.
Pair Programming Two Programmers sit at one workstation Two Programmers sit at one workstation.
13-Jun-15 Extreme Programming. 2 Software engineering methodologies A methodology is a formalized process or set of practices for creating software An.
Pair Programming Collaboration in Software Development Process.
CS 410 Applied Algorithms Applied Algorithms Lecture #1 Introduction, class information, first problems.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
COMP4710 Senior Design Software Development Process.
Pair Programming Testing 2, October 14, Administration  Project due Monday 2PM SHARP  Remember all parts of documentation (list of tests, project.
ITEC 370 Lecture 15 Implementation. Review Questions? Draft of design document on F Brief 3-5 minute work update on F (will continue except for mid-term)
Introduction CSE 1310 – Introduction to Computers and Programming
Pair Programming Sarah Heckman Teaching Assistant Professor NC State University Tapestry Workshop Some materials courtesy of Laurie Williams, NC.
Pair Programming Sarah Heckman Teaching Associate Professor NC State Tapestry Workshop Some materials.
Welcome, Students! Miss Vaughn.
Slide 1 Standard Grade Computing Studies Systems Software.
TEAMWORK A FEW NOTES. MAYBE YOUR ONLY FULL-SCALE TEAM PROJECT AT WWU … 8 weeks A beginning and an end Consistent team membership Negotiation of schedules.
Pair Programming in the Classroom Mark Sherriff University of Virginia June 29, 2011 Some material courtesy of Laurie Williams, NCSU Tapestry 2011.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Fundamentals of Software Development 1Slide 1 Today’s summary Attitudes toward learning:Attitudes toward learning: –Working in groups –Learning by doing.
 Computer Applications (s)  Introduction to Programming (s)  Computer Science: Principles (AP in )  Advanced Placement Computer Science.
Pair Programming. XP Rule of Thumb “When something is difficult or painful, do it more often until it becomes easier.”
 2009 Pearson Education, Inc. All rights reserved. 1 Pair Programming Most slides courtesy of Ms. Stephany Coffman-Wolph Some slides with minor modification.
Pair programming Cesar D. Guerrero Department of Computer Science and Engineering May 12, 2008.
CS 103 Introductory Programming for Engineers and Scientists
CONGRATULATIONS Welcome to Utah Virtual Academy! We are so happy that you and your student have come to our school. We are excited about the opportunity.
Software Engineering, COMP201 Slide 1 Introduction to software engineering Lecture 1.
Gartening Together … With material adapted from: Frameworks for Collaboration. by Faye Brownlie and Randy Cranston Presented at Changing Results for Young.
Pair Programming (PP). What Is Pair Programming [1] XP (Extreme Programming) practise ”Two programmers working side-by-side, collaborating on the same.
Adaption of Agile Development Technique Chak Chi Sio 4/21/2010.
CS 110: Introduction to Computer Science Introduction to Collaborative Learning and Programming Practices.
TEACHER EFFECTIVENESS INITIATIVE VALUE-ADDED TRAINING Value-Added Research Center (VARC)
IMPROVISATION. Improvisation  The portrayal of a character or a scene without rehearsal or preparation.  There is NO formal script.  Character is conveyed.
… Computer Science Inside… Algorithm Development.
Introduction to Computing Concepts Note Set 5. Pair Programming* Used in Software development 2 developers working at the same computer ▫ Driver – Person.
LEADERSHIP & COACHING FOR PBIS ACTIVITES Summer Institute July 26-27, 2012.
 Together, my Co-Teaching partner and I have 32 first grade students. All of the students listed below are either 6 or 7 years old.  One child has.
The Hashemite University Computer Engineering Department
TEAMWORK A FEW NOTES. THIS MAY BE YOUR MOST COMPREHENSIVE, REALISTIC TEAM PROJECT EXPERIENCE IN COLLEGE … 8 weeks A beginning and an end Consistent team.
Computer Science 112 Fundamentals of Programming II.
25-Feb-16 Extreme Programming. 2 Software engineering methodologies A methodology is a formalized process or set of practices for creating software An.
 Be kind to one another  Be prepared (mentally & physically)  Produce quality work  Stay focused on learning.
Pair Programming in the Classroom Mark Sherriff University of Virginia July 16, 2009 Some material courtesy of Laurie Williams, NCSU Tapestry 2009.
Different Types of Testing
Mentoring: from Teacher Candidate to Successful Intern
Pair Programming in the Classroom
CS 1302 Programming Principles II
Extreme Programming 7-Dec-18.
Pair Programming.
Open on the student drive
Global Challenge Night Sensor Lesson 3.
Global Challenge Night Sensor Lesson 3.
Extreme Programming Extreme programming is "a lightweight methodology for small-to-medium-sized teams developing software in the face of vague or rapidly.
Introduction to Collaborative Learning and Programming Practices
Coding at the Middle School for 7th Grade
Core Competencies for Primary School Teachers in Crisis Contexts
Global Challenge Night Sensor Lesson 3.
Global Challenge Night Sensor Lesson 3.
Global Challenge Night Sensor Lesson 3.
Global Challenge Night Sensor Lesson 3.
Global Challenge Night Sensor Lesson 3.
Global Challenge Night Sensor Lesson 3.
Core Competencies for Primary School Teachers in Crisis Contexts
Global Challenge Night Sensor Lesson 3.
Global Challenge Night Sensor Lesson 3.
Global Challenge Night Sensor Lesson 3.
Presentation transcript:

Fundamentals of Software Development 1Slide 1 Pair Programming: What is it? What is it?What is it? Two programmers working side-by-side, collaborating on the same design, algorithm, code or testTwo programmers working side-by-side, collaborating on the same design, algorithm, code or test –One programmer, the driver, has control of the keyboard/mouse and actively implements the program –The other programmer, the observer, continuously observes the work of the driver to identify tactical (syntactic, spelling, etc.) defects and also thinks strategically about the direction of the work –On demand, the two programmers can brainstorm any challenging problem –Because the two programmers periodically switch roles, they work together as equals to develop software -- Laurie Williams, North Carolina State University Computer Science

Fundamentals of Software Development 1Slide 2 Pair Programming: Why do it? You learn faster when a partner is helping double checkYou learn faster when a partner is helping double check –Two sets of eyes are more likely to notice errors than one set You learn better whenYou learn better when –a partner is helping you understand –you are challenging your partner to master the material Pair programming is a real-life technique, part of the disciplined methods called Extreme ProgrammingPair programming is a real-life technique, part of the disciplined methods called Extreme ProgrammingExtreme ProgrammingExtreme Programming –One study: One studyOne study Paired programmers are only 15% slower than two independent individual programmersPaired programmers are only 15% slower than two independent individual programmers But produce 15% fewer bugsBut produce 15% fewer bugs –Since testing and debugging are often many times more costly than initial programming, this is an impressive result

Fundamentals of Software Development 1Slide 3 Challenges of Pair Programming What are some problems that partners (let's call them Ye and Seema) may experience?What are some problems that partners (let's call them Ye and Seema) may experience? –Seema dominates the project and does not let Ye do half the work –Seema decides that Ye cannot write code and so assigns everything else besides the code to him –Ye is passive and plays a "keep the other person company" role –Ye misses class without alerting Seema or the professor –Seema is unavailable outside of class –Seema believes that Ye's performance will hurt Seema’s grade

Fundamentals of Software Development 1Slide 4 Do’s of Pair Programing Both partners sit behind a single computerBoth partners sit behind a single computer –Exception: Use the second computer effectively for reading the instructions and responding However, both partners must be looking at the same computer screen at any given timeHowever, both partners must be looking at the same computer screen at any given time Share the typing dutiesShare the typing duties –Both partners think! Both partners solve the problem! When not typing, validate what your partner should be typingWhen not typing, validate what your partner should be typing Both partners: understand each step completely before continuingBoth partners: understand each step completely before continuing It is:It is: –good to take time to teach your partner some things –not good to spend the entire session teaching your partner Try to choose a partner with similar skill and comfort-levelTry to choose a partner with similar skill and comfort-level

Fundamentals of Software Development 1Slide 5 Continuing work outside class When you are in class:When you are in class: –Identify and schedule (exact) times to meet face to face –Identify ways to contact your partner ( , phone, etc) Do not waste your partner's timeDo not waste your partner's time –Show up on time and stay focused for scheduled meetings –Do not work on the project without your partner Pair programming is not team programmingPair programming is not team programming You will do most of your projects using Pair Programming – we insist that you do it effectively!