Skip to main content

This module will address a subset of the tools and technologies required to support the development of reliable, efficient and scalable software services. The focus is on use of Agile Development methods requiring test-driven developed and regular automated software builds. The aim is to assemble a toolkit of modern tools that enable the set-up of a software development process where this structure is automated by the tools. Students taking this module should have strong object-oriented programming and design skills (e.g. be graduate of a BSc(Hons) or BEng involving significant programming experience) with a moderate understanding of computer architecture, operating systems and distributed computing.

The module guides you through a variety of Agile tooling and technologies that you will use to support and automate your development process.  Initially, you will be introduced to the Kotlin programming language, which will be used in conjunction with the Javalin lightweight web framework to build a RESTful API.   During the app development process, the lab exercises will utilise a variety of technologies and Continuous Integration and Continuous Deployment (CI/CD) tooling such as Swagger for API design and documentation, Maven to automate the build process, Heroku to host the app, PostgreSQL and Jetbrains Exposed to provide persistence, Vue to develop the UX, JUnit5 and Unirest to perform automated unit and integration testing, GitHub for version control, and so on.  This module is designed to be very practical serving, and should you choose to pursue the Master’s degree, the contents of the module supports software development for the dissertation.  

Indicative Content

  • Introduction to Agile Development e.g. object oriented programming review; agile practices; SOLID principles
  • Test Driven Development (TDD) e.g. Principles of testing; unit testing; integration testing; performance testing; TDD patterns
  • Developer Operations e.g. principles of automated build management and continuous integration
  • Frameworks e.g. Web App Frameworks; Model-View-Controller; Reactive Patterns; RESTful APIs; Serialization and Parsing (such as XML, JSON, YAML)

This course is comprised on one 10-credit module. On successful completion of this module, a student will be able to:

  1. Construct applications using development methodologies.
  2. Distinguish between various approaches to test driven development and apply these in a consistent manner.
  3. Appraise the key tools in the modern agile tool chain coupled with the principles behind them.
  4. Integrate effective design principles into the architecture of agile applications.
  5. Develop a simple client/server application using standard RESTful APIs and demonstrate Test Driven Development techniques in this context.

Year 1

Module Name Semester

M is a mandatory subject - E is an elective subject

Year 2

Module Name Semester

M is a mandatory subject - E is an elective subject

Year 3

Module Name Semester

M is a mandatory subject - E is an elective subject

Year 4

Module Name Semester

M is a mandatory subject - E is an elective subject

Applicants will normally require an Honours Degree in Computing or equivalent. The course is targeted at IT professionals who would participate in the programme on a part-time basis and complete the programme over two years.

Applicants who don't currently meet the entry requirements may be able to advance their application using the Recognition of Prior Learning (RPL) mechanism. RPL allows candidates to make a case that they do meet entry requirements through a combination of formal certified learning and learning through experience (most typically work experience). 

Applicants whose first language is not English must submit evidence of competency in English. Please see our English Language Requirements for details.

Contact

Course Leader

Mr Richard Frisby

Lecturer in Computing -

Call: +35351302066

Email: [email protected]

Profile