Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!sundc!pitstop!sun!wdl1!lmurray From: lmurray@wdl1.UUCP (Lance Murray) Newsgroups: comp.edu Subject: Re: Suggested Course Layout for Undergraduate CSC program Message-ID: <3620001@wdl1.UUCP> Date: Mon, 12-Oct-87 15:48:26 EDT Article-I.D.: wdl1.3620001 Posted: Mon Oct 12 15:48:26 1987 Date-Received: Wed, 14-Oct-87 01:48:15 EDT References: <2080@super.upenn.edu> Lines: 37 >We are currently redoing our UG curricula. This is what we're trying: > Frosh: discrete structures/first sem. calc. > 2 semester intro CS > Soph: Data structures/Machine language > second semester calc. > Jun: Architecture/Intro to Soft. Eng./Foundations of CS > Senior:Languages and OS/CS Electives > Math courses It has been my experience, limited that it is, that there is a very important need for Software Engineering courses early in the education of "programmers". If the concepts are not presented early, a solid foundation of knowledge is not established. The S/W E. course should be taught at the beginning of the sophmore year (this may be a very broad class covering topics such as infomation hiding, abstraction, inductive reasoning, etc.) so that classes, such as Data Structures and Theoretical Computer Science, may make use of the foundation built by required discussion of S/W E. prinicples. It may be necessary to teach a more detailed class in S/W E. near the end of the Junior year as a lead in to the advaced topics of the senior year. All senior level classes (Operating Systems, Data Base Management, Compilers, AI) require the ability to apply advanced topics, like abstraction, to solving problems. If these advanced concepts are not presented early in the students curriculum they will not be comfortable enough with the principles to apply them in new situations. A secondary discussion could be started on whether the scope of the C.S. curriculum is targeted towards a scientific' or 'engineering' profession. By providing a definite goal, or set of goals for the UG courses, the list of classes and their order of attendance could change radically. It depends upon whether you want to develop theoriticians, compiler writers, programmers, or software engineers. Well, off my soap box now. I hope this has helped in some way. -lance murray- /* All the usual disclaimers, plus a few new ones. */