Four Days Design Principles and Patterns Workshop

Similar documents
Backstage preparation Igniting passion Awareness of learning Directing & planning Reflection on learning

5 Guidelines for Learning to Spell

Android App Development for Beginners

The Revised Math TEKS (Grades 9-12) with Supporting Documents

Course Prerequisite: CE 2407 Adobe Illustrator or equivalent experience

Java Programming. Specialized Certificate

ADMN-1311: MicroSoft Word I ( Online Fall 2017 )

10.2. Behavior models

File # for photo

DIGITAL GAMING & INTERACTIVE MEDIA BACHELOR S DEGREE. Junior Year. Summer (Bridge Quarter) Fall Winter Spring GAME Credits.

EdX Learner s Guide. Release

New Features & Functionality in Q Release Version 3.2 June 2016

Common Core Exemplar for English Language Arts and Social Studies: GRADE 1

Being Extreme in the Classroom: Experiences Teaching XP

Introduction to the Revised Mathematics TEKS (2012) Module 1

CATALOG WinterAddendum

Rental Property Management: An Android Application

- SAMPLE ONLY - PLEASE DO NOT COPY

Enduring Understandings: Students will understand that

empowering explanation

PREVIEW LEADER S GUIDE IT S ABOUT RESPECT CONTENTS. Recognizing Harassment in a Diverse Workplace

THE USE OF WEB-BLOG TO IMPROVE THE GRADE X STUDENTS MOTIVATION IN WRITING RECOUNT TEXTS AT SMAN 3 MALANG

The Consistent Positive Direction Pinnacle Certification Course

Smiley Face Self Assessment Template

Fearless Change -- Patterns for Introducing New Ideas

Carolina Course Evaluation Item Bank Last Revised Fall 2009

MAT 122 Intermediate Algebra Syllabus Summer 2016

Workshop 5 Teaching Writing as a Process

Learning Lesson Study Course

Function Tables With The Magic Function Machine

What Teachers Are Saying

TeacherPlus Gradebook HTML5 Guide LEARN OUR SOFTWARE STEP BY STEP

BUS Computer Concepts and Applications for Business Fall 2012

Entrepreneurial Discovery and the Demmert/Klein Experiment: Additional Evidence from Germany

Speak with Confidence The Art of Developing Presentations & Impromptu Speaking

Loughton School s curriculum evening. 28 th February 2017

Call Center Assessment-Technical Support (CCA-Technical Support)

The D2L eportfolio for Teacher Candidates

WORK OF LEADERS GROUP REPORT

Class Numbers: & Personal Financial Management. Sections: RVCC & RVDC. Summer 2008 FIN Fully Online

PowerTeacher Gradebook User Guide PowerSchool Student Information System

Central NY Regional Training Center

Introduction to Modeling and Simulation. Conceptual Modeling. OSMAN BALCI Professor

Radius STEM Readiness TM

ADAPTIVE PLANNING. 1 Powered by POeT Solvers Limited

TIPS PORTAL TRAINING DOCUMENTATION

Trip to the beach essay >>>CLICK HERE<<<

Examity - Adding Examity to your Moodle Course

CHANCERY SMS 5.0 STUDENT SCHEDULING

AU MATH Calculus I 2017 Spring SYLLABUS

What's My Value? Using "Manipulatives" and Writing to Explain Place Value. by Amanda Donovan, 2016 CTI Fellow David Cox Road Elementary School

WiggleWorks Software Manual PDF0049 (PDF) Houghton Mifflin Harcourt Publishing Company

CARITAS PROJECT GRADING RUBRIC

NAME OF ASSESSMENT: Reading Informational Texts and Argument Writing Performance Assessment

Introduction to CRC Cards

MATH 1A: Calculus I Sec 01 Winter 2017 Room E31 MTWThF 8:30-9:20AM

Houghton Mifflin Online Assessment System Walkthrough Guide

Ministry of Education, Republic of Palau Executive Summary

leading people through change

1.1 Examining beliefs and assumptions Begin a conversation to clarify beliefs and assumptions about professional learning and change.

visual aid ease of creating

Sample from: 'State Studies' Product code: STP550 The entire product is available for purchase at STORYPATH.

An Industrial Technologist s Core Knowledge: Web-based Strategy for Defining Our Discipline

What is beautiful is useful visual appeal and expected information quality

First and Last Name School District School Name School City, State

How to Take Accurate Meeting Minutes

The D2L eportfolio for Teacher Candidates

Education & Training Plan Civil Litigation Specialist Certificate Program with Externship

White Paper. The Art of Learning

ADVANCED MACHINE LEARNING WITH PYTHON BY JOHN HEARTY DOWNLOAD EBOOK : ADVANCED MACHINE LEARNING WITH PYTHON BY JOHN HEARTY PDF

LITERACY ACROSS THE CURRICULUM POLICY Humberston Academy

Lower and Upper Secondary

Leader s Guide: Dream Big and Plan for Success

eportfolio for Your Professional Teaching Practice

End-of-Module Assessment Task

The Moodle and joule 2 Teacher Toolkit

Graduate Diploma in Sustainability and Climate Policy

Utilizing FREE Internet Resources to Flip Your Classroom. Presenter: Shannon J. Holden

Arkansas Tech University Secondary Education Exit Portfolio

Targetsim Toolbox. Business Board Simulations: Features, Value, Impact. Dr. Gudrun G. Vogt Targetsim Founder & Managing Partner

Challenging Gifted Students In Mixed-Ability Classrooms

Can Money Buy Happiness? EPISODE # 605

Rover Races Grades: 3-5 Prep Time: ~45 Minutes Lesson Time: ~105 minutes

Registration Fee: $1490/Member, $1865/Non-member Registration Deadline: August 15, 2014 *Please see Tuition Policies on the following page

Implementing a tool to Support KAOS-Beta Process Model Using EPF

Process improvement, The Agile Way! By Ben Linders Published in Methods and Tools, winter

Beyond the Blend: Optimizing the Use of your Learning Technologies. Bryan Chapman, Chapman Alliance

Doctoral Student Experience (DSE) Student Handbook. Version January Northcentral University

Welcome to the session on ACCUPLACER Policy Development. This session will touch upon common policy decisions an institution may encounter during the

Timeline. Recommendations

Some Basic Active Learning Strategies

WEEK FORTY-SEVEN. Now stay with me here--this is so important. Our topic this week in my opinion, is the ultimate success formula.

Moodle Student User Guide

COURSE INFORMATION. Course Number SER 216. Course Title Software Enterprise II: Testing and Quality. Credits 3. Prerequisites SER 215

Prepared by: Tim Boileau

EMPOWER Self-Service Portal Student User Manual

ENG 111 Achievement Requirements Fall Semester 2007 MWF 10:30-11: OLSC

Designing a Rubric to Assess the Modelling Phase of Student Design Projects in Upper Year Engineering Courses

RESOLVING CONFLICTS IN THE OFFICE

Specification of the Verity Learning Companion and Self-Assessment Tool

Transcription:

Four Days Design Principles and Patterns Workshop The Design Patterns Workshop offers a comprehensive introduction to design patterns, with a focus on patterns that have proven over the last decade to be most effective at addressing real-world software design problems. The workshop helps people understand good object-oriented design through the medium of highly useful design patterns. Students are introduced to essential patterns via an amalgam of interactive discussions and hands-on exercises and quizzes. The patterns taught in this course are drawn primarily, but not exclusively, from the classic catalog by Gamma, et al.: Design Patterns: The Elements of Reusable Object-Oriented Software Design. Students will gain a solid understanding of essential patterns as well as how to incorporate them into new or legacy code using modern refactoring and testing tools. AgileFAQs - All Rights Reserved www.agilefaqs.com Page 1/10

Learning Outcomes Understand essential design patterns, and how to use them Obtain a strong, fundamental understanding of Smalltalk style Object Orientated Development Understand basic OO design principles and see how they apply to real world problems Learn to recognise code smells and understand how they violate the design principles Obtain an excellent understanding of 10+ design principles and 30+ design patterns Experience hands-on, refactoring to and away from patterns during the lab sessions Gain a working vocabulary of design patterns Understand how to evolve patterns into a design, rather than designing with them upfront Course Outline Day 1 Implementation Patterns Values of a Good Design - Communication, Simplicity, Flexibility OO Design Principles: Open Close Principle (OCP) Single Responsibility Principle (SRP) Tell, Don't Ask Don't Repeat Yourself (DRY) AgileFAQs - All Rights Reserved www.agilefaqs.com Page 2/10

Law of Demeter Dependency Inversion Principle (DIP) Liskov Substitution Principle (LSP) Interface Segregation Principle (ISP) Triangulate Code Smells and Refactoring Day 2 Day 3 Readability, Construction and Structural Pattern Behavioral and Structural Pattern Pattern Composed Method Fluent Interface Template Method Creation Method Factory Method Abstract Factory Strategy Prototype Singleton Composite Chain of Responsibility Programmin g Template Method: Loans Creation Method: Loans Strategy: Loans Composite Product Finder Employee Pattern Programmin g Null Object Person Finder Guard Clause Builder Interpreter Product Finder Flyweight AgileFAQs - All Rights Reserved www.agilefaqs.com Page 3/10

Day 4 Behavioral and More advanced Patterns Bridge Adapter Decorator Proxy Proxy Finance Memoization Fibonacci Facade State Pattern Command Memento Observer Mediator Parameter Object Collecting Parameter Dependency Injection Iterator Permissions Programmin g xunit Observer Tags Iterator Loans Operator Dispatch Table Self-Shunting CoffeeMachin e Pluggable Selector Strongly Recommended 1 or 2 Days of Mentoring via Pair Programming with Developers on your code base To get your team kick-started with the learning from the workshop, we recommend, that our trainer spends a day or two, working with your team on your code base. Each day will be reserved for 4 pair programming sessions. During these sessions, the workshop participants will take specific examples from their projects, where they are finding it difficult to apply any of the practices learned in the workshop. The trainer will then pair with an individual to show how to resolve those challenges. AgileFAQs - All Rights Reserved www.agilefaqs.com Page 4/10

At the end of the day, the 4 volunteers will summarize their learning by showing before and after code from their respective pairing session to the rest of the group. Pre-Post Programming Assessment The goal of these programming assessments is to identify real and quantifiable measures for the learning achieved through our workshop. Objective: Get a quick understanding of your knowledge and skill level with respect to Designing & Programming Establish a baseline against which the effectiveness of the workshop may be measured Customize our workshop based on specific areas identified in this assessment Pre-Assessment: Before the workshop, we'll send a problem description, your developers will spend max 4 hours and solve the problem and send us the code. We'll evaluate the code and send you detailed feedback about the code, including areas for improvement. We can send different types of problems (fresh development, cleaning up existing code and so on.) Post-Assessment: 2 week after the workshop, we send another problem and evaluate the solution code. A comparison between the Pre and Post Assessment should be able to clearly quantify per-participant level improvement. Click on the image to download the sample report... Method of Instruction Interactive Dialogues, Programming s, Demos, and Instructional Games AgileFAQs - All Rights Reserved www.agilefaqs.com Page 5/10

Transfer % Knowledge: 60%, Skill-Building: 40% Target Audience Primary: Object-Oriented Programmers, Architects, and Designers Secondary: Technical Managers, Technical Writers, User Experience Designers Course Level Advanced Course Prerequisites Required: solid hands-on understanding of OO concepts and an OO language Highly Recommended: overall understanding of the life-cycle of software projects General Requirements To ensure a successful class, we require the following facilities: VGA projector (1024x768 minimum) & Projector screen 1 White board & Dry erase markers Cluster seating with 5-6 people on each table 1 Flip chart with the stand and marker pens for each table Notepad and Pen for each participant Ample room for students in terms of room size and set up For Dev trainings: at least one powerful workstation between two programmers During the workshop, we require each participant to have a copy of the following 2 books: AgileFAQs - All Rights Reserved www.agilefaqs.com Page 6/10

Development Tools Java C# Latest Java JDK Latest Standard Eclipse OR IntelliJ Idea JUnit, Mockito, JBehave, FitNesse or Cucumber JVM AgileFAQs - All Rights Reserved www.agilefaqs.com Page 7/10

Latest.Net Framework Latest Visual Studio Latest ReSharper Plugin SpecFlow's Visual Studio IDE Integration or FitNesse JavaScript C/C++ Latest WebStorm JavaScript IDE Latest Chrome Browser Latest Jasmine Framework Latest JsTestDriver Ruby Latest Eclipse CDT OR Visual Studio Latest GTest Latest Visual Studio Latest CLion PHP Latest RubyMine Latest Cucumber Flex Latest PHPStorm Latest PHPUnit, BeHat Latest Flex SDK Latest Flash Builder OR IntelliJ Idea Testimonials "Inversion of Software Development", that's what Naresh gave me through his 5 days workshop at Amazon. He is one of the best mentors I encountered in my career. The way he tries to explain TDD and Design principles with practical approaches, always challenging the concepts which we used to think were industry standards. Learning through his workshop, now coding is like blogging, drop dead simple, and you don't look back. I hope we had more dojos like Naresh mentoring people in Indian Software Industries to let them AgileFAQs - All Rights Reserved www.agilefaqs.com Page 8/10

know what real clean software development is all about. To sum up he instilled the idea - "Perfection isn't the goal, it's the baseline." about software development in me. -- Rajat Talwar, Software Engineer II, Amazon I recently met Naresh Jain during Test Driven Development(TDD) training at my current organisation. He is very knowledgeable and also very effective as a trainer. His enthusiasm and confidence is a game-changer when it comes to motivating the workshop participants. I've really benefited from his training and by applying TDD in my day-to-day work. It was a great experience and I wish, I could get a chance to work with him on a real project. -- Lokesh Gaur, Technical Lead,Samsung Research It's been 3 weeks since I had the opportunity to attend a 3-Day TDD workshop followed by a 3-Day Design Patterns workshop by Naresh Jain. Post the workshops; I was able to fully test drive a feature that is already in production. I had many take-away from his workshops, but the most important ones were - 1. It gave me the confidence that with TDD you can come up with good designs, 2. Learnt refactoring techniques and IDE tricks, 3. Got a deeper understanding of design values, principles and patterns. 4. Identifying code smells (the codes that I was proud of, now all I see there is code smells :P). But thanks to Naresh I know how to make it right. -- Chandan Kumar, Software Development Engineer, Amazon Rarely have I met a trainer who was truly hands-on. The depth of knowledge and on-field experience of Naresh Jain is truly inspiring. His proficiency in agile techniques and TDD is bleeding edge. We have benefited immensely in barely three days of TDD training with him. We wish he was on our team here in EMC2. -- Vimal Kumar, Principal Software Engineer, EMC2 Recently I attended Naresh's workshop on Test Driven Development (TDD) at Amazon, Hyderabad. It AgileFAQs - All Rights Reserved www.agilefaqs.com Page 9/10

Powered by TCPDF (www.tcpdf.org) was a great learning experience and an eye-opener in few cases. He is very involved with the Agile community and has worked with a lot of industry experts. That's the best part of getting trained by him. He is up-to-date with the latest trends and his skills are very relevant. Naresh's in-depth knowledge and great attitude, fueled by his passion for technology makes him a great techie to work with. I had a great experience and would highly recommend him for training/coaching or even just to have good discussions. -- Akshay Johri, Software Development Engineer, Amazon AgileFAQs - All Rights Reserved www.agilefaqs.com Page 10/10