This course will introduce a software design, development, and improvement model that can help to perfect professional quality software engineering practices. Topics covered include: introduction to principles and issues concerned with specification, design, implementation, and testing of high quality software; understanding of software life-cycle models; use of development tools, principles, and environments which facilitate ultimate development of large/commercial grade software systems. Computer projects to partially develop some medium scale software will be assigned to translate software development methodologies and concepts into a functional product. Prerequisites: CS 20104 or permission from the instructor. Duel Listed as CS 44303.