The study of software development methodology, both procedural and object-oriented. This is a project-based design course where teams develop software projects from requirements analysis through detailed design and testing. Umbrella activities such as configuration management, quality assurance, writing documentation, ethics and costing are covered. Automated software design tools are used and oral and written presentations required. Students work with a faculty member in the department to define an acceptable project.
Combinations are also suitable.
Small group projects with well-defined individual responsibilities might also be acceptable. The student is required to write a report and is strongly encouraged to make a public presentation of the work. This course focuses on the ethical and social issues associated with computer technology such as privacy, theft, intellectual property, accountability, hacking and cracking, codes of ethics and professional responsibility. Students will also examine philosophers such as Aristotle, Kant, and Mill, as well as Virtue ethicists. This course is a senior-level capstone course.