Course overview
Within the context of a semester-long, group-based software engineering project, this course provides an introduction to the production of high quality software solutions to large tasks. Among the topics covered in this course are the following: models of the software life-cycle, requirements analysis and specification, program design techniques and paradigms, software specification techniques, configuration management and version control, quality assurance, integration and testing, project management, risk analysis, case study of ethical considerations in Software Engineering.
Course learning outcomes
- Develop knowledge of software development techniques and methodologies, as applied to large scalesoftware development projects, throughout various stages of the development lifecycle including planning, requirements gathering, design, implementation and testing
- Gain experience in applying various Computer Science methods and algorithms, as learnt in earlier courses,to large scale software development
- Gain experience in group-based software development and develop communication, planning and time-management skills
- Develop knowledge and experience in professional conduct and meeting participation
- Develop knowledge of professional codes of conduct of Computer Scientists and Engineers and demonstrateunderstanding through scenario based exercises
- Develop capability and skill in investigating, analyzing, and using software tools to increase the productivity of software development