Forum for Advancing Software engineering Education Volume 6 Number 11 May 13, 1996 Contents: Sources of information on PROGRAM COMPREHENSION research Four-Year Student Software Teams Call for Papers: 9th Conf on SE and Knowledge Engineering Workshop: Exploring Formal Methods in the CS Curriculum ---------------------------------------------------------------------- From: "Dr. Panos K. Linos" Subject: Sources of information on PROGRAM COMPREHENSION research A preliminary report on Program Comprehension Tools (PCTs) and Technology with an annotated bibliography on related research activities can be found in the CARE laboratory at http://www.csc.tntech.edu/~linos ---------------------------------------------------------------------- From: schlimme@eecs.wsu.edu (Jeffrey C. Schlimmer) Subject: Four-Year Student Software Teams Practicum/powerPen: Four-Year Student Software Teams Jeffrey C. Schlimmer, Washington State University 4 April 1996 New computer science graduates from are not ready to go to work in modern software companies. As software professionals are quick to point out, these students have only learned how to write 300 line programs by themselves from scratch. These programs were class assignments that focused on elegance rather than efficiency or maintainability. The specifications came out of thin air, the code was poorly tested, the interface was a simple command line, and there was never any user's manual. The students did not learn how to reuse existing code or how to work in teams (that would be cheating). They did not learn how to trade-off features and deadlines with customers. Enough battering of the current university system. That type of education provides basic knowledge of data structures and algorithms essential for engineering software. Our idea is to supplement traditional, fundamental coursework with a four-year practical curriculum modeling the activities of a software company. From the university's point of view, entering freshmen are enrolled in a four-year, software engineering course called Team-Oriented Software Practicum. From the student's point of view, they have joined a software company called powerPen. The combination of fundamental and practical works well because students become highly motivated. For example, they want to learn in their English course because they want to write effective marketing material or a clear user's manual. They want to understand compilers because they want to add an authoring language to their application. To be more specific, Practicum is roughly divided into two stages. In the first two years, student teams study activities that surround programming in a software company, i.e., marketing, testing, project management, user documentation, and technical support. Freshmen and sophomores can tackle these topics before they become effective programmers. Each semester the team of students studies a text or two on the topic and completes a related project for a regional software company, sometimes under nondisclosure. In return, the company provides written feedback on the student work. (We have found that students take constructive criticism from future employers much more seriously than from professors.) The goal of this first stage is to develop basic skills in various software development tasks. We want them to 'walk in the shoes' of others they will be working with when they become software developers. In the second stage of Practicum, students are reorganized into product groups to build and support commercial-quality applications. Students in these product groups design, program, market, and support either a new version of an existing application or an initial version of a new application. This process includes the following steps: a user survey, a marketing requirements document (often done in conjunction with a freshman team), a design specification, a program, testing (with a freshman team), a user's manual (with a sophomore team), and a product release. The goal of this second stage is to build experience while developing complete, high-quality applications. We want them to see the whole software process in action, and occasionally, make mistakes before jobs are riding on their decisions. After a year's experience, we found that students had trouble applying themselves to their industry projects in the first two years because we did not have a common technology base. Some of the students knew only Windows programming (and had PCs), some only Mac. To remedy this, we adopted Newton as our common technology with the help of Apple in early 1994. Apple donated a MessagePad for each of our students and helped us set up a senior-level course in mobile computing that focuses on Newton programming. The university purchased several Macs to host the Newton compiler and allocated space for a development lab. Students in Practicum/powerPen take the mobile computing course and gain common, essential skills for building modern, graphical user-interface applications. Newton has turned out to be an excellent choice because of the huge potential in the hand-held market and the ease of developing Newton applications. It has also helped that the Newton developer community is small and cooperative. Our freshmen and sophomore teams have been able to do Newton marketing, testing, and documentation projects for Newton companies. They have also volunteered at Newton conferences and had summer internships with Newton companies. Our first team started in 1992 with 10 freshmen. A second team followed the next year, and a third in 1995. Currently 17 students are involved in Practicum/powerPen: 5 seniors, 6 juniors, and 6 freshmen. Like many companies, we experience regular turnover, losing about 50% of the new students in the first year and another 25% of the overall group upon graduation. The students are currently supporting six Newton applications and developing a seventh. Each application is available in at least one of seven foreign languages. They have over 600 registered users in 25 countries. Our most significant marketing channel is the Internet, and in specific the World-Wide Web. We host a series of pages with the most current version of each application. We distribute applications for free because we want to have as many users as possible. These pages list known defects, feature requests, source code, functional specs, and other development information. We make our development information and source freely available because we want to help others understand how we are doing development - including other students not at our university. For applications with a significant content market, the pages also list content we and others have developed (e.g., plug-in dictionaries for hang man or decks of cards for flash card). Where possible, the pages list related applications commercially available from Newton companies. Practicum/powerPen also provides an excellent opportunity to study and refine the software development process. Two areas in which we hope to contribute are localization and design methods. In localization, we have devised techniques for managing the user-interface strings of a Newton application so it can be easily converted from one human language to another. Our latest efforts make it possible for a non-programmer (but language expert) to specify strings by filling out a Web form, submitting it, and receiving a compiled Newton application correctly localized. This represents a dramatic savings compared to Apple's marketing estimates of US$10-25K to convert a Newton application into each new language. We are inviting our international users to test this system. It will leverage their expertise and provide additional international access to Newton applications. In design methods we have adapted a functional specification technique for event-driven programming in general and Newton programming in specific. Based on a table structure, this specification type is easy to code against and provides a ready-made test plan. Our initial attempts with this methodology are also available on our Web pages (under flashCard). As an educational project, Practicum/powerPen relies on industry support in three major ways. First, Newton companies can help by making a tax-deductible donation to purchase new hardware. With Apple's help we have recently upgraded most of the students to Newton 2.0 but we will fall short when new freshmen join Practicum/powerPen next fall. Second, companies can hire our students for internships or upon graduation. Besides the benefit of personal experience and growth, returning students share their expertise. Third, companies can propose and evaluate marketing, testing, or user documentation projects. Every fall a freshman team is looking for a marketing project. Every spring a freshman team is looking for an application to test, and a sophomore team is looking for an application to write a user's manual for. In retrospect, it seems obvious that the way to prepare students to work in industry was to put them in a teaching company. In such an environment they build high quality software as well as an understanding of the software process. They also become pretty good friends. For more information about Practicum/powerPen, drop us a line at powerPen@eecs.wsu.edu or visit our pages at http://www.eecs.wsu.edu/~schlimme/newton/index.shtml . Jeffrey C. Schlimmer, Asst. Prof., School of EE & CS, Washington State University, Pullman, WA 99164-2752, (509) 335-2399, (509) 335-3818 FAX http://www.eecs.wsu.edu/~schlimme/ PGP key: ftp://ftp.eecs.wsu.edu/pub/pgp/schlimmer.hqx, .txt powerPen Faculty Advisor, powerPen@eecs.wsu.edu http://www.eecs.wsu.edu/~schlimme/newton/index.shtml ftp://ftp.eecs.wsu.edu/pub/newton/ ---------------------------------------------------------------------- From: Tomas San Feliu Subject: Call for Papers: 9th Conf on SE and Knowledge Engineering June 18-20, 1997 Madrid (Spain) The Conference on Software Engineering and Knowledge Engineering has for eight years been providing a unique, centralized, forum for academic and industrial researchers and practitioners to discuss the application of either software engineering methods in knowledge engineering or knowledge-based techniques in software engineering. Preference will be given to papers that emphasize on the transference of methods among both engineerings; however, outstanding papers on software engineering or knowledge engineering alone are also being solicited. SEKE'97 will feature four half-day tutorials on June 19, followed by a three-day technical program consisting of parallel tracks which will include paper sessions, panels, and workshops. An exhibition of software engineering and knowledge engineering tools is planned. Paper presentations will be approximately 20 minutes each with 5-10 minutes for questions and discussion. Submissions of proposals to organize a session, a panel or a tutorial are also being solicited. ========================================================================= Sponsored by: - - Knowledge Systems Institute, - - Universidad Politecnica de Madrid, - - University of Pittsburgh. In collaboration with: * IEEE (pending) * IEEE Computer Society (pending) * ACM SIGSOFT (pending) * Asociacion Espanola para la AI * Federacion Espanola de Sociedades de Informatica (Spanish Member of IFIP) Notification of Acceptance: March 8, 1997 Camera Ready Copies Due to: April 1, 1997 Conference Chairs: * Stephen E. Cross, Carnegie Mellon University * J. Luis Mate, Universidad Politecnica de Madrid Steering Committee: * Vic Basili, University of Maryland * Bruce Buchanan, University of Pittsburgh * Shi-Kuo Chang, Knowledge Systems Institute * C. V. Ramammoorthy, Universidad of California at Berkeley Program Chair: * Natalia Juristo, Universidad Politecnica of Madrid ---------------------------------------------------------------------- From: "Douglas R. Troeger" Subject: Workshop: Exploring Formal Methods in the CS Curriculum A WORKSHOP EXPLORING FORMAL METHODS IN THE COMPUTER SCIENCE CURRICULUM July 24 -- July 26 at Stevens Institute of Technology, Castle Point Station, Hoboken, New Jersey sponsored by The National Science Foundation THE PURPOSES OF THE WORKSHOP are twofold: (1) to encourage the development of modules and materials for teaching formal methods in an undergraduate setting, and (2) to conduct tutorials introducing college and university faculty to the use of formal methods in their undergraduate classes General topics of interest include: desiderata and approaches for the early in- troduction of rigor and the use of mathematics, experiences teaching with formal methods, and the overall appropriateness of formal methods for the undergraduate curriculum. Specific topics of interest include (but are not limited to) --rigorous methods in the early programming courses, whether focussed on procedural, functional, or object-oriented programming --resources and pedagogical support for formal methods in beginning classes --articulating the use of discrete mathematics in early programming classes --implications of the early introduction of formal methods for more advanced courses --formal methods in hardware, parallel computing, programming languages, and software engineering courses --introduction and application of category theory, logic, and symbolic computation (Mathematica, Prolog, etc.) in the undergraduate curricu- lum The workshop will be devoted to presentation and discussion of position papers and modules, and to tutorials on the introduction of formal methods in the early computer science curriculum. We also anticipate inviting several keynote speak- ers. AN NSF GRANT will partially cover travel, room, and board costs for the workshop; three of the principal investigators on this grant comprise the pro- gram committee: Philip Mulry (Colgate University), Doug Troeger (CCNY), and Henry Walker (Grinnell College). PERSONS INTERESTED IN MAKING A PRESENTATION: Send an abstract of your tutori- al, module, or position paper and a brief resume including your experience with formal methods to: Douglas Troeger Formal Methods Workshop Department of Computer Sciences The City College of New York Convent Avenue at 138th Street New York, NY 10031 email:dtroeger@csfaculty.engr.ccny.cuny.edu ABSTRACTS should be no more than 5 pages in length, be clearly written, and pro- vide sufficient detail to allow the program committee to assess the merits of the presentation. The preferred mode of submission is via email sent in postscript. Submission of abstracts should be received by June 15, 1996 by the program chair. THERE ARE LIMITED FUNDS to support attendance by PERSONS INTERESTED IN the pro- ject but who do not have a tutorial, module, or position paper to submit at this time. Please write to inquire. WE ESPECIALLY ENCOURAGE attendance by computer science faculty of minority institutions, and by computer science faculty in the NYC metropolitan region, who are interested in introducing formal methods into their courses. E------------------------------------------------------------------- FASE Volume 6 Number 11 Send newsletter articles to one of the editors, preferably by category: Articles pertinent to corporate and government training to Kathy Beckman, sdmce@access.digex.net; Academic education, and all other categories to fase@cs-server.d.umn.edu, or to Keith Pierce, kpierce@d.umn.edu. Send requests for information or to add or delete a subscription to fase-request@cs-server.d.umn.edu with one of the words HELP, SUBSCRIBE, or UNSUBSCRIBE in the SUBJECT line. Send problem reports, returned mail, or other correspondence about this newsletter to kpierce@d.umn.edu You can retrieve back issues by anonymous FTP from from ricis.cl.uh.edu or through WWW at URL http://ricis.cl.uh.edu/FASE/ Keith Pierce -- Academic/Misc Editor and ListMaster University of Minnesota Duluth, Duluth, MN 55812-2496 USA Phone: 218- 726-7194 Fax: 218-726-6360 Email: kpierce@d.umn.edu Kathy Beckman -- Corporate/Government Editor Computer Data Systems One Curie Ct., Rockville MD 20850 USA Phone: 301-921-7027 Fax: 301-921-1004 Email: sdmce@access.digex.net David Eichmann -- FASE Archivist University of Houston - Clear Lake Box 113, 2700 Bay Area Blvd., Houston, TX 77058 USA Web: http://ricis.cl.uh.edu/eichmann/ Phone: 713-283-3875 Fax: 713-283-3810 Email: eichmann@rbse.jsc.nasa.gov or eichmann@cl.uh.edu Laurie Werth -- Advisory Committee Taylor Hall 2.124 University of Texas at Austin, Austin, Texas 78712 USA Phone: 512-471-9535 Fax: 512-471-8885 Email: lwerth@cs.utexas.edu Nancy Mead -- Advisory Committee Software Engineering Institute 5000 Forbes Ave. Pittsburgh, PA 15213 USA Phone: 412-268-5756 Fax: 412-268-5758 Email: nrm@sei.cmu.edu