|University of Exeter|
|University of Paisley|
|University of Teesside|
The student is expected to apply their object-orientated programming skills to a large and complex project in a team-working environment similar to the manner in which projects are carried out in industry with the associated difficulties and benefits of working in a team.
Students study the fundamental concepts and principles of wireless and multimedia networks, as well as applications.
A number of formal language theory topics are covered in this module including regular and context-free languages, equivalence and ambiguity, top-down (recursive decent) and bottom-up (state automaton) parsing.More advanced topics such a type, scope, executable intermediate code and code optimisation are also covered.
The difficulties of the Service Oriented Architecture (SOA) are considered and studied along with the techniques for heterogeneous interoperability and communication frameworks such as remote Method invocation and object brokers.Issues relating to the synchronisation of information transfer are also considered.
Students are introduced to and gain experience in object-orientated programming (with Java), linear algebra (basic vectors and matrices), calculus (introductory level only) and probability (also at an introductory level).
Students where first introduced to basic computer systems. This included basic logic, data representation (integers, strings, and floats), files (sequential, random access, and indexed), and Resource Management (such as virtual memory). They then investigated basic networking in the form of communication standards in relation to the OSI and TCP/IP reference models. Finally students where introduced to the software development process including the network libraries and issues relating to security, digital signatures etc.
The student developed a sound understanding of the hardware and software environments upon which applications are be built. On completion the student should have been able to:
The unit started with a general introduction, moving on to a discussion of processes, process management, threads, and inter-process communications. Storage management was then discussed including different file system, memory management and the use of virtual memory. The Input/Output subsystem was then discussed including an overview of device drivers. This was followed by a simple overview of a distributed operating environment and the Distributed Control Environment (DCE).Parallel to this the learner was introduced to basic scripting via a series of examples and exercises. The scripts used to administer the learning environment where examined in order to introduce the learner to basic systems administration tasks.
The unit ended with an introduction to systems security.
The unit started with an overview of systems programming, concentrating on the aspects that are common to most operating environments, and highlighting the areas where they differ. The idea of the Application Programme Interface and the Standard was introduced at this stage.The fundamental data structures where introduced, including lists, queues, strings, data streams, and system independent definitions. This lead on to an overview of the POSIX standard utility library (basic I/O, string handling, file manipulation, time of day). More advanced features where then introduced, including the use of Processes and Threads, Inter-Processes Communication, localisation, and inter-processes communication over a distributed network.
The emphasis of the unit was on those aspects of software development which are common to different operating environments, with particular interest on multi-platform development. Where systems differ, the differences where highlighted and covered separately.
Student where introduced to a number of Requirements Engineering models, particularly formal modelling (in the form of VDM) and Problems Domains, then they where asked to compare and contract these methods, discussing the advantages and disadvantages of the methods. They where given a problem, of moderate complexity, and asked to develop appropriate elicitation strategies and plans for the analyse, design and specification of the problem. Students where expected to explain the main principal of Requirements Engineering and the means of validating a software product.
The learner had the opportunity to pursue a topic of their choice to some considerable depth. Students where expected to undertake the complete development of a software product, ie, they where expected to use most of the development lifecycle.Students where asked to submit a preliminary proposal during their placement year, with a full proposal being submitted at the start of the final year. Mid way though the project students where asked to give a progress report to their supervisor and second reader.
A short series of lectures on the research process where given at the start of the unit. A second series of lectures on data analysis, evaluation and the writing of the project report was given mid way thought the year.
After completing the unit, the student should be able to:
Students where introduced to the technology required for developing data driven web-based applications. In particular the techniques required for cooperate web application development where reviewed, with attention being given to web commerce, web-based database integration and overall web development.
The unit aimed to develop a sound understanding of the platforms upon which applications can be built and the implications for system development. On completion of this unit the student should have been able to:
On completion of both modules (Formal Specification and Formal Modelling) the students should be able to take a project from original requirements specification to program derivation using formal methods.
My role was to coordinate the projects. This included the allocation of academic managers, and correlating the marks of the written reports and oral presentations.
The aim of this module was to give the student a critical understanding of the potential and limitations of the Internet and Intranets.
Students where then introduced to advanced programming concepts such as memory management, event handling, low-level control and multi-tasking, and the advantages, dangers and responsibilities associated with each of them.
The students where set a major project at the end of the course that required them to work in small groups to develop a closed loop control system. The project included interfacing (and calibrating) hardware, developing the computer control software and user interface.