Comp 312 Production Programming Lecture 1 Course Overview and Culture Corky Cartwright January 12, 2005.

Slides:



Advertisements
Similar presentations
Unified process(UP) UP is an OO system development methodology offered by Rational(Rational Rose) s/w, now a part of IBM Developed by Booach,Rambaugh,Jacobson--
Advertisements

COMP 121 Week 7: Object-Oriented Design and Efficiency of Algorithms.
Workshop: Professional Development of Software Engineers Hazzan Orit Department of Education in Technology and Scinece Technion – Israel Institute of Technology.
Alternate Software Development Methodologies
Agile Process Models. Prescriptive models don’t work It is unrealistic to not have changes. Why? The Agile Manifesto: Individuals and interactions over.
1 Software Testing and Quality Assurance Lecture 34 – SWE 205 Course Objective: Basics of Programming Languages & Software Construction Techniques.
IS6112 Application Modelling and Design Introduction.
Production Programming in the Classroom Eric Allen, Robert Cartwright, and Charles Reis Rice University {eallen, cork,
Extreme Programming Mark Steverson. What Is Extreme Programming? ● Extreme Programming (XP) is a lightweight, agile methodology developed by Kent Beck.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Extreme Programming--a “New” Process Model Extreme Programming-- a “New” Process Model.
Chapter 3 – Agile Software Development Lecture 1 1Chapter 3 Agile software development.
Methods of teaching programming at high schools and universities Vera Dron,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Extreme Programming > an agile methodology
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
BEFORE AGILE METHODS Other Engineering fields development models were used, ie: Waterfall Method: Intensive planning and refactoring before coding is actually.
Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.
Department of Computer Science Comparative Study of Imperative Programming Languages Vergelijkende studie van imperatieve programmeertalen.
Extreme programming overview Agenda  Extreme programming goals  Extreme programming values  Extreme programming practices  The Extreme programming.
Comp 311 Principles of Programming Languages Lecture 1 Course Overview and Culture Corky Cartwright August 25, 2008.
EECE 310 Software Engineering Lecture 0: Course Orientation.
Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.
1 e X treme P rogramming D. Dranidis September 2000 CITY College.
Technical Programming Option Presentation 2015 Mirela Gutica.
TEACHER FEEDBACK WEBSITE HTVN TEAM. AGENDA 1.TEAM INTRDUCTION 2.PROJECT OVERVIEW 3.PLAN 4.PRODUCT ARCHITECTURE 5.DATABASE DESIGN 6.TEST PLAN & TEST REPORT.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
SE 2030 Software Engineering Tools and Practices SE 2030 Dr. Rob Hasker 1 Based on slides written by Dr. Mark L. Hornick Used with permission.
Software Specification and Design Sirisin Kongsilp & James Brucker.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Extreme Programming.
EXtreme Programming Development Adrian Williamson People, Technology and People and Technology Consultant.
CEN 4010 First Lecture January 9, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi
Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.
01 - Course Intro.CSC4071 CSC407S / 2103S Software Architecture & Design Prof. Penny Bahen 5228 Office hours: Wednesdays 10:00 – 11:00.
Informatics 43 – May 14, Open Source Source code is freely available and (usually) re-distributable Examples: Firefox web browser Apache HTTP Server.
Comp 311 Principles of Programming Languages Lecture 1 Course Overview and Culture Corky Cartwright August 25, 2008.
DAVID STOTTS DEPT. OF COMPUTER SCIENCE UNIV. OF NORTH CAROLINA AT CHAPEL HILL Extreme Programming.
CS3100 Software Project Management Agile Approaches.
Course Introduction CEN 5016 Software Engineering Dr. David A. Workman School of EE and Computer Science January 9, 2007.
Testing, The Ugly Stepchild of Software Development Better Living through Software Testing Chris Berry – Feb 21, 2000 Chris Berry
Extreme Programming Based on and
CS 541 Lecture Slides Sunil Prabhakar CS541 Database Systems.
CEN First Lecture CEN 4010 Introduction to Software Engineering Instructor: Masoud Sadjadi
Lecture 4 – XP and Agile 17/9/15. Plan-driven and agile development Plan-driven development A plan-driven approach to software engineering is based around.
Agile Methods Presentation By: Jason Abbett. Definition A process to rapidly develop software Many kinds of agile methods but few are practiced.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
Agile. Processes Waterfall Traditional With prototyping Sprial Agile Dynamic Systems Development Method (DSDM) Scrum Crystal eXtreme Programming (XP)
CS533 Concepts of Operating Systems Jonathan Walpole.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Adoption of XP in web application projects Mark Striebeck Engineering Director VA Software Corp. May 12, 2004
Principles of Imperative Computation Lecture 1 January 15 th, 2012.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
1 Introduction to modeling Introduction Anna Fensel
An Extreme Makeover Jill Burkart H. Leonard Liaw Amaris Vigil Andrew Switzky Diana Miranda-Murillo Don Turnbull The University of Texas at Austin.
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
CS223: Software Engineering
Agile Methods SENG 301.
Corky Cartwright January 9, 2017
Corky Cartwright January 13, 2014
Two part course Software Engineering option only!
Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.
EECE 310 Software Engineering
Practical Software Engineering
Introduction to XP.
Agile software development
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

Comp 312 Production Programming Lecture 1 Course Overview and Culture Corky Cartwright January 12, 2005

Course Facts See web page Participate in the course wiki which will be established soon

What is Comp 312? Production programming using test-driven development as codified in eXtreme Programming (XP) –What characterizes XP? Incremental, test-driven program development Comprehensive unit testing suite included in code base Continuous integration Pair programming Group ownership of code On-site customer Simplicity is more important than generality Refactoring Coding standard Active learning in real-world context

What is Comp 312, cont. Leading edge programming technology –Generics –Concurrency –Reflection –Custom class loaders –Ant and XML Review of OO Design principles –Design Patterns –How to Write Unit Tests –Refactoring Concurrent Programming –Threads –Locking disciplines to prevent races –Deadlock Project Management

Subtext of Comp 312 Gateway to Java PLT Research Group. Projects in Comp 312 are tied to Java PLT research program. –Lightweight project facility for DrJava –Support for refactoring including a language for defining refactoring transformations –Language levels –Lightweight code completion, XML class diagrams –Framework for the unit testing of concurrent programs

Good Software Engineering Practice Test-driven design –Unit tests for each non-trivial method written before any method code is written –Unit tests are a permanent part of the code base Continual integration Continual refactoring to improve coding logic and avoid code duplication Pair programming Conscientious documentation (contracts) Avoiding mutation unless there is a compelling reason

Course Culture Workload: hours a week including class time. You must keep a log describing how you spend this time. No traditional programming assignments or exams. Graded exactly as you would be evaluated as an employee. Input from managers and logs is critical.

Assignment 1 Due Friday, Jan 14 in class. Read "Everything about programming …" article on course web page. Due Wednesday, Jan 19 Read Generics Tutorials by Eric Allen and Gilad Bracha on the course web page