Student Originated Software

Program Prospectus

Fall, Winter, Spring 2005-2006[1]

VERY TENTATIVE Fall Quarter Schedule

Monday

/ Tuesday /

Wednesday

/ Thursday / Friday
10-12 OOAD
Workshop / 9-1 Lectures
OOP &
OOAD
12-1 Visitors’
Lunch / 10-12 Seminar / Preparation
Day
5pm in odd weeks
via email:
seminar
papers due
1-4 Lectures
OOP & OOAD
OOP Asst due
OOAD Workshop / 1-3:00 OOP Lab
ACC
3-5 Team Mtg &
Open Lab
3-4 Judy/Sherri
Fac Sem & Mtg
4-5 Judy
Office Hour / 2-5:00 Open Lab /
Team Work Session
5pm OOAD Ass’t Due
via email

Even the best efforts of computer users and software engineers have not alleviated critical problems with software development: most software is late, over-budget, socially irresponsible, unable to perform according to user needs, or some combination of these. The "software engineering" problem is not just a matter of technology, but a problem of organization, psychology, artistic design, group dynamics and culture. In addition, considerable knowledge and understanding of the application area is required to design and implement a successful system. The Student Originated Software program addresses the above issues and prepares students who already have learned the fundamentals of computer science (i.e., Data to Information or equivalent) to face these problems. Students work in groups, some of them in interdisciplinary teams, to identify a software project, prepare market research and feasibility studies for that project, identify a "real world" client (or clients) and write a software system. Under the guidance of faculty and working with users, students will write system specifications, conduct systems analysis and design, implementation, and product testing and evaluation. They will also write user manuals and system maintenance plans, and (where appropriate) conduct or plan system installation and user training. Students will evaluate their software according to technical, legal and social criteria.

With three to five other students, each student will work on a year-long software project for an identified real-world customer. Most teams will follow a development schedule similar to the following: Fall: identify a viable project and "customer", perform a preliminary systems analysis and feasibility study. Winter: complete a more extensive systems analysis and design, and begin writing the system. Spring: complete programming, user's guides, system evaluation, maintenance plans and installation. Some teams will do more programming than the above scenario suggests (e.g., for a project already designed by the customer); others less (e.g., for a project consisting of software review and selection). About 18 credits (out of 48) for project work.

The program not only teaches skills and gives experience in software engineering and computer science, but also examines the role of computer science in the larger world of computing, and the nature of computing professions in the larger realm of working. Thus, academic components of the program are designed to enhance both the student's ability to participate in a software development effort and his or her understanding of the world of software and computing.

While writing software programs has traditionally been the domain of computer programmers, writing software systems is intrinsically a multi-disciplinary team effort involving users of the proposed software, human-computer interface design experts (psychologists and artists), experts in the application domain, computer scientists and computer programmers. Furthermore, as application development tools become more powerful, domain experts play a larger and larger role in implementation. This program will thus accept some students with domain area expertise in the sciences or arts who also have experience writing programs and using sophisticated applications. Some teams will bring together students from computer science and other areas, others will consist of only computer science students.

Credit will be distributed among: systems analysis and design, software tools and programming, special topics (e.g., object-oriented systems and databases, computer graphics or user interface design). In the fall, we will concentrate on object-oriented analysis, design and programming, and an introduction to software engineering through a case study. For seminar, we will consider the nature of software systems -- history, market, culture, and discipline. All students must take the program full time in the fall, except a few part-time students who work full time. In winter, we will likely have a technical seminar on persistent and domain-specific languages and two five week sessions on Software Project Management and User Interface Design. In spring, seminar will probably offer perspectives on jobs and working, and a lecture series on classic problems in computer science, thus examining the software project experience within a broader context of what it means and what it's like to work in this industry. The technical component will focus on some timely topic in software development such as design patterns.

Students are discouraged from taking more than 16 credits at any time during the year.

Possible Credit Distribution

Fall / Winter / Spring
4: OOP
4: OOAD
2: SE Case Study / 4: TBA: possibly Open GL or
Advanced OS
or 4: Project Team ‘Contract’ / 4: Database Systems
or 4: Outside Course
or 4: Project Team ‘Contract’
4: Seminar:
Software and
The Software Industry / 4: Seminar (TBA: Best Papers
in SE and CS) / 4: Seminar and Lecture:
Topic TBA
2: Project Proposal &
Feasibility Study / 8: Project: Design &
Implementation / 8: Project Implementation
& Testing
Fall Quarter Books TBA – Some Possibilities:

·  Java: Sahni, Data Structures in Java; And a Java reference such as Arnold, Gosling & Holmes’ The Java Programming Language.

·  OOAD: Perdita Steven’s Using UML.

·  Seminar: Fred Brooks’ Mythical Man Month, Donald Norman’s Things That Make Us Smart. Steve Lohr’s, GoTo; Eric Raymond’s Cathedral and the Bazaar. Several articles will be assigned and distributed either on line or hard copy.

Program Faculty

Judy Cushing LAB I, 1003 867-6652, .

Sherri Shulman: LAB I, 1024, 867-6721, .

Important!

To register, you must complete a questionnaire, and email this to Judy or Sherri, by September 15,

or as soon before you want to register as is practical.

Acadfair.doc 2 of 2 May 2005

judyc Rev. 5/11/2005

[1] For more information, see SOS home page to be available soon http://scidb.evergreen.edu /sos.