IAB207 Rapid Web Application Development


To view more information for this unit, select Unit Outline from the list below. Please note the teaching period for which the Unit Outline is relevant.


Unit Outline: Semester 2 2024, Gardens Point, Internal

Unit code:IAB207
Credit points:12
Pre-requisite:(IFB103 or ITD103) and (IFB105 or ITD105 or IFB130)
Coordinator:Jason Watson | ja.watson@qut.edu.au
Disclaimer - Offer of some units is subject to viability, and information in these Unit Outlines is subject to change prior to commencement of the teaching period.

Overview

Web applications are widely in use both within enterprises and in consumer applications. Developing Web applications faces significant challenges, including faster delivery of new innovations, robustness for change, and performance scalability. The unit will address these challenges by using Model-View-Controller (MVC) frameworks to support rapid development of web applications. The knowledge and skills developed in this unit are valuable for all IT professional roles – software engineers, business analyst and architects, enabling an understanding of software systems design practices and development practices. This is an introductory unit and students will be exposed to web application development through a guided process of using well known frameworks such as CSS-Bootstrap, Python-Flask and JQuery. It builds on concepts learnt in IFB103 and IFB105 and recommends knowledge of Python programming.

Learning Outcomes

On successful completion of this unit you will be able to:

  1. Analyse client requirements and design a web application in preparation for the software development process.
  2. Apply existing frameworks to implement model, view and controller aspects of web applications.
    Relates to: ACS CBOK: 4, 4.2
  3. Develop and deploy program code of web applications using both a programming language and platform tools.
    Relates to: ACS CBOK: 4, 4.2
  4. Evaluate the use of web applications in relation to different computer systems (hardware, software and networks).
    Relates to: ACS CBOK: 3, 3.1, 3.3
  5. Collaborate and work effectively in a team environment, applying high performing team concepts, to produce quality deliverables for a client within agreed timelines.
  6. Develop project artefacts using agile methodology relevant to a software development context

Content

Students will be exposed to Web application development through a guided process that covers the following: key parts of a Web application; programming in Python; MVC tools used in conjunction with Python programming, drawn from Python frameworks such as Flask; managing a development plan that includes requirements and bug-fixing lists; working collaboratively in a team that contributes to all aspects of development; presenting solutions as well as the development steps, challenges and learnings involved.

An exposure of the key parts of a Web application will allow students to appreciate its logical structure, along the lines of presentation (Web pages), application logic (software components), and database layers. Students will learn about the specific functionality of the different layers and their parts, and how these contribute to the software architecture of a Web application (aligning these learnings with IFB103 where students learn to use UML and FMC modelling techniques to design software systems). Students will design a Web application, captured through a software architecture, based on given solution requirements and scenarios. They will use the software architecture to create development plans and communicate the progress and final solution of the Web application.

Students will be exposed to the Python programming language and specific parts of it that assist in developing a Web application. This will involve learning the dedicated concepts and constructs of Python used to develop software for presentation, application logic and database layers. Programming for the presentation layer is linked to Web pages and their data processing needs, e.g. data display on Web pages and detecting user actions. The application logic layer involves developing software components (Python Modules), sitting between the presentation and database layers, to process user requests, retrieve or update data, call external systems, make calculations and process responses for display. The database layer involves managing database access through its data objects in support of requests for retrieving and updating data. Students will be provided with an instruction-based approach through the unit's exercises and an assignment which provides them with partial solutions together detailed steps for completing these.

In conjunction with Python programming, students will be exposed to MVC tools and their capabilities which assist in the design and development of Web application artefacts. These include Web pages and widgets, database models (object models) and database generation scripts, and libraries that assist in low-level tasks such as data computation functions and external systems communication. As part of this student will learn how to use code-generation capabilities of an MVC platform based in support of developer productivity. Students will learn to develop, test and Cloud-deploy applications using the MVC platform. 

The unit's exercises will feature 'pair programming' groups (two students) and larger groups (four students) for assignments. It will expose students to team learning, collaboration and managing development tasks through plans. Students will be asked to analyse the work of others in a team, provide constructive feedback, review development progress, consider options for overcoming issues and obstacles, work to individual tasks and integrate results, and progressively present Web applications during the development process. Through this, students will acquire the skills and knowledge required to participate as individuals and as effective team members, learning how to engage and critically reflect upon software development learning and performance.

Learning Approaches

This unit is available for you to study in either on-campus or online mode. Learning in this unit includes weekly pre-recorded lectures, online activities, workshops and a unit communications channel, designed to facilitate communication with your peers and teaching staff outside of scheduled classes. You can expect to spend 10 hours per week involved in preparing for and attending all scheduled workshops, completing assessment tasks, and undertaking your own independent study to consolidate your learning.

The pre-recorded lectures and online activities in the initial weeks lay the foundations of your Web application foundations and Python programming, and later pre-recorded lectures extend the knowledge for Web application development focussed on targeting development of different parts for producing desired solutions. Students will be guided through each phase of the design and development process.

Learning in this unit is predominantly through participation in the workshops in the either on-campus or online collaborative learning spaces and via the unit communication channel. The workshops are activity based and involve collaboration with peers to support Web application design, programming and team management tasks (inquiry-based learning) and develop skills in each phase of the development process. The workshops build directly on the stimulus material presented in the pre-recorded lectures, detailed instructions for learning about programming and Web application development. They are designed to support class instruction, group work, and class reflection.

In tandem with your development focus, students will practise the techniques required to develop planning, communication, reflection and teamwork skills. This learning is facilitated by communicating software architecture and solution-focussed scenarios, online development plans, and progressive outputs of Web applications, keeping a design logbook and undertaking a critique of another team's design concept. All of these elements are assessed progressively throughout the unit offering students multiple opportunities to demonstrate progress and receive feedback on learning.

Feedback on Learning and Assessment

Feedback in this unit is provided to you in the following ways:

  • Ongoing peer and learning facilitator feedback on design activities in workshops.
  • Written comments on summative assessment work with graded criteria sheets.
  • Formative critique from peers on presentation technique and design concept.

Feedback will be received on assessment tasks prior to the submission of the next task.

Consultation time are available to clarify the contents of the assignment and to provide constructive feedback and you may ask teaching staff for advice and assistance during lectures and workshop sessions. 

Assessment

Overview

The assessment in this unit has been designed so that students develop an understanding of different aspects of developing Web applications. Students will develop the skills to work collaboratively and present confidently demonstrating effective written and visual communication. They will also develop the skills to engage in reflective practice.

Unit Grading Scheme

7- point scale

Assessment Tasks

Assessment: Web Application Design

Students will develop a Web application design in support of solution requirements, high-level scenarios and insights drawn from existing Web applications used in the real-world. The design will focus on a software architecture covering presentation, application logic and database components envisaged for the Web application. Given the user-centred focus of Web applications, the design will also require proposals for key Web pages, covering the envisaged, presentation widgets and forms navigation. 

This assignment is eligible for the 48-hour late submission period and assignment extensions. 

Weight: 25
Individual/Group: Individual
Due (indicative): Week 5
Related Unit learning outcomes: 1, 4

Assessment: Web Application Prototype

Students will develop a prototype of a Web application in support of the solution requirements and design (from Assessment 1). This will involve the implementation of forms, databases and main software modules, such that the end-to-end support of the design can be demonstrated. Both the Python programming language and MVC platform will be used to produce this. Students will be required to demonstrate the prototype by showing how data is entered and results are returned. They will also be required to demonstrate key artefacts such as the database models, forms templates and APIs of external systems used. The prototype will not be required to have all aspects of processing to be in place, e.g. validation of data entered in fields.

This assignment is eligible for the 48-hour late submission period and assignment extensions. 

Weight: 25
Individual/Group: Individual
Due (indicative): Week 8
Related Unit learning outcomes: 2, 3

Assessment: Web Application Solution

Students will work in groups to develop the final solution of the Web application in support of the solution requirements and design (from Assessment 1) and prototype (from Assessment 2). This will involve the full implementation of forms, databases, software modules, and APIs, such that the detailed systems functionality can be demonstrated. Both the Python programming language and MVC platform will be used to produce this. Extending upon the prototype, all parts of forms navigation, data processing, external systems invocation and database access should be implemented.

Marks will be split for the team, covering the Web application prototype content, development plan and presentation, and for individuals based on effective contribution to the final solution.

This assignment is eligible for the 48-hour late submission period and assignment extensions.

Weight: 50
Individual/Group: Individual and group
Due (indicative): End of Semester
Related Unit learning outcomes: 2, 3, 5

Academic Integrity

Students are expected to engage in learning and assessment at QUT with honesty, transparency and fairness. Maintaining academic integrity means upholding these principles and demonstrating valuable professional capabilities based on ethical foundations.

Failure to maintain academic integrity can take many forms. It includes cheating in examinations, plagiarism, self-plagiarism, collusion, and submitting an assessment item completed by another person (e.g. contract cheating). It can also include providing your assessment to another entity, such as to a person or website.

You are encouraged to make use of QUT’s learning support services, resources and tools to assure the academic integrity of your assessment. This includes the use of text matching software that may be available to assist with self-assessing your academic integrity as part of the assessment submission process.

Further details of QUT’s approach to academic integrity are outlined in the Academic integrity policy and the Student Code of Conduct. Breaching QUT’s Academic integrity policy is regarded as student misconduct and can lead to the imposition of penalties ranging from a grade reduction to exclusion from QUT.

Resources

There are no extraordinary charges or costs are associated with the requirements for this unit. Free software for developing mock-ups will be identified and displayed on the unit Canvas site.

There is no prescribed textbook and most tasks are set around freely available university modules and resources and will be made available through the unit's Canvas site. Appropriate references will be made available on Canvas as well as relevant links.

Risk Assessment Statement

All commencing SEF students are required to complete the Mandatory Safety Induction

There are no extraordinary risks associated with the classroom/lecture activities in this unit.

Standards/Competencies

This unit is designed to support your development of the following standards\competencies.

Australian Computer Society Core Body of Knowledge

3: Technology Resources

  1. Hardware and software fundamentals
    Relates to: ULO4
  2. Networking
    Relates to: ULO4

4: Technology Building

  1. Programming
    Relates to: ULO2, ULO3

Course Learning Outcomes

This unit is designed to support your development of the following course/study area learning outcomes.

IN01 Bachelor of Information Technology

  1. Demonstrate well-developed IT discipline knowledge
    Relates to: ULO1
  2. Employ appropriate IT Methods
    Relates to: ULO1, ULO2
  3. Critically apply design and problem solving skills
    Relates to: ULO3
  4. Work independently and within effective teams
    Relates to: ULO5
  5. Purposefully appraise personal values, attitudes and performance in your continuing professional development
    Relates to: ULO4