Teaching
Current:
Web Programming Y2, 20cr
Overview
This module introduces students to web application programming, comprising multiple tiers, including:
- Client-side programming: using the scripts to dynamically modify the browser's Document Object Model and
thus create apps with dynamic user interfaces. (e.g. using event based programming, fetch & promises).
- Server-side programming: using scripts that act as servers for files and data (e.g. using HTTP, HTTP/2 or
Web Sockets).
- Integration of client and server programs with API based services (e.g. database access).
- The theory that underpins the approaches to building scalable web-based systems.
Learning Outcomes
- Identify industry best practices in web application design (e.g. client, server and API layers).
- Design a contemporary web application using industry best practices.
- Build and deliver a web application according to a customer specification.
Software Engineering Culture Y3, 20cr
Overview
This module considers the world of software engineering. It reflects on the history of software systems from
the original isolated software running on single specialised computers to current systems which may have
millions of users and thousands of interconnected parts. We will examine how aspects of development, operations,
security and maintenance have evolved practices to deliver the complex and ubiquitous computer solutions that we
see today. Upon completing this module students should have a good understanding of contemporary issues in
software engineering, how we got here and what graduates might expect to experience and influence in their
future careers in the software industry.
Learning Outcomes
- Compare and contrast cultures and approaches for collaborative distributed software development and
operations.
- Analyse the requirements (e.g. development, security, operations) of software projects and evaluate the
suitability of existing technologies for these requirements.
- Compare and contrast processes and tools available to software projects for collaboration, development, and
operations.
- Evaluate the significance of individual and social psychological knowledge to software development cultures,
approaches, processes and tools
- Demonstrate the skills to communicate software engineering knowledge in industry-appropriate style.
Individual Project (Engineering) Y3, 40cr
Overview
This module is based on the requirement for a student to produce a substantial individual piece of work, using
the skills and techniques, appropriate to pathway, acquired throughout the degree course.
Learning Outcomes
- Employ best practice methods and approaches to manage a large-scale project
- Identify and summarise the problem to be solved and put it in context.
- Identify legal, ethical, social and professional issues pertinent to their project and take necessary
action(s) in order to address these issues.
- Conduct a formal literature search, identifying, analysing, comparing and contrasting sources and writing an
evaluative review.
- Design, implement and test a substantial relevant artefact (or several smaller artefacts).
- Critically evaluate their work against its objectives and reflect on and generalise the learning achieved in
a written report.
Usability Engineering 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 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, and running tests to
formally evaluate the usability of the design. 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
- Design an application for use on many types of devices using a rapid prototyping approach
- Employ HCI principles and theory to design usable and accessible applications
- Compare and contrast techniques (e.g. questionnaires, focus groups, observational studies) to objectively
measure usability
- Evaluate the usability of software applications
Core Coputing Concepts Y1, 20cr
Overview
This module covers four foundational topics central to a broad understanding of the discipline of computing
science and for developing computing systems. Each topic will be covered over a six week block, knowledge gained
will be applied during several later modules and, depending on a student's degree programme, will be developed
further. An exploration of the history, major advances and trends in computing are discussed to give students a
context for subsequent study. Foundations of computer system usability and cyber security are covered during the
next two blocks. The final block introduces a technology that is specific to the student's degree course, but
which is not covered in a dedicated module elsewhere at level 4.
Learning Outcomes
- Explore critical aspects of the history, major advances and trends in computing.
- Demonstrate a measured approach to the design, construction and management of websites.
- Describe the major principles of cyber security.
- Explain the key concepts of usability evaluation.
Past:
Application Programming Y2, 20cr
Overview
This module introduces students to the theory and practice of writing computer programs, covering both
algorithm development and implementation. No previous knowledge of programming is assumed. Techniques of program
design focusing on algorithm development are taught alongside web technologies (e.g. JavaScript and HTML5/CSS).
Assessment will be through a portfolio of work consisting of solutions to weekly programming exercises varying
in scale and complexity.
- Design, implement and test algorithms to solve problems using appropriate data types and control structures.
- Design, implement and test programs based on a supplied specification.
- Describe and analyse fundamental programming concepts and techniques.
- Recognise and select appropriate techniques that might be suitable for managing coursework or small
commercial projects.
- Employ techniques to identify and implement the information requirements of simple data and documents (for
example, define and create a website on a given topic and identify how form and content should be separated
therein).
Application Engineering Y2, 20cr
Overview
Software Engineering is a constantly evolving, expanding and diversifying topic. New systems, tools and
practices emerge regularly. This module enables students to adopt and practice the most modern tools, techniques
and technologies in a structured manner, mitigating the volatile nature of the subject matter and preparing
students for future academic or professional roles. Students will research, design, implement and critically
evaluate a small software engineering research project.
- Design, implement, test and evaluate applications that use the techniques and tools of contemporary software
engineering.
- Critically examine programming paradigms, and formulate arguments as to why a particular approach may be
appropriate for a given task.
- Identify industry best practices in application design (e.g. client, server and API layers).
Scalable Software Engineering Y3, 20cr
Overview
This module considers the evolution of software engineering, from isolated software running on independent
computers to current systems with millions of users and thousands of interconnected parts. We will examine
aspects of development, operations, and security, using practices that may include Software Frameworks,
Open-source development, Continuous Integration, Cloud deployment, and DevOps.
Learning Outcomes
- Compare and contrast cultures and approaches for collaborative distributed software development and
operations.
- Analyse the requirements (e.g. development, security, operations) of software projects and evaluate the
suitability of existing technologies for these requirements.
- Compare and contrast processes and tools available to software projects for collaboration, development, and
operations.
- Develop effective applications that employ the tools and techniques covered by LOs 1'3.
Engineering Science Y3, 20cr
Overview
Software Engineering is a constantly evolving, expanding and diversifying topic. New systems, tools and
practices emerge regularly. This module enables students to adopt and practice the most modern tools, techniques
and technologies in a structured manner, mitigating the volatile nature of the subject matter and preparing
students for future academic or professional roles. Students will research, design, implement and critically
evaluate a small software engineering research project.
Learning Outcomes
- Conceive, design & conduct a piece of research using emerging software engineering tools, techniques and
technologies.
- Evaluate research results and approach.
- Communicate research outcomes as a scientific paper.
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
- 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
- Conceive and develop advanced Internet applications using open web technologies.
- Model, create, process and communicate heterogeneous data using open formats and models.
- Apply emerging architectural paradigms.
- Evaluate and appraise these applications and technologies.
Syllabus Outline
- An overview of the capabilities of mobile and embeddable technologies, including smart phones, PDAs, and
other devices.
- Technical and usability considerations of mobile technologies and applications.
- Using and evaluating browsers and SDKs for development of mobile applications.
- The modelling and use of structured and semantic data, including ontology design (e.g. RDF, OWL)
- Tools & techniques for managing, transforming and analysing large scale data sets on the Internet (e.g.
MapReduce)
- 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
- Develop an application that is capable of running on many types of devices using a rapid prototyping
approach.
- Employ HCI principles and theory to design usable and accessible applications.
- Compare and contrast techniques (e.g. questionnaires, focus groups, observational studies) to objectively
measure usability.
- 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
- To give students practical experience of process-driven construction of software within a team environment.
- To strengthen students' appreciation and understanding of software engineering issues, and to enhance their
software development skills.
Learning Outcomes
- Demonstrate experience in the development of a software artefact as part of a team, and contribute to
team-based software projects.
- Schedule, carry out and document appropriately phases in the process-driven development of software.
Syllabus Outline
- The software project
- Management and team structure
- Project planning
- Requirements engineering
- Design
- Implementation
- Testing
- Delivery
Web Script Programming Y2, 20cr
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");
- "server-side programming" (that is "across the web") by writing server-side scripts accessing server-side
files and databases; and
- 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
- To develop an understanding of web client and web server scripting technologies and the underlying theory.
- To develop an ability to write and install simple web server scripts and web client scripts.
Learning Outcomes
- Design and implement a simple modern “post-2005” web application in industry-standard client-side and
server-side languages.
Syllabus Outline
- Web client-and-server architecture; the concepts of web scripting;
- Installation of a minimal web server and SQL server; and other support tools;
- The JavaScript programming language;
- AJAX for accessing a server-side API to update swerver-side databases, and return information to
client-side;
- The "Domain Object Model" (DOM) that describes the browser's internal view of a displayed web-page;
- "Dynamic HTML" (DHTML) - that is, using JavaScript to modify the DOM of the HTML of a current web-page, and
thereby modify the display;
- "Dynamic CSS" (DCSS) - that is, using JavaScript to modify the DOM of the CSS of a current web-page, and
thereby modify the display;
- 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
- To develop an understanding of web server scripting technology and the underlying theory.
- To develop an ability to write and install simple web server scripts.
Learning Outcomes
- Design and implement simple server scripts in an industry-standard server-side language.
- Demonstrate the uses of programmable web servers.
Syllabus Outline
- Web server architecture; the concepts of web-server scripting; the difference between scripting and
servlets; review of server-side languages.
- Installation of a minimal web server and SQL server; and other support tools.
- The PHP language; invoking PHP by embedding scripts in HTML.
- Difficulties and techniques of debugging server-side scripts.
- Sending values to server-side scripts, both via URLs and from HTML forms.
- File-handling in PHP scripts; in particular, issues of concurrent access.
- Using SQL from PHP scripts.
- Using Cookies from PHP; Sessions.
- 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
- To develop an understanding of web client scripting technology, common applications of it, and the
underlying theory.
- To develop an ability to write and install simple web client scripts.
Learning Outcomes
- Design and implement simple client scripts in an industry-standard client-side language;
- Syllabus Outline
- Web client-and-server architecture and the concepts of web-client scripting;
- A review of HTML, and an introduction to HTML forms;
- The JavaScript programming language, and how to embed scripts into an HTML page;
- 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;
- "Dynamic HTML" (DHTML) - that is, using JavaScript to modify the DOM of the HTML of a current web-page, and
thereby modify the display;
- 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;
- Cookies from JavaScript, for retaining information from one browser-session to another;
- 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:
- "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");
- "server-side programming" (that is "across the web") by writing server-side scripts accessing server-side
files and databases; and
- the reasons for these two forms of programming, and the underlying theory.
Aims
- To develop an understanding of web client and web server scripting technologies and the underlying theory.
- To develop an ability to write and install simple web client scripts.
Learning Outcomes
- Design and implement simple client and server scripts in industry-standard client-side and server-side
languages.
- Demonstrate the uses of programmable web-browsers and web-servers.
Syllabus Outline
- Web client-and-server architecture; the concepts of web scripting;
- Installation of a minimal web server and SQL server; and other support tools;
- A review of HTML, and an introduction to HTML forms;
- The JavaScript programming language, and how to embed scripts into an HTML page
- 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;
- "Dynamic HTML" (DHTML) - that is, using JavaScript to modify the DOM of the HTML of a current web-page, and
thereby modify the display;
- 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;
- The PHP language; invoking PHP by embedding scripts in HTML;
- Difficulties and techniques of debugging server-side scripts;
- 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;
- Using SQL from PHP scripts;
- Using Cookies from PHP and JavaScript; PHP Sessions;
- Review of other PHP library capabilities;
- 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
- To develop an understanding of algorithm development and procedural programming with emphasis on problem
solving and readability.
- To develop good object oriented design and coding practices in order to produce programs using classes and
objects as the fundamental building blocks.
- To provide a foundation for learning further programming techniques and languages.
Learning Outcomes
- Design, implement and test algorithms to solve problems using appropriate data types and control structures.
- Design, implement and test object oriented programs based on a supplied specification.
- To describe and analysis fundamental programming concepts and techniques.
Syllabus Outline
- The program development lifecycle (design, code, test, debug, documentation)
- Fundamental data types and operations: numeric, string, boolean, collections
- Program modularity: the use of functions
- Control structures: decisions and loops
- Classes and objects
- Using library classes and designing for reuse
- Objects working together and message passing
- Design and design notations
- Inheritance
- 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
- To develop an understanding of program design with emphasis on algorithms and readability.
- To enhance problem solving skills.
- To establish the principles of sound programming practice.
- To provide a foundation for learning further programming techniques and languages.
Learning Outcomes
- Design algorithms to solve problems using appropriate data types and control structures.
- Design, implement and test program designs based on a supplied specification.
- Understand and apply the principles of writing high quality program code.
Syllabus Outline
- Solutions as algorithms.
- The program development lifecycle.
- Fundamental data types and operations: numeric, character based and boolean.
- Program modularity: the use of functions.
- Control structures: decisions and loops.
- Program design considerations.
- Data collections: lists
- 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
- To develop a measured approach to the design, construction and management of websites.
- To provide experience in research, presentation and writing as required to study successfully at tertiary
level.
- To prepare for application to and employment in the IT profession.
- To encourage the authoring of linear and patterned notes from oral and written material (e.g. mind maps,
digital collaborative note-taking.
Learning Outcomes
- Examine and explain existing document-centric websites (e.g. discuss how well form and content have been
separated and assess semantics).
- Identify the information requirements of simple websites (for example, an online curriculum vitae).
- Construct and publish a simple website
- Outline technologies and techniques for website project management.
- 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).
- Research and critically evaluate a topic and present this in a referenced paper and oral presentation.
Syllabus Outline
- 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.
- Validity and Standards, including: Tools and techniques for website evaluation; Accessibility; Use of
testing tools; Use of evaluation tools; Browser issues.
- Project Management, including: Project and production processes; Group development; Roles and
responsibilities.
- 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.
- IT Professionalism: Curriculum Vitae, Presentation Skills, Work Ethics (industrial codes of practice in IT)
- 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
- To introduce object oriented programming concepts using a scripting language.
- To develop practical programming skills using a scripting language in the context of web application
development.
Learning Outcomes
- Understand the object-oriented programming paradigm.
- Use JavaScript in the implementation of web pages.
- Implement web pages based on sound HCI principles, in particular interaction with the user.
Syllabus Outline
- Introduction to HTML.
- Data types and variables - numeric, strings, arrays, type conversion.
- Control flow constructs - selection and iteration.
- Functions.
- Object based programming - JavaScript native objects, Browser objects.
- HTML forms.
- String Manipulation.
- Using timers.
- Cookies.
- 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
- Assess and specify the information requirements of a website.
- Construct and publish a small website.
- Identify and describe the fundamentals of the project management required for web development.
- Review the design of existing websites.
Syllabus Outline
- Identifying Requirements - Website owners, audience and content. Evaluation of existing websites.
Accessibility of websites. Website security and copyright issues. Maintenance requirements.
- Web Project Management - project and production processes, group development, roles and responsibilities.
- 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
- Testing and Verification Issues - empirical techniques for website evaluation, use of testing tools, use of
evaluation tools, browser issues, use of compliance tools.
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:
- The Web, the Semantic Web, and more generally Semantic Computing: using the technologies that are evolving
through semantic web technologies research to change the way we structure and scale computer systems and data.
- Distributed Systems and post-mortem analysis of faults & failures. Distributed architectures and
approaches (*aaS Cloud, REST, Web Services, Tuple Spaces).
- Internet systems architectures: including infrastructure & data design – especially how each affects the
other, and how both affect scalability.
- Programming: ECMAScript (JavaScript), Rust, Go, PHP, Python. Object-Oriented, Functional, Object-Functional
- Useful, accessible, and usable systems, with particular interest in achieving these through open standards.
- Interoperability, Open Standards & the trade off between commercially driven and evolved standards -vs-
optimal mathematical/scientific/engineering solutions.
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