32555 - Fundamentals of Software Development
Subject description
This subject provides a foundation in modern software development, covering the theoretical and practical aspects of software modelling and development methods, tools, and techniques. You will learn how to analyse, design, develop, and evaluate software programs that implement realistic but manageably small-scale software requirements. Teaching is delivered through pre-recorded lectures and demos, hands-on workshops, and mini-lectures in these workshops. You are encouraged to practice peer learning and collaboration within and outside the classroom; however, you must complete the individual tasks and your part of the group tasks independently. By completing this subject, you will understand the importance of foundational software development practices and be able to apply programming skills to build software that meets the defined criteria.
Availabilities
Click on Select availability in the top right of screen and choose from the location, attendance mode and session options.
Learning outcomes
Upon completion of this subject, graduates will be able to:
1. Analyse and document system requirements based on user needs and context. (B.1)
2. Use a range of modelling and programming techniques and tools to propose software system for users. (C.1)
3. Design a software system to meet the specified user requirements. (C.1)
4. Create software programs to address the specified user requirements. (D.1)
5. Apply appropriate testing techniques to ensure the quality of the software system. (D.1)
Learning and teaching activities
Students will learn foundation level software development practices through online lectures and hands-on workshops (tutorials and labs). Students will prepare for the workshops by listening to online lectures and studying related material to effectively participate in the workshop activities. In workshops, the software modelling and development methods, tools, and techniques will be demonstrated by the tutors before being applied by students to different scenarios. Feedback is regularly provided throughout the teaching sessions in several different formats: discussions of the workshop questions, feedback on the software models and programs developed in the laboratory and as a part of the formal assessment tasks. As the subject progresses, students gain sufficient foundational level competence to complete software development tasks within a small range of acceptable solutions.