Patterns in cs education Matthias Felleisen & Daniel Jackson NDIST · December 5, 2001.

Slides:



Advertisements
Similar presentations
“The Scientific Ability of Young Children and the Role of the Teacher in Inquiry-based Learning Karen Worth
Advertisements

1 UML – an overview What is UML? UML stands for Unified Modelling Language. ”The Unified Modelling Language is a visual language for specifying, constructing.
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
Effective Software Engineering Pedagogy By Evelyn Stiller and Cathie LeBlanc Plymouth State College.
Ralph Johnson - University of Illinois1 Patterns: What They Are, and How to Write Them Ralph Johnson University of Illinois at Urbana-Champaign
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Feb. 23, 2004CS WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
Pattern Myths1 Ten Design Pattern Myths Jim Fawcett condensed from Pattern Hatching, John Vlissides, Addison-Wesley, 1998.
Course Instructor: Aisha Azeem
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
INFLUENCE OF UNDERGRADUATE COURSE SOFTWARE DESIGN AND ARCHITECTURE TO POSTGRADUATE COURSE ARCHITECTURE, DESIGN AND PATTERNS Magdalena Kostoska Nevena Ackovska.
Capstone Design Project (CDP) Civil Engineering Department First Semester 1431/1432 H 10/14/20091 King Saud University, Civil Engineering Department.
CS 347: Operating Systems  In this course, we reason about effective performance of a computer system  The emphasis of this course is on –Concepts –Techniques.
 A set of objectives or student learning outcomes for a course or a set of courses.  Specifies the set of concepts and skills that the student must.
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
Issues in Teaching Software Engineering Virendra C. Bhavsar Professor and Director, Advanced Computational Research Laboratory Faculty of Computer Science.
Application of Pedagogic Patterns to the Design of Distance Learning Materials Steve Wade University of Huddersfield.
Research Writing and Scientific Literature
Software Engineering CS B Prof. George Heineman.
Principles of User Centred Design Howell Istance.
Model View Controller (MVC) Rick Mercer with a wide variety of others 1.
Comp 311 Principles of Programming Languages Lecture 1 Course Overview and Culture Corky Cartwright August 25, 2008.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
Todd Snyder Development Team Lead Infragistics Experience Design Group.
SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary,
6 Dec 2001Kestrel1 Teaching with Patterns Matthias Felleisen Daniel Jackson.
Athena, a large scale programming lab support tool Anton Jansen, Ph.D. Student Software Engineering and ARCHitecture (SEARCH) University of Groningen The.
Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.
4 Dec 2001Kestrel1 From Patterns to Programming Languages Matthias Felleisen Northeastern University.
By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural.
CSC 211 Introduction to Design Patterns. Intro to the course Syllabus About the textbook – Read the introduction and Chapter 1 Good attendance is the.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
Generative Programming. Automated Assembly Lines.
OOP in Introductory CS Stephen Wong and “Zung” Nguyen Rice University Better students though abstraction.
Object-Oriented Analysis and Design Fall 2009.
1-1 C Sc 335 Course Overview Object-Oriented Programming and Design Rick Mercer.
Software Engineering. Introduction Objective To familiarize students to the fundamental concepts, techniques, processes, methods and tools of Software.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
Methods: Deciding What to Design In-Young Ko iko.AT. icu.ac.kr Information and Communications University (ICU) iko.AT. icu.ac.kr Fall 2005 ICE0575 Lecture.
Comp 311 Principles of Programming Languages Lecture 1 Course Overview and Culture Corky Cartwright August 25, 2008.
CS251 – Software Engineering Lecture 9: Software Design Slides by Mohammad El-Ramly, PhD
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
CSE 331 Software Design & Implementation Hal Perkins Autumn 2012 Wrapup 1.
CS 151: Object-Oriented Design October 15 Class Meeting Department of Computer Science San Jose State University Fall 2013 Instructor: Ron Mak
CSE 331 Software Design & Implementation Dan Grossman Spring 2015 Course Victory Lap (Based on slides by Mike Ernst, Dan Grossman, David Notkin, Hal Perkins)
1 OO Analysis & Design - Introduction to main ideas in OO Analysis & design - Practical experience in applying ideas -A large element is use of UML as.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN Objectives Describe the book goals and scope Define OOA/D (Object-Oriented Analysis and Design) Illustrate.
CS251 – Software Engineering Lectures 18: Intro to DP Slides by Rick Mercer, Christian Ratliff, Oscar Nierstrasz and others 1 و ابتغ فيما آتاك الله الدار.
Software Design. A well-known phenomenon You will learn…. –Thinking "object oriented“ –Define requirements and analyze the problem domain. –Design of.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 11.
Design-Directed Programming Martin Rinard Daniel Jackson MIT Laboratory for Computer Science.
Course File seminar NCAAA SSR Preparation (3rd dec 2015)
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
Science and Engineering Practices K–2 Condensed Practices3–5 Condensed Practices6–8 Condensed Practices9–12 Condensed Practices Developing and Using Models.
1 Systems vs Software Socio-Technical Systems less aware for the need of Systems Engineering –people should be considered more Technical systems need different.
Team 8: SAE AADL Simulation and Modeling Tools. Members Chaz Beck Software Engineering Shaun Brockhoff Software Engineering Jason Lackore Software Engineering.
Zach Tatlock / Winter 2016 CSE 331 Software Design and Implementation Lecture 24 Wrap Up.
Corky Cartwright January 13, 2014
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN
Informatics 121 Software Design I
Informatics 121 Software Design I
EECE 310 Software Engineering
CSE 331 Software Design & Implementation
CSE 331 Software Design & Implementation
CSE 331 Software Design & Implementation
CSCE 315 Programming Studio
Presentation transcript:

patterns in cs education Matthias Felleisen & Daniel Jackson NDIST · December 5, 2001

2 content experience reports (30 mins) ·Rice 2 freshman year courses ·MIT sophomore/junior software eng. shared (10 mins) ·conclusions ·provocations discussion (20 mins)

: lab in software engineering context ·required of all CS majors ·follows (Sussman/Abelson) ·our only programming course? ·8 weeks lectures & problem sets, 6-week team project content ·data abstraction ·specification conceptual models of problem component specifications ·medium-level design module dependences object models design patterns

4 talking about design to talk about design ·need succinct, precise language ·must escape from code ASAP strategy ·2 design notations module dependence diagram object model (invariant) ·introduce notations right at start & use pervasively ·gradually drop code from lectures documentation ·less textual, more graphical ·less uniform, more focused

5 relating problems & solutions hardest part of design? ·underlying conceptual model how to teach? ·simple notation for conceptual models same object modelling notation interpret as invariants about problem domain ·in early problem sets, have students write spec harder to do (good), harder to evaluate (bad) ·discuss strategies for problem -> solution transformation patterns?

6 using design patterns why teach design patterns? ·students (& teachers!) must know idioms ·writing style is exemplary ·inspire raising level of discourse ·books are great resource GoF, Design Patterns Joshua Bloch, Effective Java what happened? ·in course evals, students say they want more ·fit nicely with our design notations ·students need substantial examples of use this term, added 3 case studies JUnit, Java API, Tagger

7 example: observer D C CObserver D Subject Observer obssubj ! all o: Observer | o in o.subj.obs all s: Subject | s ! in s.^obs object model dependency diagram

8 conclusions why are patterns good for teaching? ·because they concretize abstract ideas are all patterns good? ·no, must be conveyed in a formal language how do patterns help? ·to communicate & understand do they help design code? ·no; key abstractions more vital do they never help with coding? ·yes, primarily in refactoring

9 conclusions, ctd do they understand why patterns are useful? ·yes, when they modify code (their own or others’) which patterns do students find useful? ·not small patterns (interpreter, composite, command) they think they’re obvious ·architectural patterns (MVC, kernel) harder, but more valuable

10 provocations patterns are the icing, not the cake ·principles are more essential teachers & researchers must know patterns ·they embody modern practice ·methods & tools must handle them & work at their level there aren’t very many patterns ·only GoF plus a few relevant to code ·of these, the architectural ones matter