Dr Rich Boakes

I'm currently a Senior Lecturer at University of Portsmouth where I'm a co-director of the Software Enginering BSc degree programme.

I focus on undergraduate teaching and also supervise Master's & PhD Students.

Supervision

If you're funded and looking for a supervisor for your PhD, MSc or undergraduate topic I am happy to discuss your ideas. Please drop me a line. Themes that I find particularly interesting include:

Supervision History

Projects I have supervised…

Postgraduate
  • 2018-2024, PhD, An Exploration of the Perceived Subjective Weighting of Naturally Occurring Visual Artefacts in Video
  • 2018-2019, MSc, Designing Better Systems: A DevSecOps Pilot Study
  • 2010-2016, PhD, Semantic Web Examiner of Emergent Phenomena
  • 2010-2011, MSc, A Study of User Trust
  • 2010-2011, MSc, Critical Thinking Tool
  • 2009-2010, MSc, Google Wave - For Learning
  • 2009-2010, MSc, Design and development of a Portal
Undergraduate

2019-2020

  • Maintenance issue tracking system
  • A bill-splitting application built using Open Banking APIs

2018-2019

  • Using COTS products to monitor traffic patterns
  • Creating effectiveness within project teams.
  • Helping students to use active voice in academic writing
  • Webpage annotation extension Interactive Web-Based Tourist Planner

2017-2018

  • School Feedback App Front-End Application Concept
  • Application, Data & Transaction Security
  • On using NFC Tags for Student ID
  • Educational Web Platform (Mathematics Focus)
  • Student Housing Management System (SHMS)
  • Making ​the ​road ​safer ​for ​cyclists
  • High speed Deep Learning training on the web using Web Assembly and WebGL 2.0

2016-2017

  • Optimising load balancing with web technologies
  • Web-based charting application

2015-2016

  • A web application to improve tracking and reporting of software development issues.
  • Cyclist Tracking using Google Glass

2013-2014

  • Collaborative drawing platform
  • Cloud-based Interactive Board to Store Information
  • Student Attendance and Performance Analytics
  • Multi-API note taking app
  • Alt-Metrics and the semantic web
  • Crowed Sourced Cycle Based Geo-Data Creation
  • Crowd-sourced wiki-like semantic data hive

2012-2013

  • Information Management System for Educational Institutes
  • Sonify, Enabling visually impaired users to interact with data
  • Distributing data processing to the browser
  • COTS Bicycle Data-Logging
  • An online social collaborative idea-generation tool

2011-2012

  • Citizen Led Surveillance.
  • Crowd Sourced Real-time Public Transport Information.
  • Mobile London - A mobile website for planning journeys in London.
  • Twitter Sentiment Engine for Online Reputation Management.
  • Evergreen City Project - A construction company website.

2010-2011

  • Building Web-based GIS Systems using HTML5
  • Before & After: A Modern Web Application and RESTful API
  • JavaScript Game Development with Usability Testing via Social Networking Sites
  • Electricity Measuring and Management Software

2009-2010

  • Real-Time Gesture Recognition: A Human Computer Interaction Solution.
  • Search Engine Optimisation
  • A Multimedia Solution to Distance and E-Learning
  • Interactive Campus Map
  • Semantic ePortfolio Development
  • On-line book store
  • Accessing Multiple Respositories within an XSL Transformation Cloud Service
  • Automated (Computer-Based) Examinations System
  • Mobile Phone Fitness Application

Publications

Teaching

My current teaching includes: Previously I have taught:
Web Research Y3, 20cr

Overview

Internet-scale computing is constantly evolving. The web started as a collection of static hyperlinked documents in a client/server architecture. It has expanded and diversified to a point where varied devices may produce and consume content as peers, on behalf of their users. This evolution is provoking a shift in the design of all applications, data and user interfaces.

This unit enables students to acquire application development skills for this dynamic web using the ubiquitous approach of standards-based web development, data design and storage. Out of necessity the unit will track the research interests of its lecturers and therefore cover emerging technologies and draft standards in order to introduce the volatile nature of the subject matter and prepare students for evaluating such technologies in future academic or professional roles.

Aims

  1. To enhance a students skills in building substantial Internet applications on varied devices. Including: a. an understanding of standards, best practices, APIs, libraries and patterns in common use. b. a critical awareness of the suitability of such technologies and practices.

Learning Outcomes

  1. Conceive and develop advanced Internet applications using open web technologies.
  2. Model, create, process and communicate heterogeneous data using open formats and models.
  3. Apply emerging architectural paradigms.
  4. Evaluate and appraise these applications and technologies.

Syllabus Outline

  1. An overview of the capabilities of mobile and embeddable technologies, including smart phones, PDAs, and other devices.
  2. Technical and usability considerations of mobile technologies and applications.
  3. Using and evaluating browsers and SDKs for development of mobile applications.
  4. The modelling and use of structured and semantic data, including ontology design (e.g. RDF, OWL)
  5. Tools & techniques for managing, transforming and analysing large scale data sets on the Internet (e.g. MapReduce)
  6. Client and server methods for communicating and managing data (e.g. XMLHttpRequest, WebSockets)
Development for Usability Y2, 20cr

Overview

This module covers application usability for a wide range of devices and form factors. It introduces the concepts of GUI (Graphical User Interface) applications and the design of effective, accessible and usable applications, based on Human Computer Interaction (HCI) principles and techniques.

Students learn the UX design process, including using prototypes and heuristics as part of designing an application, then implementing the design, and running tests to formally evaluate the usability of the designed artefact.

On completion of the module, students should be able to design and develop system prototypes that can be used to improve the usability of applications, and evaluate the usability of a finished application.

Learning Outcomes

  1. Develop an application that is capable of running on many types of devices using a rapid prototyping approach.
  2. Employ HCI principles and theory to design usable and accessible applications.
  3. Compare and contrast techniques (e.g. questionnaires, focus groups, observational studies) to objectively measure usability.
  4. Evaluate the usability of software applications.
Software Engineering Team Project Y2, 10cr

Overview

This unit provides students with experience in developing software within a team of software engineers. The unit will build upon the principles and techniques of software engineering covered in an earlier introductory unit, and will give students a practical team-based experience in the process-driven development of a software artefact to meet a client's requirements, and the associated documentation of this process.

Aims

  1. To give students practical experience of process-driven construction of software within a team environment.
  2. To strengthen students' appreciation and understanding of software engineering issues, and to enhance their software development skills.

Learning Outcomes

  1. Demonstrate experience in the development of a software artefact as part of a team, and contribute to team-based software projects.
  2. Schedule, carry out and document appropriately phases in the process-driven development of software.

Syllabus Outline

  1. The software project
  2. Management and team structure
  3. Project planning
  4. Requirements engineering
  5. Design
  6. Implementation
  7. Testing
  8. Delivery
Web Script Programming Y2, 20cr

Overview

This unit introduces students to:

  1. "client-side programming" (that is, inside a web browser) by embedding program scripts in the HTML to be displayed; using those scripts to dynamically modify the HTML and CSS; asynchronous reading of information from the server (known as "Ajax");
  2. "server-side programming" (that is "across the web") by writing server-side scripts accessing server-side files and databases; and
  3. the reasons for these two forms of programming, and the underlying theory. Throughout, particular emphasis will be placed on the need to produce contemporary sites, using best practices from industry, and bearing in minds the needs of the various clients of a website and the desirability of network efficiency.

Aims

  1. To develop an understanding of web client and web server scripting technologies and the underlying theory.
  2. To develop an ability to write and install simple web server scripts and web client scripts.

Learning Outcomes

  1. Design and implement a simple modern “post-2005” web application in industry-standard client-side and server-side languages.

Syllabus Outline

  1. Web client-and-server architecture; the concepts of web scripting;
  2. Installation of a minimal web server and SQL server; and other support tools;
  3. The JavaScript programming language;
  4. AJAX for accessing a server-side API to update swerver-side databases, and return information to client-side;
  5. The "Domain Object Model" (DOM) that describes the browser's internal view of a displayed web-page;
  6. "Dynamic HTML" (DHTML) - that is, using JavaScript to modify the DOM of the HTML of a current web-page, and thereby modify the display;
  7. "Dynamic CSS" (DCSS) - that is, using JavaScript to modify the DOM of the CSS of a current web-page, and thereby modify the display;
  8. The PHP language; to provide server-side APIs including to invoke SQL from PHP scripts.
Web Server Programming Y2, 10cr

Overview

This unit introduces students to programming "across the web" by writing server-side scripts accessing server-side files and databases; the reasons for doing so, and the underlying theory.

Aims

  1. To develop an understanding of web server scripting technology and the underlying theory.
  2. To develop an ability to write and install simple web server scripts.

Learning Outcomes

  1. Design and implement simple server scripts in an industry-standard server-side language.
  2. Demonstrate the uses of programmable web servers.

Syllabus Outline

  1. Web server architecture; the concepts of web-server scripting; the difference between scripting and servlets; review of server-side languages.
  2. Installation of a minimal web server and SQL server; and other support tools.
  3. The PHP language; invoking PHP by embedding scripts in HTML.
  4. Difficulties and techniques of debugging server-side scripts.
  5. Sending values to server-side scripts, both via URLs and from HTML forms.
  6. File-handling in PHP scripts; in particular, issues of concurrent access.
  7. Using SQL from PHP scripts.
  8. Using Cookies from PHP; Sessions.
  9. Review of other PHP library capabilities.
Web Client Programming Y2, 10cr

Overview

This unit introduces students to "Client-side" programming (that is, inside a web browser) by embedding program scripts in the HTML to be displayed; using those scripts to dynamically modify the HTML and CSS; asynchronous reading of information from the server (known as "Ajax"); the reasons for doing so; and the underlying theory.

Aims

  1. To develop an understanding of web client scripting technology, common applications of it, and the underlying theory.
  2. To develop an ability to write and install simple web client scripts.

Learning Outcomes

  1. Design and implement simple client scripts in an industry-standard client-side language;
  2. Syllabus Outline
  3. Web client-and-server architecture and the concepts of web-client scripting;
  4. A review of HTML, and an introduction to HTML forms;
  5. The JavaScript programming language, and how to embed scripts into an HTML page;
  6. The "Domain Object Model" (DOM) that describes the browser's internal view of a displayed web-page, including both version 0 and version 2 of the DOM;
  7. "Dynamic HTML" (DHTML) - that is, using JavaScript to modify the DOM of the HTML of a current web-page, and thereby modify the display;
  8. An introduction to Cascading Style Sheets (CSS) for specification of the style of a displayed web-page, and "Dynamic CSS" (DCSS) - that is, using JavaScript to modify the DOM of the CSS of a current web-page, and thereby modify the display;
  9. Cookies from JavaScript, for retaining information from one browser-session to another;
  10. An introduction to Asynchnonous JavaScript (AJAX) for obtaining information from a server, and using that information to modify the DOM of the current web-page, and thereby modify the display.
Web Client and Server Programming Y2, 20cr

Overview

This unit introduces students to:

  1. "client-side programming" (that is, inside a web browser) by embedding program scripts in the HTML to be displayed; using those scripts to dynamically modify the HTML and CSS; asynchronous reading of information from the server (known as "Ajax");
  2. "server-side programming" (that is "across the web") by writing server-side scripts accessing server-side files and databases; and
  3. the reasons for these two forms of programming, and the underlying theory.

Aims

  1. To develop an understanding of web client and web server scripting technologies and the underlying theory.
  2. To develop an ability to write and install simple web client scripts.

Learning Outcomes

  1. Design and implement simple client and server scripts in industry-standard client-side and server-side languages.
  2. Demonstrate the uses of programmable web-browsers and web-servers.

Syllabus Outline

  1. Web client-and-server architecture; the concepts of web scripting;
  2. Installation of a minimal web server and SQL server; and other support tools;
  3. A review of HTML, and an introduction to HTML forms;
  4. The JavaScript programming language, and how to embed scripts into an HTML page
  5. The "Domain Object Model" (DOM) that describes the browser's internal view of a displayed web-page, including both version 0 and version 2 of the DOM;
  6. "Dynamic HTML" (DHTML) - that is, using JavaScript to modify the DOM of the HTML of a current web-page, and thereby modify the display;
  7. An introduction to CSS for specification of the style of a displayed web-page, and "Dynamic CSS" (DCSS) - that is, using JavaScript to modify the DOM of the CSS of a current web-page, and thereby modify the display;
  8. The PHP language; invoking PHP by embedding scripts in HTML;
  9. Difficulties and techniques of debugging server-side scripts;
  10. Sending values to server-side scripts, both via URLs and from HTML forms; 11. File-handling in PHP scripts; in particular, issues of concurrent access;
  11. Using SQL from PHP scripts;
  12. Using Cookies from PHP and JavaScript; PHP Sessions;
  13. Review of other PHP library capabilities;
  14. An introduction to Asynchnonous JavaScript (AJAX) for obtaining information from a server to client-side, and using that information to modify the DOM of the current web-page, and thereby modify the display.
Introduction to Programming Y1, 40cr

Overview

This unit introduces students to the theory and practice of writing computer programs, covering both algorithm development and object oriented programming. No previous knowledge of programming is assumed. Techniques of program design focusing on algorithm development are taught alongside the Python programming language and object oriented design alongside Java.

Aims

  1. To develop an understanding of algorithm development and procedural programming with emphasis on problem solving and readability.
  2. To develop good object oriented design and coding practices in order to produce programs using classes and objects as the fundamental building blocks.
  3. To provide a foundation for learning further programming techniques and languages.

Learning Outcomes

  1. Design, implement and test algorithms to solve problems using appropriate data types and control structures.
  2. Design, implement and test object oriented programs based on a supplied specification.
  3. To describe and analysis fundamental programming concepts and techniques.

Syllabus Outline

  1. The program development lifecycle (design, code, test, debug, documentation)
  2. Fundamental data types and operations: numeric, string, boolean, collections
  3. Program modularity: the use of functions
  4. Control structures: decisions and loops
  5. Classes and objects
  6. Using library classes and designing for reuse
  7. Objects working together and message passing
  8. Design and design notations
  9. Inheritance
  10. Algorithm design and recursion
Introduction to Structured Programming Y1, 40cr

Overview

This unit introduces students to the theory and practice of writing computer programs. No previous knowledge of programming is assumed. Techniques of program design are taught alongside the Python programming language.

Aims

  1. To develop an understanding of program design with emphasis on algorithms and readability.
  2. To enhance problem solving skills.
  3. To establish the principles of sound programming practice.
  4. To provide a foundation for learning further programming techniques and languages.

Learning Outcomes

  1. Design algorithms to solve problems using appropriate data types and control structures.
  2. Design, implement and test program designs based on a supplied specification.
  3. Understand and apply the principles of writing high quality program code.

Syllabus Outline

  1. Solutions as algorithms.
  2. The program development lifecycle.
  3. Fundamental data types and operations: numeric, character based and boolean.
  4. Program modularity: the use of functions.
  5. Control structures: decisions and loops.
  6. Program design considerations.
  7. Data collections: lists
  8. Algorithm design and recursion.
Web Foundations 1 Y1, 20cr

Overview

Most students joining the University will have had some exposure to The Web. This unit introduces the concepts, practices and technologies that underpin website creation and maintenance. We primarily focus on information architecture and design: supplemental to this, the management, social and ethical issues of publishing and using in a global medium.

Aims

  1. To develop a measured approach to the design, construction and management of websites.
  2. To provide experience in research, presentation and writing as required to study successfully at tertiary level.
  3. To prepare for application to and employment in the IT profession.
  4. To encourage the authoring of linear and patterned notes from oral and written material (e.g. mind maps, digital collaborative note-taking.

Learning Outcomes

  1. Examine and explain existing document-centric websites (e.g. discuss how well form and content have been separated and assess semantics).
  2. Identify the information requirements of simple websites (for example, an online curriculum vitae).
  3. Construct and publish a simple website
  4. Outline technologies and techniques for website project management.
  5. Discuss some of the major social, political, legal and ethical issues of the web (such as globalisation, mobility, data protection, surveillance, digital identity and e-Democracy).
  6. Research and critically evaluate a topic and present this in a referenced paper and oral presentation.

Syllabus Outline

  1. Introduction to Basic Web Authoring, inlcuding: Owners & audience requirements; Page, site, interaction & navigation design; Hypertext Markup Language (HTML); Cascading Style Sheets (CSS); Semantic markup; Usability; Incorporating multimedia; Basic access control; Maintenance requirements; Copyright & licensing; Data protection; Privacy and surveillance.
  2. Validity and Standards, including: Tools and techniques for website evaluation; Accessibility; Use of testing tools; Use of evaluation tools; Browser issues.
  3. Project Management, including: Project and production processes; Group development; Roles and responsibilities.
  4. Post-industrial society and the roots of the 'Information Society' idea inlcuding: The 'Network Society' and Web 2.0; Globalisation and convergence; Virtual communities, social networking and identity; Mobility and mobile devices.
  5. IT Professionalism: Curriculum Vitae, Presentation Skills, Work Ethics (industrial codes of practice in IT)
  6. Tertiary Study Skills: Literature Referencing, Academic Presentation, Report Writing, Scientific Method
JavaScript Programming Y1, 10cr

Overview

Overview This unit seeks to introduce Object-Oriented Programming concepts to non-specialists. Basic programming skills are developed by building basic web applications using Javascript.

Aims

  1. To introduce object oriented programming concepts using a scripting language.
  2. To develop practical programming skills using a scripting language in the context of web application development.

Learning Outcomes

  1. Understand the object-oriented programming paradigm.
  2. Use JavaScript in the implementation of web pages.
  3. Implement web pages based on sound HCI principles, in particular interaction with the user.

Syllabus Outline

  1. Introduction to HTML.
  2. Data types and variables - numeric, strings, arrays, type conversion.
  3. Control flow constructs - selection and iteration.
  4. Functions.
  5. Object based programming - JavaScript native objects, Browser objects.
  6. HTML forms.
  7. String Manipulation.
  8. Using timers.
  9. Cookies.
  10. Dynamic HTML.
Web Authoring and Design Y1, 10cr

Overview

Most students joining the University will have had some exposure to the use of the Internet, and especially interaction with web based Information Systems. This unit will consider the authoring and design of a small information system presented as a website. This will include the basic Information Architecture issues, the management issues and the authoring issues associated with creating and publishing materials on the Internet.

Aims

To develop a professional designed approach to the development and management of web-based content.

Learning Outcomes

  1. Assess and specify the information requirements of a website.
  2. Construct and publish a small website.
  3. Identify and describe the fundamentals of the project management required for web development.
  4. Review the design of existing websites.

Syllabus Outline

  1. Identifying Requirements - Website owners, audience and content. Evaluation of existing websites. Accessibility of websites. Website security and copyright issues. Maintenance requirements.
  2. Web Project Management - project and production processes, group development, roles and responsibilities.
  3. Introduction to Basic Web Authoring - page design, navigation design, interaction design, use of design tools, page authoring; layers - CSS, HTML, etc., use of authoring tools. Graphics tools and the incorporation of images. Compliance with web standards e.g. W3C
  4. Testing and Verification Issues - empirical techniques for website evaluation, use of testing tools, use of evaluation tools, browser issues, use of compliance tools.