Xref: utzoo comp.edu:2641 comp.software-eng:2373 Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!ucsd!tut.cis.ohio-state.edu!cs.utexas.edu!uunet!ncrlnk!ncrcae!hubcap!billwolf%hazel.cs.clemson.edu From: billwolf%hazel.cs.clemson.edu@hubcap.clemson.edu (William Thomas Wolfe, 2847 ) Newsgroups: comp.edu,comp.software-eng Subject: Re: CS education Message-ID: <7046@hubcap.clemson.edu> Date: 14 Nov 89 23:33:31 GMT References: <7036@hubcap.clemson.edu> Sender: news@hubcap.clemson.edu Reply-To: billwolf%hazel.cs.clemson.edu@hubcap.clemson.edu Lines: 40 From ofut@hubcap.clemson.edu (A. Jeff Offutt): > Here's one of my ideas for a perfect software engineering project: > An operating system. Another one: A compiler. There are many good > software engineering projects ... luckily some of them are often used > in other classes. Saves us the trouble of teaching all that "application > dependent knowledge" before starting the project ... :-) And each of these will be excellent software engineering projects for people for which these application domains are relevant. There are many domains in which software engineering projects can be done; information systems domains, for example. And in courses on information systems, it is reasonable to expect that a software engineering project will be completed as part of the course. But just as it is not reasonable to require operating systems people to complete an information systems project, neither is it reasonable to require people who wish to become information systems software engineers to complete an operating systems project. Instead, there exist domains which are reasonably uncomplicated, such as gradesheet management, which are quite well-suited for use as a basis for a general-purpose software engineering project. Since the domain is simple and easily understood, the software engineering course can focus instead upon software development processes, software project management, requirements analysis, technical communication, configuration management, quality assurance, formality, performance analysis, metrics, standards, verification and validation, security, human factors, and so on; topics which will be of considerably greater value to the future practitioner. Once such a general-purpose software engineering project has been completed as part of the first software engineering course, the student can proceed into more specific domains (yes, even operating systems) in which their software engineering skills can be applied. Since more advanced software engineering material is highly desirable for any future practitioner, I expect that such advanced courses will become quite popular once students find themselves liberated from the burden of studying irrelevant domains. Bill Wolfe, wtwolfe@hubcap.clemson.edu