CS6004 - Application Development (2017/18)
|Module specification||Module approved to run in 2017/18|
|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 2017/18||
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).
Prior learning requirements
Successful completion of Level 5 or equivalent
The aims of this module 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 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 such as those of Microsoft .NET;
- 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;
- to prepare students for a professional certification exam e.g. of Microsoft technologies.
The detailed syllabus will depend on the development platform/language/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).
- Core programming using the chosen programming language, revisiting of core programming concepts, constructs and techniques in conjunction with specifics of the chosen language.
- 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.
- Object-oriented programming and software patterns for code design and architecting in the context of the chosen programming language and development platform.
- Features and constituents of the chosen development platform e.g. Microsoft .NET, including associated technologies, programming languages (e.g. C#, ASP.NET), APIs (e.g. collections, IO, Windows Forms, Web Forms, threading, sockets, XML ...), and development tools.
- Features of, and hands-on skills to use, the chosen platform’s integrated development environment e.g. Visual Studio
- Development of desktop applications, including programming with UIs components and APIs, access and use of operating system services.
- Development of web applications, using the chosen platform languages and APIs e.g. C#, ASP.NET, Visual Studio, and web services.
- Programming database creation, connection and query in data-intensive applications using the chosen technology e.g. ADO.NET and APIs, Microsoft SQL server
Learning and teaching
The module will be delivered through a series of lectures, practical lab-based tutorial/workshop sessions, and self-study exercises. The lectures (30 hours) 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 (60 hours). During thesepractical supervised sessions students will gain practical experience 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 (120 hours). It is expected that the student will dedicate further 60 hours implementing the coursework assignment, and 30 hours preparing for the final examination.
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. During the course of this module students are also encouraged to reflect on their learning and log their experience and achievements on their personal PDP website.
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 and practical understanding of core programming concepts and techniques taught earlier in the degree;
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.
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, 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.
Details of the assessment components and their matching learning outcomes are indicated in the table below.
|Assessment instruments||Weight||Assessed Learning Outcomes|
|Coursework||30%||LO1, LO2, LO3, LO5|
|Practical exam||30%||LO3, LO4, LO5, LO6|
|Unseen Examination||40%||LO1, LO3, LO4, LO5, LO6|
The reading list would be very much dependent on the choice of the development platform/language to be used in the module.
1. Sharp, J. (2015 ) Microsoft Visual C# : step by step, 8th ed., Microsoft Press
2. Spaanjaars, I. (2014) Beginning ASP.NET 4.5.1 in C# and VB, Wiley
3. Freeman, A. (2013) Pro ASP.NET 4.5 in C#, Apress
4. Microsoft® Visual C#® 2013 Step by Step by John Sharp, Microsoft Press; 1 edition
5. Microsoft Official Academic Course (2011) 98-361: MTA Software Development Fundamentals, John Wiley & Sons, ISBN-10: 047088911X
6. Michaelis, M. (2015) Essential C# 6.0, Addison Wesley
7. Kroenke, D. and Auer, D. (2011) Database Processing Fundamentals, Design and Implementation, 12th Edition, Pearson Education, ISBN-10: 0132570114
8. Braude, E. (2006) Software Design: From Programming to Architecture, John Wiley & Sons, ISBN-10: 0471204595
9. Bruegge, B. and Dutoit, A. (2009) Object Oriented Software Engineering Using UML, Patterns, and Java, 3rd edition, Pearson Education