1、OOPSLA 05,Amiram Yehudai,A subjective report,2,Program,Invited speakers Technical papers Practitioner reports Expert panels Demonstrations Educational symposia Workshops Tutorials The Onward! track Posters ,3,Educators Symposium,Agile Teaching Monday, 8:30, 1 hour 30 minutes, San Diego Room Teaching
2、 Techniques Monday, 10:30, 1 hour 30 minutes, San Diego Room Keynote Address Monday, 13:30, 1 hour 30 minutes, San Diego Room Teaching Tools Monday, 15:30, 45 minutes, San Diego Room Looking to the Future Monday, 16:15, 1 hour 15 minutes, San Diego Room Demos and Posters Monday, 8:30, 9 hours, San D
3、iego Room,4,Educators Symposium Agile Teaching,The symposium begins with an interactive presentation that illustrates agility in the classroom via a Scrum sprint with student apprentices. Opening Remarks Eugene Wallingford Apprenticeship Agility in Academia David West, Pam Rostal,5,Apprenticeship Ag
4、ility in Academia,David West, Pam Rostal, New Mexico Highlands University This presentation will use multimedia and scripted theater to illustrate a typical development iteration as practiced by the apprentices of the NMHU Software Development Apprenticeship Program. Seven students and one faculty m
5、ember will conduct a thirty-minute Scrum sprint using minutes instead of days or hours as our unit of measure. By sharing our insights into overcoming the disruptions, distractions, and impediments of the academic environment, we hope to convey ideas that will be useful to all professional software
6、developers and educators who must respond to the challenge of teaching and experiencing agile software development techniques in an “inhospitable“ environment.,6,Educators Symposium Teaching Techniques,A Laboratory for Teaching Object-Oriented Language and Design Concepts with Teachlets Axel Schmoli
7、tzky Teaching OO Methodology in a Project-Driven CS2 Course Barry Kurtz, Frank Barry, James Wilkes Modeling OO Design Robert Rist Roles of Variables in Object-Oriented Programming Petri Gerdt, Pauli Byckling, Jorma Sajaniemi,7,A Lab for Teaching OO Concepts with Teachlets,A Laboratory for Teaching O
8、bject-Oriented Language and Design Concepts with Teachlets Axel Schmolitzky, Hamburg Teachlets are a new method originally developed to teach design patterns. Based on executable code, a problem is set that is to be solved collaboratively and interactively by all the participants of a teaching unit.
9、 A moderator is on hand to operate the computer, the development environment and video projector when called upon to do so. While deployable in themselves as an innovative teaching method, teachlets can also be used as a design object in seminar-like workshop events. In the course on advanced concep
10、ts of object-oriented programming described here, the participants themselves developed and used teachlets in a so-called teachlet laboratory.,8,Teaching OO Methodology in a Project-Driven CS2 Course,Barry Kurtz, Frank Barry, James Wilkes, Appalachian State University After we adopted an objects-fir
11、st approach in CS1, we realized this meant redesigning our CS2 and data structures courses. This paper reports on our efforts to develop a project-driven CS2 course that expands on the object-oriented methodology introduced in the CS1 course. We omitted some traditional data structures materials, su
12、ch as pointer implementations of linked lists, and concentrated on using Java Collections. Our focus on using data structures in meaningful, large-scale projects helped students understand why these structures are important before concentrating on implementation in the subsequent data structures and
13、 algorithms course. C. Horstmann, Big Java + W. Savitch, Absolute Java CS1 Use Blue J, CS2 Dr. Java,9,Roles of Variables in OOP,Petri Gerdt, Pauli Byckling, Jorma Sajaniemi, University of Joensuu, Roles can be assigned to occurrences of variables in programs according to a small number of patterns o
14、f use that are both language- and algorithm-independent. Studies on explicitly teaching roles of variables to novice students have shown that roles are an excellent pedagogical tool for clarifying the structure and meaning of programs. This paper describes the results of an investigation designed to
15、 test the understandability and acceptability of the role concept and of the individual roles in novice-level object-oriented programming.,10,Roles of Variables in OOP (cont),The investigation consisted of a short tutorial on roles, a brief training session on assigning roles to variables, a test ev
16、aluating the subjects ability to assign roles, and a set of open questions concerning their opinions of roles. The responses of 43 computer science educators were analyzed. Every role was identified at least by 50% accuracy, and in typical uses of variables by 70-100% accuracy. Subjects comments on
17、the role concept in general were mostly positive. The role set used in the investigation turned out to be suitable for describing variable usage in novice-level programming with some supplements. The study suggests that more roles are needed in novice-level object-oriented programming than in novice
18、-level procedural programming. http:/www.cs.joensuu.fi/saja/var_roles/,11,Educators Symposium Keynote: Ward Cunningham,This year, we are honored to have as our keynote speaker Ward Cunningham. Ward has pioneered so many of the ideas and tools we all use today: object-oriented programming, CRC cards,
19、 patterns, wiki, extreme programming, test-first design, and FIT. In his talk, Ward will offer some advice for how we can recognize good ideas in their humility, how to nurture good ideas to fruition, and how we might teach these skills in our courses. Nurturing the Feeble Simplicity,12,Educators Sy
20、mposium Teaching Tools,This session consists of a paper session and a panel. The papers explore ways that educators are using two of Wards innovations, CRC cards and FIT tests, in the classroom. The panel looks to the future of OO education, in particular seemingly never-ending tug-of-war around lan
21、guage and programming style in the first-year courses. Both of these subsessions will be contain ample time for the authors, panelists, and attendees to discuss the ideas under consideration. Improving CRC-Card Role-Play with Role-Play Diagrams Jrgen Brstler Monday, 15:30, 20 minutes, San Diego Room
22、 The Practice of Specifying Requirements Using Executable Acceptance Tests in Computer Science Courses Grigori Melnik, Frank Maurer Monday, 15:50, 20 minutes, San Diego Room,13,Improving CRC-Card Role-Play w/ Role-Play Diagrams,Jrgen Brstler, Ume University CRC cards are a lightweight approach to co
23、llaborative object-oriented modelling. They have been adopted by many educators and trainers to teach early object-oriented design. Reports in the literature are generally positive. So is our own experience. However, over the years, we have noticed many subtle problems and issues that have largely g
24、one unnoticed in the literature. In this paper, we discuss the problems and issues we experienced when teaching CRC cards to novices. Two major sources of problems can be traced back to CRC card role play. One is the usage of CRC cards as substitutes for actual objects during the scenario role-play
25、and the other the difficulty to document or trace the scenario role-play “on the fly“. We propose a new type of diagram to support the role play activities and to overcome these problems. Our experience so far is quite positive. Novices have fewer problems with role-play activities when using these
26、diagrams. Teaching and learning the new type of diagram adds only little overhead to the overall CRC approach. We also provide general guidelines for CRC card usage. Although our improvements are aimed at novices, we believe that the proposed diagram is useful even for professional software developm
27、ent.,14,Requirements Using Executable Acceptance Tests in CS Courses,The Practice of Specifying Requirements Using Executable Acceptance Tests in Computer Science Courses Grigori Melnik, Frank Maurer, University of Calgary This report describes the practice of using executable acceptance testing for
28、 specifying programming assignments in software engineering courses. We summarize experiences from two courses introduced in two academic institutions over four semestersboth from students and instructors perspectives. Examples of projects and the discussion of the assignment flows are given. The pa
29、per highlights testing as an all-encompassing activity in software development projects. It also contains recommendations for academics thinking of incorporating executable acceptance testing into their courses.,15,Educators Symposium Looking to the Future,The symposium closes with a panel discussio
30、n and an open-mike session. The panel looks to the future of OO education, in particular seemingly never-ending tug-of-war around language and programming style in the first-year courses. The open-mike session session gives participants a chance to share their best teaching ideas and their ideas for
31、 future Educatorss Symposia. Are We Doomed? Reframing the Discussion Robert Biddle, Alistair Cockburn, Brian Marick, Alan OCallaghan, Eugene Wallingford, moderator Monday, 16:15, 1 hour, San Diego Room Closing Session Eugene Wallingford Monday, 17:15, 15 minutes, San Diego Room,16,Panel: Are We Doom
32、ed? Reframing the Discussion,Robert Biddle, Carleton University Alistair Cockburn, Humans and Technology Brian Marick, Independent Consultant Alan OCallaghan, De Montfort University Eugene Wallingford, moderator, U. of Northern Iowa At universities around the world, interest in computer science has
33、plummeted. Is this decline part of a cyclical trend, or a reflection of a change in the world in which computing operates? This panel discussion will discuss the state of computer science education and what we as computer science educators can do to redefine university computing education. The audie
34、nce will participate in the discussion!,17,Panel: Are We Doomed? some points mentioned,Teach about design. Ruby on rails - Rails is a full-stack, open-source web framework in Ruby for writing real-world applications with joy and less code than most frameworks spend doing XML sit-ups http:/ movie,18,
35、Panel: Are We Doomed? what to teach?,What do educated people need to know about CS (course by B. Kernighan) Give students a working project, replace pieces. User interaction design Team work, comm. skills Look at performance arts curriculum,19,20,Educators Symposium Demos and Posters,A Pattern-based
36、 Approach for Introducing Object-Oriented Analysis and Design in Undergraduate Courses Haitham Hamza Double Dispatch for Two-Tiered Type Checking Adair Dingle Green: A Pedagogically Customizable Round-tripping UML Class Diagram Eclipse Plug-in Carl Alphonce, Blake Martin Implementing Operating Syste
37、ms the Object-Oriented Way Juan Carlos Guzman, Patrick Bobbie KlassroomSwing: A GUI Package for Students Dean Sanders Teaching Web Services with Water Matt Kendall, Ed Gehringer Virtual PC: Letting Your Students Install and Explore Without Fear Joe Hummel Visual OS: An Object-Oriented Approach to Te
38、aching Operating System Concepts James Hill, Aniruddha Gokhale,21,invited speakers,Robert Hass Gerald Jay Sussman, Why Programming is a Good Medium for Expressing Poorly Understood and Sloppily Formulated Ideas David P. Reed Martin Fowler Grady Booch Jimmy Wales, Wikipedia in the Free Culture Revolu
39、tion Mary Beth Rosson,22,invited speaker,Creativity Robert Hass, Chancellor of The Academy of American Poets safety vs. freedom memory/ knowledge preservation vs. innovation vietnamese saying “spit streight up learn something“ book by Arthur Kestler on creativity?,23,invited speaker,Designing Croque
40、ts TeaTime - A Real-time, Temporal Environment for Active Object Cooperation David P. Reed,Co-architect of Croquet,24,invited speaker,Finding Good Design Martin Fowler, Chief Scientist, ThoughtWorks,25,Martin Fowler,Martin Fowler was best described by Brian Foote as “an intellectual jackal with good
41、 taste in carrion“. Hes not come up with great languages or tools, built major companies or found academic success. Hes an author who has struggled with understanding what good design might be and how to communicate it. His books on patterns, refactoring, UML, and agile development reflect this ques
42、tion and his struggles to find an answer. He hasnt succeeded yet, but is happy to share his current position, lost in a maze of twisty objects, all alike,26,Martin Fowler: Finding Good Design,Dont separate design from Programming Most important principle: avoid duplication Separate UI code from all
43、else imagine you need two different UIs Performance problems come from the DB The network is never transparatent Patterns are a “chunking mechanisms” Books should be written so that one does not need to read them end to end.,27,invited speaker,On Creating a Handbook of Software Architecture Grady Bo
44、och, Free Radical, IBM,28,Grady Booch On Creating a Handbook of Software Architecture,It is a sign of maturity for any given engineering discipline when we can name, study, and apply the patterns relevant to that domain. In civil engineering, chemical engineering, mechanical engineering, electrical
45、engineering, and now even genomic engineering, there exist libraries of common patterns that have proven themselves useful in practice. Unfortunately, no such architectural reference yet exists for software-intensive systems. Although the patterns community has pioneered the vocabulary of design pat
46、terns through the work of the Hillside Group and the Gang of Four, our industry has no parallel to the architecture handbooks found in more mature design disciplines.,29,Grady Booch On Creating a Handbook of Software Architecture,Following the work of Bruce Anderson, who over a decade ago conducted
47、a series of workshops at OOPSLA, Ive begun an effort to fill this void in software engineering by codifying a the architecture of a large collection of interesting software-intensive systems, presenting them in a manner that exposes their essential patterns and that permits comparison across domains
48、 and architectural styles. In this presentation, well examine the nature of architectural patterns and the process of conducting architectural digs to harvest them, and then examine a few of the systems studied thus far.,30,invited speaker Onward! Keynote:,The End of Users Mary Beth Rosson, Pennsylv
49、ania State University,31,Mary Beth Rosson The End of Users,Over the past 20 years, user interface designers and usability engineers have studied and refined human-computer interaction techniques with the goal of improving peoples productivity and experience. But the target of these efforts “the end-user“ is fast becoming a thing of the past. Many people now construct software on their own, building artifacts that range from email filters to spreadsheet simulations to interactive web applications. These individuals are use-developers: they build ad hoc solutions to everyday computing needs.,