The CS405 module was last offered in 2013-14 and is not currently being taught. This is the description of the module as published in 2013-14.
The module introduces students to the principles, tools and potential applications of Empirical Modelling (EM), a new approach to computing that has been developed by staff and students here in Computer Science at Warwick over many years (see the EM website). The module offers a complementary perspective on computer science broader in scope than 'computational thinking', and is oriented towards aspects of computing practice for which formal methods offer limited support. These include activities such as conceptual design, requirements cultivation and exploratory modelling that involve close human-computer co-operation and often engage many human participants concurrently. The most appropriate areas of application for EM are those in which sense-making and model-building develop in parallel, as in a constructivist style. They include computer support for learning, decision support and creative design in business, engineering and the humanities.
The module promotes awareness of the fundamental and distinctive role that empirical knowledge plays in conceiving and implementing computer-based systems. It also teaches practical skills that are relevant to the individual and team work that typically precedes the explicit specification and design of such systems. Over and above this, it introduces ways of thinking about computing and ways of using computers that are topical in relation to current and emerging technologies and applications.
The module involves 40 contact hours, comprising 20 one-hour lecture sessions and 10 two-hour sessions of practical laboratory work. Assessment will be 50% by the submission of a short paper and an associated documented modelling exercise to the annual edition of the Warwick Electronic Bulletin early in Term 2, and a three hour examination in Term 3. The examination is accounted at 50% of the total credit for MEng students, and at 40% for MSc students. MSc students have an additional practical assignment in the form of a comprehension exercise worth 10% of the total credit.
The precise structure of the module varies from year to year. The key themes which will be represented are:
- Motivating ideas and orientation: The study of Empirical Modelling is motivated by dissatisfaction with the account of computing-in-the-wild that can be given by classical computer science. Important issues in computing cannot be addressed by invoking logic and algorithmic thinking alone. Relevant critiques include: Brian Cantwell-Smith on the foundations of computing; Kent on the limitations of abstract data representations; Winograd and Flores on groupware design; Brookes on the challenges of software development; Jackson on the limitations of formal specification; Naur on the essential role of intuition in system development; McCarty on the nature of 'humanities computing'. Relevant practical developments include: the application and extension of spreadsheet principles, both in educational software (e.g. dynamic geometry packages) and in software development tools (e.g. Flex and the Windows Presentation Foundation framework), and the continuing interest in how to resolve the problems of ensuring that software matches its requirements (e.g. as represented in the motivating ideas behind object-oriented programming, the work of Harel on participatory design, and agile development methods).
- Conceptual framework: Classical computer science gives an excellent account of scientific applications of computing technology in which the role of the computer is to compute results on the basis of an established mathematical theory. In many practical applications of computers, the emphasis is different: the computer is used to construct artefacts that aid understanding (resembling what the philosopher of science David Gooding terms construals). Sense-making proceeds in parallel with the making of such construals in a constructivist idiom. Activities of this kind cannot be satisfactorily described within a 'rationalistic' logicist framework. Empirical Modelling focuses on the way in which understanding is developed through observation and experiment, prior to the emergence of established concepts that can be expressed in a formal language. Its philosophical stance is pragmatic in the spirit of William James's radical empiricism.
- Concepts and principles: The key concepts of Empirical Modelling are observables, dependencies and agents. Where classical computer science seeks a foundation in formal semantics, Empirical Modelling appeals to the Jamesian idea that all knowing is rooted in the connections that are themselves given in experience, in the way for instance that images and ideas come to mind in the very act of reading symbols on a page. Empirical Modelling artefacts can evolve seamlessly from construals to models to programs in ways that reflect the transition from the personal and subjective to the public and objective. Such artefacts can be concurrently manipulated from the perspectives of many human agents so as to achieve conceptual integrity; objects, processes and systems - potentially with formal semantics - emerge. The LSD notation has been developed as a way of giving an account of this activity of rationalisation and objectification.
- Tools and techniques: To date, Empirical Modelling has been principally supported by the EDEN interpreter and its variants (command line, distributed, web-enabled). EDEN was introduced as an evaluator for "definitive (definition-based) notations". Definitive notations provide a means to express dependencies between observables of different kinds, generalising the types of relationships that can be established between values in the cells of a spreadsheet. Environments constructed using EDEN are unlike conventional programs: they typically have the same provisionality, openness and messiness that is characteristic of our partial personal understanding of experience. Tools for Empirical Modelling have recently been significantly enhanced through the development of web-enabled versions of EDEN initiated by Richard Myers and Tim Monks and related work by Nick Pope that draws on his research prototype Cadence which gives greater support for the transition from construals to programs. Other supporting tools include the Dependency Modelling Tool and the Abstract Definitive Machine.
- Applications: Empirical Modelling has potential applications in many areas, including educational technology, computer-aided design, software development, humanities computing, visualisation, games development and concurrent systems simulation. These are illustrated in the many models that can be found in the Empirical Modelling projects archive. They have also been the subject of graduate student research, as documented in the theses that can be accessed from the Publications link on the Empirical Modelling webpage.
There is scope to study the module in several ways, with many different kinds and levels of background experience. For the advanced student, there are good prospects for contributing to Empirical Modelling research through dissertation work. It is also possible to follow the module with little prior knowledge of computing. By way of context for the latter claim, consult the online Sudoku Experience workshops.