Forum for Academic Software Engineering Volume 3, Number 5, Fri Oct 22 16:41:17 CDT 1993 (FASE # 15) Topics: OOPS! Wrong number for last issue of FASE Request for info on teaching OO Sophomore/Junior Courses in "Software Science"? Electronic Access to SEI Education Documents A------------------------------------------------------- From: kpierce@uc.d.umn.edu (Keith Pierce) Subject: OOPS! Wrong number for last issue of FASE In the confusion of transferring editorship from Pen-Nan to me, I got the number of the last issue wrong. It should have been FASE Volume 3, Number 4 I apologize for the confusion. (It DID seem as though the transition went too smoothly.) Please edit your copy with this correction. Keith Pierce, Professor 327A Heller Hall Department of Computer Science Phone: 218-726-7194 University of Minnesota, Duluth FAX: 218-726-6360 Duluth, MN 55812-2496 email: kpierce@d.umn.edu A------------------------------------------------------- From: Ronald J. Leach Subject: Request for info on teaching OO One of the speakers at the educator's forum at OOPSLA indicated that object-oriented design/programming could be introduced at many places in the undergraduate curriculum, but that one inappropriate place is the traditional course in data structures. We are in the process of revising our curriculum at Howard University and are currently considering placing OOP at essentially the data structures level. Thus the OOPSLA speaker's comment has raised some questions. I would appreciate any information on integration of OOA/OOD/OOP into the undergraduate curriculum. Information about success stories, how success is measured, and lessons learned would be especially appreciated. Ron Leach rjl@scsla.howard.edu A------------------------------------------------------- From: kpierce@uc.d.umn.edu (Keith Pierce) Subject: Sophomore/Junior Courses in "Software Science"? In the SEI Report on Undergraduate Software Engineering Education, Gary Ford eloquently argues that software engineering is more like traditional engineering than we may imagine. In particular, he notes that an engineering curriculum comprises three broad areas: basic mathematics and science, engineering sciences, and engineering design. Gary goes on to formulate a model curriculum for an undergraduate program in software engineering that parallels this partition. For example, basic sciences and mathematics are similar, but with a heavier emphasis on discrete mathematics. [ED: to get a copy of this report, see Gary's note below. It's in the file sei90tr3.ps.] It is the software engineering analog of "engineering science" that interests me. In these courses, engineers learn the skills needed to describe, model, and reason about engineering artifacts. With these skills, engineers can model artifacts and reason about them without having to build them first. For example in dyamics a civil engineer learns to predict whether a bridge design will resist undamped harmonic oscillations, and avoid building one like the infamous Tacoma Narrows Bridge. Gary proposes a 4-semester "analysis" sequence positioned in approximately sophomore and junior years, in which analogous skills are learned for describing, modeling, and reasoning about software. We all know about loop invariants and proofs of correctness, and "big=Oh" analysis of algorithms, but there are many other ways to analyze software: for example, reliability analysis, performance modeling, state-based modeling and analsis, formal grammars, recurrence relations and analysis of recursion, models of concurrency. These skills would then be applied in senior design courses, to develop higher quality software. It seems to me that this is what is missing from our curriculum if we are to be a true engineering discipline, which means in particular that we teach the skills to analyze software BEFORE it is built. I am developing such a sequence for our proposed option in software engineering within the B.S. degree in computer science. Has anyone else thought about this, or even developed similar courses? I'd like to hear any opinions, experience reports, etc. I'd also like to hear opinions about what should, and can, be taught at the SOPHOMORE/JUNIOR level (NOT grad level). -- Keith Pierce, Professor 327A Heller Hall Department of Computer Science Phone: 218-726-7194 University of Minnesota, Duluth FAX: 218-726-6360 Duluth, MN 55812-2496 email: kpierce@d.umn.edu A------------------------------------------------------- Subject: Electronic Access to SEI Education Documents From: Gary Ford SOFTWARE ENGINEERING INSTITUTE CARNEGIE MELLON UNIVERSITY Electronic Access to SEI Documents on Software Engineering Education The Software Engineering Institute distributes many of its publications electronically. Most documents are available in PostScript format and may be printed on a PostScript printer at your own site. A few documents, such as source code, are distributed in ASCII format. The files may be accessed by anonymous ftp (file transfer protocol) on the Internet. The SEI machine address is: ftp.sei.cmu.edu or 128.237.2.179 The documents are in directory /pub/education (the "pub" directory contains all publicly available SEI documents; the "education" directory contains those related to software engineering education). Also in that directory is a file named READ.ME that contains information about the documents currently available. The READ.ME file (as of October 1993) is appended below. If you are working at a UNIX machine connected to the Internet, the procedure to access the files is this: 1. Connect to the SEI ftp machine with the command: ftp ftp.sei.cmu.edu 2. When asked to log in, type the user id: anonymous 3. When asked for a password, type your e-mail address, such as: jones@cs.xsu.edu 4. Change your working directory to the education directory: cd /pub/education 5. Get the READ.ME file: get READ.ME 6. Log off: quit You should now have a copy of the READ.ME file on your home machine. Read it for information about the documents currently available. Repeat the above procedure to obtain the documents you want. Step 5 may be repeated as many times as needed to get the documents. You should then be able to print the documents on your own printer. You may want to test these procedures before downloading large documents. For that purpose, we have placed a short test document in the /pub/education directory in file testTR.ps. It is a three page excerpt from a technical report; the second page should be blank. ============================================================================ SOFTWARE ENGINEERING INSTITUTE CARNEGIE MELLON UNIVERSITY The directory /pub/education contains documents related to software engineering education published by the Software Engineering Institute. The current contents of the directory are summarized below. An annotated list of SEI publications, including abstracts, is available in the files annotated.ps and annotated.ascii in the directory /pub/documents. Additional information is in the file READ.ME in that directory. --------------------------------------------------------------------------- File names ending in .txt are ASCII plain text files. Files containing source code are text files; they usually contain several code files concatenated. Look at the files to see what kind of file separators have been inserted between files. File names ending in .ps are PostScript files. These files should be able to be printed on most PostScript printers. Most documents use several of the following PostScript fonts: Helvetica, Times, New Century Schoolbook, Courier, and Symbol. Please be sure to use a printer that has these fonts. * IMPORTANT NOTE: All PostScript files MUST be printed with the pages in * the order they appear in the file. Some print spoolers attempt to * reverse the pages before printing so that the output page stack * will be in the proper order. This may cause the files to fail to * be printed. A common symptom of such a page order error is having * the file printed almost entirely in Courier font. If you cannot print these files, please send a note to education@sei.cmu.edu describing the hardware/operating system you are using, the kind of printer, and the symptoms of the problem. Documents in PostScript form are intended to be reproduced as two-sided documents. The left and right margins will be different widths on odd- and even-numbered pages. If you choose to make a two-sided document from the printed original, you may wish to check the first few pages and insert a blank page wherever needed (such as after the title page on some documents) to ensure that the pages with wide left margins become odd-numbered pages. ========================================================================== Contents of Directory (as of October 1, 1993) Document for Testing the File Transfer Protocol and Printing Procedures ----------------------------------------------------------------------- testTR.ps Excerpt from an SEI technical report; 28K bytes. Contains three pages; the middle page should be blank Curriculum Modules ------------------ cm2.ps Introduction to Software Design 276K; 38 pages - David Budgen cm3.ps The Software Technical Review Process 107K; 18 pages - James S. Collofello cm4.ps Software Configuration Management 100K; 19 pages - James E. Tomayko cm5.ps Information Protection 157K; 25 pages - Fred Cohen cm6.ps Software Safety 63K; 13 pages - Nancy Leveson cm7.ps Assurance of Software Quality 133K; 22 pages - Bradley J. Brown cm8.ps Formal Specification of Software 207K; 28 pages - Alfs Berztiss cm9.ps Unit Testing and Analysis 325K; 38 pages - Larry J. Morell cm10.ps Models of Software Evolution: 212K; 30 pages Life Cycle and Process - Walt Scacchi cm11.ps Software Specification: A Framework 313K; 41 pages - H. Dieter Rombach cm12.ps Software Metrics 347K; 43 pages - Everald E. Mills cm13.ps Introduction to Software Verification 157K; 25 pages and Validation - James. S. Collofello cm14.ps Intellectual Property Protection 414K; 55 pages for Software - Pamela Samuelson, Kevin Deasy cm16.ps Software Development Using VDM 172K; 24 pages - Jan Storbank Pedersen cm19.ps Software Requirements 234K; 31 pages - John W. Brackett cm20.ps Formal Verification of Programs 232K; 30 pages - Alfs T. Berztiss, Mark A. Ardis cm21.ps Software Project Management 253K; 34 pages - James E. Tomayko; Harvey K. Hallman cm22.ps Software Design Methods for 345K; 49 pages Real-Time Systems - Hassan Gomaa cm24.ps Concepts of Concurrent Programming 325K; 51 pages - David W. Bustard cm25.ps Language and System Support for 299K; 44 pages Concurrent Programming - Michael B. Feldman cm26.ps Understanding Program Dependencies 216K; 31 pages - Norman Wilde cm27.part1.ps Formal Specification and Verification 757K; 80 pages cm27.part2.ps of Concurrent Programs 286K; 21 pages - Daniel M. Berry Support Materials Packages -------------------------- sm25.ps Support Materials for Language and 163K; 42 pages System Support for Concurrent Programming - Gary Ford, editor Educational Materials Packages ------------------------------ em1.ps Software Maintenance Exercises for a 731K; 156 pages Software Engineering Project Course - Charles B. Engle, Gary Ford, Tim Korson (see files em1code.txt and em1testsuite.txt below) em2.ps APSE Interactive Monitor: A Software 118K; 21 pages Artifact for Software Engineering Education - Charles B. Engle, Gary Ford, James E. Tomayko em3.ps Reading Computer Programs: 504K; 173 pages Instructor's Guide and Exercises - Lionel E. Deimel, J. Fernando Naveda (see file em3code.txt below) em5.ps Scenes of Software Inspections: Video 112K; 25 pages Dramatizations for the Classroom - Lionel E. Deimel Lecture Notes on Software Process Improvement - Laurie Honour Werth em8.part1.ps part 1: instructor's document 201K; 37 pages em8.part2.ps part 2: student's document 91K; 11 pages em8.part3.ps part 3: overhead transparency masters 63K; 10 pages Lecture Notes on Engineering Measurement for Software Engineers - Gary Ford em9.part1.ps part 1: instructor's document 210K; 29 pages em9.part2.ps part 2: student's document 1 394K; 10 pages em9.part3.ps part 3: student's document 2 441K; 10 pages em9.part4.ps part 4: student's document 3 215K; 19 pages em9.part5.ps part 5: overhead transparency masters 423K; 18 pages em9.part6.ps part 6: SEI checklist masters 83K; 9 pages Technical Reports ----------------- sei91tr2.ps 1991 SEI Report on Graduate 1355K; 244 pages Software Engineering Education - Gary Ford sei90tr3.ps 1990 SEI Report on Undergraduate 856K; 93 pages Software Engineering Education - Gary Ford sei89tr21.ps 1989 SEI Report on Graduate 472K; 88 pages Software Engineering Education - Mark Ardis, Gary Ford sei87tr20.ps Teaching a Project-Intensive 168K; 57 pages Introduction to Software Engineering - James E. Tomayko Other Documents and Files ------------------------- sm25code.txt Source code from diskette accompanying 59K support materials package SM-25 em1code.txt Source code from diskette accompanying 415K educational materials package EM-1: "Software Maintenance Exercises" em1testsuite.txt Test suite from diskette accompanying 35K educational materials package EM-1: "Software Maintenance Exercises" em3code.txt Source code from diskette accompanying 134K educational materials package EM-3: "Reading Computer Programs" E------------------------------------------------------------------- FASE V3 N7 Send newsletter articles to fase-submit@d.umn.edu or fase@d.umn.edu Send requests to add, delete, or modify a subscription to fase-request@d.umn.edu Send problem reports, returned mail, or other correspondence about this newsletter to fase-owner@d.umn.edu or kpierce@d.umn.edu Keith Pierce, Editor Laurie Werth, Advisory Committee Department of Computer Science Dept. of Computer Science University of Minnesota, Duluth Taylor Hall 2.124 Duluth, MN 55812-2496 University of Texas at Austin Telephone: (218) 726-7194 Austin, Texas 78712 Fax: (218) 726-6360 Telephone: (512) 471-9535 Email: kpierce@d.umn.edu Fax: (512)471-8885 Email: lwerth@cs.utexas.edu