LEARNING OUTCOMES
1. Design, using appropriate notations, and write, in an appropriate programming language, a procedural software application.
Problem solving, Analysis.
2. Design, using appropriate notations, and write, in an appropriate programming language, an Object-Oriented software application.
Application.
3. Design, using appropriate notations, and write a client-side web application using current Web technologies.
Problem solving, Application.
4. Test and evaluate a software application.
Reflection.
ADDITIONAL ASSESSMENT DETAILS
Assignment 1: Students will investigate, and develop an evaluative procedure for a procedural application for a given scenario (LOs 1 and 2)
Assignment 2: Students will present their design of an object-oriented application for a given scenario (LO 3)
Assignment 3: Students will design and build a web-based application promoting a wide array of functionalities in relation to a small case study and test this. (Lo 4)
INDICATIVE CONTENT
Procedural approaches
Variables & data types
Input & Output
Control structures (Sequence, selection & iteration)
Functions and parameters
Arrays and other data structures
Introduction to analysis and design techniques
Exceptions
File handling
Testing procedural programs
Software Development Life Cycle
Object-Oriented approaches
Classes and objects
Inheritance & polymorphism, encapsulation, and information-hiding
Association & aggregation
Abstract classes and interfaces
Unit testing
Accessing databases
Designing OO applications with UML (Use case diagrams, Activity diagrams, Class diagrams, and Sequence diagrams)
Web approaches
HTML and CSS
Web standards and W3C
Web design
Best practices in web development
Hosting
JavaScript / ECMA Script: Language basics; eventsvirtualis
Testing web applications
WEB DESCRIPTOR
This module establishes a solid foundation in the basic principles of developing software applications. You will learn the essential skills necessary to give you confidence in designing, implementing, and testing procedural, object-oriented and web-based software solutions. You will be encouraged to develop your intellectual, communicative, and problem-solving skills.
LEARNING STRATEGIES
130 hours of tutor-supported learning: lectures (to introduce key topics and concepts) and tutor-assisted practical sessions (to get hands-on practical experience of the principles taught in the lectures).
270 hours of independent learning: complete the practical work, explore the subject area, work on the assessments, undertake formative, and self-directed exercises.
REFERENCE TEXTS
Albahari, J.; Albahari, B. (2017) “C# 7.0 in a Nutshell”. 7th edition. O'Reilly. ISBN: 9781491987650
Barry, P. (2017) “Head First Python”. 2nd edition. O'Reilly. ISBN: 9781491919538
Mozilla. B. (2020). “MDN Web docs”. [On-line] Available at: https://developer.mozilla.org/en-US/. [Accessed November 2020].
Perkins, B.; Hammer, J.V.; Reid, J.D. (2018) Beginning C# 7 Programming with Visual Studio 2017. Wrox. ISBN: 9781119458685
Schneider, D.I. (2016) “An introduction to programming using Python”. Pearson. ISBN: 9781292103433
Google (2020). “Web.Dev”. [On-line] Available at: https://web.dev [Accessed: November 2020]
An annually updated key links online resource bank will be made available
RESOURCES
JetBrains PyCharm (IDE for Python)
Visual Studio Professional 2019 (IDE for C#)
Microsoft Visio
Modern web browsers
Web text editor, e.g. Visual Studio code