Student Originated Software 1997-1998
Fall Quarter

A Software Engineering Course at
The Evergreen State College

Program Description Fall 1997 - 98


Even the best efforts of computer users and software engineers have not alleviated critical software development problems: most software is late and over-budget, does not meet user needs or expectations, or is socially irresponsible. The "software engineering" problem is not just a matter of technology, but a problem of creativity and invention, organization, psychology, artistic design, group dynamics and culture. In addition considerable knowledge and understanding of the application area is required to design, implement, market, sell, deploy, support or maintain a successful system. Evergreen's Student Originated Software program was designed to address these issues and to prepare students to face these problems. The full time, year-long program providesd not only in-depth practical experience in software engineering but also a deeper understanding of the issues behind the inherent difficulty of writing responsible, effective software. The program taught skills and gives experience in software engineering and advanced computer science and examined the role of computer science in the larger world of technology and computing. The major components of the program were a year-long project, a program seminar, and technical components consisting of human-computer interface design; object-oriented analysis, design and programming; and software engineering. Software Engineering. The Student Originated Software program taught software engineering through the students' application and integration of the following skills to a software project: project management, feasibility analysis, requirements definition (functional specifications), preliminary and detailed design, programming, information architecture, database management, and software testing and integration. The main objective of this part of the program was expose students' to commonly accepted methodologies of software engineering. In the fall quarter, we used a case study to teach software engineering. Students worked in teams (usually of two) to carry an application through from inception to release to users. The system was implemented in Smalltalk, thus complementing work in objected-oriented programming. The text for this part of the program was Rodney WilsonUs Software Rx. Year-long Software Development Project. The primary vehicle for learning how to write software was a year-long group software project for an identified real-world need. In the fall quarter, students organized themselves into teams according to their interests and skills and each team identified a viable project and "customer", and performed a preliminary systems analysis and feasibility study. Students demonstrated their work through informal presentations during the quarter and a final formal presentation of the project proposal, and a project notebook. Program Seminars. A program seminar complemented technical work. In the fall the seminar theme was The Software Industry and Human-Computer Interaction. Students met for a weekly seminar on software development and human computer interaction, which read and discussed the first of the three PBS videos Triumph of the Nerds , NormanUs Things That Make Us Smart; BrooksU Mythical Man Month; ; WinogradUs Bringing Design to Software; CouplandUs Microserfs; KobergUs Universal Traveler; and selected parts of Christopher AlexanderUs A Pattern Language. Students wrote a short weekly paper on readings, relating each to aspects of the software development process. Technical Components. Each quarter, the program offered technical components that provided essential (in the fall) and recommended (in winter and spring) computer science course work. Some students organized independent study that was directly relevant to their project. Object-Oriented Programming and System Design in Smalltalk (fall). In this part of the program, students were introduced to concepts of object-oriented analysis, design and programming, primarily through the study and practice of the Smalltalk language. A major goal was to give students an opportunity to answer the claims whether object-oriented programming (OOP) will change the nature of programming and system construction. To that end, we covered the fundamental concepts of OOP (e.g., objects, messages, methods, and classes), and explored data abstraction, encapsulation, typing, inheritance, and polymorphism. Students also were introduced to application programming interface (API) frameworks with ParcPlace's VisualWorks, and used that tool to complete the case study programming project. Students did small weekly programming assignments: including the ParcPlace Smalltalk tutorial, and demonstrated their understanding of the language through two exams and three major programming assignments. Texts: Trevor Hopkins Smalltalk supplemented with the ParcPlaceVisualWorks Tutorial. Credit Distribution: 16 total: * 2: Year-long Software Development Project * 6 Software Engineering: Requirements Specification and Systems Analysis (Fall Case Study) * 4: Fall Seminar: The Computing Culture Software Industry * 4: Object-Oriented Programming and System Design (Smalltalk) * marks Upper Division Science Credit


For more information contact
[ Evergreen Home Page | Academic Programs ]


Created by: SoSwEbGrOuP
E-mail: ringert@evergreen.edu