Learning Outcomes:
On completion of this module students are expected to:
a). Design a high-level software architecture of the software application.
b). Formulate a Scrum project plan divided into sprints to develop the software application.
c). Create a fully functional prototype of the software application.
d). Compare software designs and implementations of the software application.
Indicative Module Content:
Lectures 1-2: Project Challenge and Group Work
Presents and discusses the software engineering team challenge and best practices for working effectively in teams.
Lectures 3-4: Git Version Control, Scrum Software Methodology
The basics of git version control system.
The basics of Scrum software methodology and how to effectively use Scrum.
Lectures 5-8: Clean code and architecture
Good software architecture and engineering practices.
Lectures 6-8: Agile Software Development
Principles of Agile software development methodology and the practicalities of work in teams, with reference to Scrum.
Lectures 9-20: Lecture and Authentic Learning Workshops
The lectures delve in-depth into the core software engineering concepts, principles of good software architecture, code quality, test quality and documentation. The authentic learning workshops create a real-world context where the groups practice Scrum activities, collaboratively work on product features, and create potentially shippable software product increments. Each workshop's learning objective and assessment criterion is that each group should work as a Scrum team and create a shippable feature. The lecturer and tutor guide the groups with clarifications and additional resources.