CS6004 - Application Development (2023/24)
|Module specification||Module approved to run in 2023/24|
|Module title||Application Development|
|Module level||Honours (06)|
|Credit rating for module||30|
|School||School of Computing and Digital Media|
|Total study hours||300|
|Running in 2023/24(Please note that module timeslots are subject to change)||
CS6004 Application Development 30 weeks: This module will equip students with essential knowledge and skills to become efficient software developers. The module will consolidate and integrate programming concepts and techniques which students have learned earlier in the degree for the purpose of application development for the real world. The module will also extend students’ knowledge and skills for them to be able to tackle issues pertinent to realistic application development projects.
The module delivery will be conducted in a practical fashion through exposing the student to one exemplar of modern development platform/technologies in depth and then requiring them to develop a significant software artefact using the exemplary toolset/development platform, and to reflect on the process and the solution. (Exam, course work and practical exam). It will cover risk assessment to identify and implement appropriate security.
The module aims are:
● To provide students with a disciplined understanding of the state of the art of application development in terms of development technologies, development platforms and toolsets, risk assessment and security in the broader context of the IT industry business.
● To consolidate the techniques and concepts introduced in earlier programming modules in order for students to be able to employ them in an integrated fashion in realistic application development projects.
● To introduce students to a major contemporary software development platform, including its programming languages and toolsets for application development.
● To train and equip students with necessary hands-on skills in using a major development platform and environment to design and implement a significant software application.
Prior learning requirements
Successful completion of Level 5 or equivalent
The detailed syllabus will depend on the development platform, programming language and environment chosen at the time of the module delivery. Areas to be covered include:
● Contemporary landscape of application development, covering trends, approaches, technologies, development tools, application architectures/types, and cybersecurity (e.g. threads & attacks, secure systems & products, and security controls). (LO1, LO7)
● Core programming using the chosen programming language, revisiting of core programming concepts, constructs, and techniques in conjunction with specifics of the chosen language. (LO2, LO3)
● Generic issues in application development, including software life-cycle management, interpretation of application specifications, and practical use of algorithms and data structures in the chosen programming language, conducting risk assessment leading to security. (LO1, LO6)
● Object-oriented programming and software patterns for code design and architecting in the context of the chosen programming language and development platform. (LO1)
● Features and constituents of the chosen development platform, including associated technologies, programming languages, APIs, and development tools. (LO3, LO5)
● Features of, and hands-on skills to use, the chosen platform’s integrated development environment e.g. Visual Studio. (LO3, LO5)
● Development of desktop applications, including programming with UIs components and APIs, access, and use of operating system services. (LO4, LO5, LO6)
● Development of web applications, using the chosen platform languages and APIs, and web services. (LO2, LO3, LO4)
● Programming database creation, connection and query in data-intensive applications using the chosen technology and APIs, Microsoft SQL server or NoSQL DBMS. (LO3, LO4, LO5)
Balance of independent study and scheduled teaching activity
The module will be delivered through a series of lectures, practical lab-based tutorial/workshop sessions, and self-study exercises. The lectures will be used to introduce the theoretical concepts and principles of the related topics. Each 1-hour lecture will be followed by a 2-hour practical session with lab-based tutorial/workshop. During these supervised practical sessions students will gain practical skills by doing computer-based exercises and/or participating in discussions on topics introduced in the lecture. There are also self-study exercises, which are specifically designed for students to work in their own time and at their own pace. These are unsupervised work in the computer laboratories and in private study.
The student will be required to submit a reflective critique of their solution of the submitted coursework, and of their own process of the solution’s research, design and implementation. Students will also be expected and encouraged to produce reflective commentaries and an action plan for personal development on the learning activities and tasks that they carry out to complete their work, e.g. in the form of an assessed section of their coursework report.
On successful completion of this module students should be able to:
- LO1: demonstrate a disciplined understanding of the state of the art of application development technologies, and development platforms and toolsets in the broader context of the IT industry.
- LO2: gain a solid practical understanding of core programming concepts and techniques through sizable application development case studies.
- LO3: demonstrate a critical understanding of key features of the taught exemplary development platform, and its associating technologies, programming languages and tools.
- LO4: evaluate, select suitable development technologies, techniques, and tools for designing and communicating robust software solutions in realistic application development scenarios.
- LO5: demonstrate hands-on skills of using a major programming platform, including its languages and toolsets to implement robust software solutions in a range of development contexts.
- LO6: demonstrate an appreciation of technical, ethical and professional issues related to software application development for the real world.
- LO7: undertake risk assessment and security issues in application development.
The learning outcomes of this module comprise both theoretical and practical aspects of software development together with knowledge and skills of a development technology/platform; hence the module’s assessment will include instruments to assess student theoretical topics as well as design and programming skills.
The unseen exam is aimed to assess their disciplined understanding of concepts/issues and theoretical topics related to application development.
The coursework involves development of a significant software application requiring the use of extended programming and development skills. The coursework is designed to assess the student’s practical skills, and their demonstration of awareness/deployment of contemporary issues/techniques in application development such as visual development, risk assessment leading to security threads & attacks, types of information used by software & input validation, and secure design, requirements analysis for security and the functioning of security controls. The module is passed on aggregate.
There will also be non-assessed in-course assignments for the students to implement in the supervised laboratory with informal feedback on a weekly basis, which will enable students to learn practical skills and to consolidate their understanding of concepts and techniques covered in the lecture.
Consistent with University policy, formative and summative feedback will be provided at various points throughout the teaching year.
The reading list would be very much dependent on the choice of the development platform/language to be used in the module. Where possible, the most current version of reading materials is used during the delivery of this module. Comprehensive reading lists are provided to students in their handbooks. Reading Lists will be updated annually.