COM4012 - Introduction to Software Development

Objectives:

On successful completion of the module, students will be able to:
Demonstrate an understanding of trends in coding frameworks and elements;
Acquire fundamental skills in problem decomposition and programming;
Use algorithms to solve a range of mathematical and computing problems;
Demonstrate the capacity to develop software using clear and well-structured code;
Understand and implement the requirements of test-driven-development, behavioral testing and unit testing;

Content:

This is a practice-based module that introduces the fundamentals required to develop software artefacts fit for real-world organisational or commercial purposes. The module explores three stages of software development: problem specification, programming and architectural design.

In the first stage students are shown how to analyse computing problems, introducing requirements analysis and domain analysis. Students also cover basic mathematical skills relevant to software development (geometry and graphs, linear algebra, probability) developing capacity for logic and algorithmic problem solving. The second stage covers the design and coding of the software solution, using clear readable code, and processes of behavior and unit testing. In the final stage students begin to explore foundational principles of development practices (standards, software components and protocols) and software architecture (architectural analysis, architectural styles, and agile software development), which starts to prepare them for tackling larger scale software projects.

Learning and Teaching Information:

In order to develop deep understanding, the module uses a series of interactive workshops in which students are supported in designing, developing and testing small-scale software solutions to a range of algorithmic problems. The division of the module into three clear phases provides a scaffolded structure for software development, while the nature of the practical tasks facilitates a gradual introduction to mathematical problem solving and fosters computational thinking. For the final project students deploy this structure, applying independent judgment to a selected computing problem.

Workshops
Hours: 45
Intended Group Size: Cohort

Guided independent study
Hours: 155

Further details relating to assessment
Directed activities: these consist of weekly tasks that must be completed and submitted for inspection at timetabled sessions each week. The assessment will be assessed on a pass/fail basis with a pass requiring at least 75% of all weekly tasks to be completed successfully. A pass will lead to the full award of 10% towards the final module mark. A fail in directed activities will contribute 0% to the final mark.

Practical Project: The given computer problems all require the application of basic mathematics. The assessment comprises the following:

1) A statement of how the software artefect design provides an effective solution to the given computing problem including mathematical notation where applicable;
2) Development and implementation of the software artefact;
3) Evidence of a testing strategy;
4) A critical evaluation of the development process and resulting software artefact, including its design and workability.

Feedback will be provided on all 4 elements, but there will be a single mark for the project.

The project will be completed by the end of the module - half-way through the second semester (typically by week 5), in time for the commencement of COM4044 Team Project.

Assessment:

001 Directed activities Throughout Semester 1 10%
002 Project Artefact End of Semester 1 90%

Fact File

Module Coordinator - Sorrel Harriet
Level - 4
Credit Value - 20
Pre-Requisites - NONE
Semester(s) Offered - 4YL