A comprehensive study and application of software engineering. The design and implementation of software systems. An emphasis on problem solving concepts is integrated with a treatment of the software life cycle, requirements specifications, and verification and validation issues. Social and ethical issues faced by software engineers. Considerable exposure to the design and implementation of a major software project.