CSCE 247 - Software Engineering
Software engineering is concerned with the development and evolution of highquality software systems in a systematic, controlled, and efficient manner. Software engineers are concerned with safety and reliability of the product as well as the cost and schedule of the development process. The lectures and the group projects will cover all aspects of the software life cycle, from development team management, problem specification and analysis, system design techniques, implementation and documentation practices, testing, to maintenance and evaluation of the final product.
Where does this fit in with the rest of my computer science courses?
Many computer science classes deal with taking complex domainspecific problems and deriving solutions from the appropriate mathematical and computational theories. In an AI course, you reason about intelligence problems and design software that solves such problems.
Software engineering is the study of software itself. It is focused around designing, developing, and documenting reliable, functionally complete, and usable software. In software engineering, you will learn to reason about software itself, and will learn lessons that apply to any program you design in the future.
This content is made available in the interest of sharing educational material with any who might find it useful. This page is updated periodically, and may not be in synch with the course itself. For current course students, the latest content, assignment submission, and discussion forums are available on Moodle.
Note: All documents were originally written in Google Docs and converted to PDF. There may be some formatting errors in slides that did not exist in the original document.