Software Design A study of the principles and concepts used in the design, implementation and maintenance of large software systems. Topics include the processes, models and tools used in the creation of robust, reliable, maintainable and efficient software systems. Students practice the principles of software design, including project management, by participating as a group member in the development of a large software project. Both verbal and written communication are stressed as they are a necessary part of the requirements analysis and documentation of a software project. Numerical methods for the solution of algebraic and differential equations and systems of equations, interpolation and approximation, numerical integration, calculation of eigenvalues, and error estimation.
Emphasis is on methods suitable for implementation on a digital computer.
Offered in alternate years. 370 Artificial Intelligence Topics include knowledge representation, machine learning, general problem solving, natural language processing, expert systems, neural nets, and computer vision. A substantial part of the course involves a project in an area of the student's choosing. Offered in alternate years. A study of the design and implementation issues in database management systems.