Imperial College London

Emeritus ProfessorSusanEisenbach

Faculty of EngineeringDepartment of Computing

Emeritus Professor of Computing
 
 
 
//

Contact

 

s.eisenbach Website

 
 
//

Location

 

Huxley BuildingSouth Kensington Campus

//

Summary

 

Publications

Publication Type
Year
to

134 results found

Aplay E, Cutler P, Eisenbach S, Field Tet al., 2009, Changing the Marks Based Culture of Learning through Peer Assisted Tutorials, 2009 ASEE Annual Conference & Exposition, Publisher: American Society for Engineering Education, Pages: 1-24

We describe and evaluate an approach to student learning that aims to instil a culture of formative assessment based on peer-assisted self learning, instead of a marks-based culture in which learning effort is rewarded with marks that contribute to the student's degree. The idea is for suitably qualified third- and fourth-year undergraduates to assist in the running of weekly first-year tutorials. They mark submitted work, provide written and verbal feedback on the students' performance and lead problem solving discussions during tutorials. However, contrary to normal practice, the marks they award do not contribute to the students' year total; all tutorial work becomes essentially voluntary. We report results from a pilot implementation of the scheme over a 12-month period in an engineering department at a leading academic institution. The set-up of the scheme was such that a comparative and triangulated assessment was possible amongst the students and tutor team. There was no\r\ndiscernible degradation in student attendance, submission rates and performance in either the weekly exercises or end of year examinations. Further analysis demonstrates that this type of peer-assisted learning improves some key aspects of student learning, and provides important benefits to the senior peers in terms of their own personal development. We conclude that the scheme provides an excellent alternative to traditional learning methods whilst substantially reducing the investment in academic staff time.\r\n

Conference paper

Allwood T, Eisenbach S, 2009, Strengthening the Zipper, Workshop on Language Descriptions Tools and Applications (LDTA) 2009, Pages: 2-17

The "zipper" is a well known design pattern for providing a cursor-like interface to a data structure. However, the classic treatise by Huet only scratches the surface of some of its potential applications. In this paper we take inspiration from Huet, and describe a library suitable as an underpinning for structured editors. We consider a zipper structure that is suitable for traversing heterogeneous data types, encoding routes to other places in the tree (for bookmark or quick-jump functionality), expressing lexically bound information using contexts, and traversals for rendering a program indicating where the cursor is currently focused.

Conference paper

Petrounias A, Drossopoulou S, Eisenbach S, 2008, A Featherweight Model for Chorded Languages, Publisher: Imperial College, Department of Computing

Chords are a concurrency mechanism of object-oriented languages inspired by the join of the Join-Calculus. We present SCHOOL, the Small Chorded Object-Oriented Language, a featherweight model which aims to capture the essence of the concurrent behaviours of chords. Our model serves as a generalisation of chorded behaviours found in existing experimental languages such as Polyphonic C-sharp. Furthermore, we study the interaction of chords with fields by extending SCHOOL to include fields, resulting in fSCHOOL. Fields are orthogonal to chords in terms of concurrent behaviours. We show that adding fields to SCHOOL does not change its expressiveness by means of an encoding between the two languages.

Report

Sackman M, Eisenbach S, 2008, Errors for the Common Man: Hiding the unintelligable in Haskell, Publisher: Department of Computing, Imperial College

If a library designer takes full advantage of HaskellÆs rich type system and type-level programming capabilities, then the resulting library will frequently inflict huge and unhelpful error messages on the library user. These error messages are typically in terms of the library and do not refer to the call-site of the library by the library user, nor provide any guidance to the user as to how to fix the error. \r\n\r\nThe increasing appetite for programmable type-level computation makes this a critical issue, as the advantages and capabilities of type-level computation are nullified if useful error messages cannot be returned to the user. \r\n\r\nWe present a novel technique that neatly side-steps the default error messages and allows the library programmer to control the generation of error messages that are statically returned to the user. Thus with this technique, there is no longer any drawback to using the full power of HaskellÆs type system. \r\n\r\n

Report

Sackman M, Eisenbach S, 2008, Session Types in Haskell: Updating Message Passing for the 21st Century

Session Types allow plans of conversation between two concurrent processes to be treated as types. Type checking then ensures that communication between processes is safe: i.e. it obeys the protocol specified by the session type. Thus Session Types offer a means to establish conformance to protocols in both distributed applications and multi-threaded programming.\r\n\r\nWe incorporate Session Types into Haskell as a tool for concurrent programming. Our implementation, which is a standard Haskell library, presents a monadic API to the programmer. Using the library looks and feels very much like normal monadic computation and thus there is a shallow learning curve for the Haskell programmer. Our implementation lifts the invariants and properties of Session Types into Haskell's rich type system. This allows our implementation to statically verify the use of the communication primitives provided without an additional type checker, preprocessor or modification to the compiler.\r\n\r\nOur implementation supports multiple concurrent communication channels, individual processes can interleave actions across any number of open channels, and channels themselves can be sent and received. New channels can be created between pre-existing processes as well as to newly created processes. Communication is asynchronous and fully polymorphic. To our knowledge, no other implementation of Session Types is available in any language which matches our library in terms of functionality and supported features. We describe the key aspects of our implementation and demonstrate, through a running example, its usage and flexibility.

Report

Drossopoulou S, Eisenbach S, Cunningham D, 2008, Lock Inference Proven Correct, FTfJP, Pages: 24-35

With the introduction of multi-core CPUs, multi-threaded programming is becoming significantly more popular. Unfortunately, it is difficult for programmers to ensure their code is correct because current languages are too low-level.\r\n\r\nAtomic sections are a recent language primitive that expose a higher level interface to programmers. Thus they make concurrent programming more straightforward. Atomic sections can be compiled using transactional memory or lock inference, but ensuring correctness and good performance is a challenge. Transactional memory has problems with IO and contention, whereas lock inference algorithms are often too imprecise which translates to a loss of parallelism at runtime.\r\n\r\nWe define a lock inference algorithm that has good precision. We give the operational semantics of a model OO language, and define a notion of correctness for our algorithm. We then prove correctness using Isabelle/HOL.\r\n

Conference paper

Allwood T, Eisenbach S, 2008, CLASE: Cursor Library for A Structured Editor

The ``zipper'' is a well known design pattern for providing a cursor-like interface to a data structure. However, the classic treatise by Huet only scratches the surface of some of the potential applications of the zipper. In this paper we take inspiration from Huet, and build a library suitable as an underpinning for a structured editor for programming languages. We consider a zipper structure that is suitable for traversing heterogeneous data types, encoding routes to other places in the tree (for bookmark or quick-jump functionality), expressing lexically bound information using contexts, and traversals for rendering a program indicating where the cursor is currently focused in the whole.

Report

Allwood TOR, Eisenbach S, 2008, CLASS: Cursor Library for A Structured Editor, 1st ACM SIGPLAN Haskell Symposium, Publisher: ASSOC COMPUTING MACHINERY, Pages: 123-124

Conference paper

Cunningham D, Gudka K, Eisenbach S, 2008, Keep off the grass: Locking the right path for atomicity, 17th International Conference on Compiler Construction 2008, Publisher: SPRINGER-VERLAG BERLIN, Pages: 276-290, ISSN: 0302-9743

Conference paper

Allwood T, Eisenbach S, 2008, CLASE: Cursor Library for A Structured Editor (Tool Demo), Haskell Symposium '08, Pages: 123-124

The zipper is a well known design pattern for providing a cursor-like interface to a data structure. However, the classic treatise by Huet only scratches the surface of some of the potential applications of the zipper. In this work we have taken inspiration from Huet, and built a library suitable as an underpinning for a structured editor for programming languages. We consider a zipper structure that is suitable for traversing heterogeneous data types, encoding routes to other places in the tree (for bookmark or quick-jump functionality), expressing lexically bound information using contexts, and traversals for rendering a program indicating where the cursor is currently focused in the whole.

Conference paper

Allwood T, Eisenbach S, 2008, Tickling Java with a Feather, Electronic Notes in Theoretical Computer Science, Vol: 238, Pages: 3-16, ISSN: 1571-0661

Fragments of mainstream programming languages are formalised in order to show desirable properties of their static semantics. We ask if said formalisms could also be used to define a test suite for the mainstream programming language in question, and what the utility of such a suite would be.\r\n\r\nIn this work, we present our findings from testing Java with Featherweight Java (FJ). We take the syntax and binding structure of FJ to define an instance space of non-isomorphic test programs and implementations of FJ type checkers to provide oracles for our tests, to ensure the mainstream implementation conforms with the expectations of FJ. Using these, we evaluate (using code coverage techniques) how much of the Sun OpenJDK javac can be tested by FJ.\r\n

Journal article

Eisenbach S, Cai H, Shafarenko A, Grelck Cet al., 2007, Extending the S-Net Type System, AETHER - MORPHEUS\r\nWorkshop - Autumn Session 2007\r\nAMWAS 07

In this paper we discuss the results of evaluating the S-Net type system. We found some problems that would lead to inefficient S-Net compiler implementation, or even incorrect implementations of S-Net programs. We solved the problems by extending the type system so that it can capture more properties that S-Net was designed with.

Conference paper

Cunningham D, Eisenbach S, Drossopoulou S, 2007, Universes for Race Safety, 1st International Workshop on Verification and Analysis of Multi-threaded Java-like Programs (VAMP) 2007, Pages: 1-32

Conference paper

Sackman M, Eisenbach S, 2007, On the Execution of Ambients, 3rd International Workshop on Methods and Tool for Coordinating Concurrent Distributed and Mobile Systems (MTCoord) 2007, Pages: 1-18

Successfully harnessing multi-threaded programming has recently received renewed attention. The GHz war of the last years has been replaced with a parallelism war, each manufacturer seeking to produce CPUs supporting a greater number of threads in parallel execution.\r\n\r\nThe Ambient calculus offers a simple yet powerful means to model communication, distributed computation and mobility. However, given its first class support for concurrency, we sought to investigate the utility of the Ambient calculus for practical programming purposes.\r\n\r\nAlthough too low-level to be considered as a general-purpose programming language itself, the Ambient calculus is nevertheless a suitable virtual machine for the execution of mobile and distributed higher-level languages. We present the Glint Virtual Machine: an interpreter for the Safe Boxed Ambient calculus. The GlintVM provides an effective platform for mobile, distributed and parallel computation and should ease some of the difficulties of writing compilers for languages that can exploit the new thread-parallel architectures.

Conference paper

Eisenbach S, Sadler C, 2007, Reuse and abuse, Journal of Object Technology, Vol: 6, Pages: 139-167, ISSN: 1660-1769

Journal article

Eisenbach S, Sadler C, Wong D, 2007, Component adaptation in contemporary execution environments, 7th International Conference on Distributed Applications and Interoperable Systems, Publisher: SPRINGER-VERLAG BERLIN, Pages: 90-+, ISSN: 0302-9743

Conference paper

Drossopoulou S, Lagorio G, Eisenbach S, 2006, A flexible model for dynamic linking in Java and C#, Formal techniques for Java-like languages, 2004, Publisher: Elsevier, Pages: 1-29, ISSN: 0304-3975

Conference paper

Aaltonen A, Buckley AR, Eisenbach S, 2006, Flexible Dynamic Linking for .NET, Vol: 2006, Pages: 1-8, ISSN: 1801-2108

Journal article

Drossopoulou S, Petrounias AN, Buckley AR, Eisenbach Set al., 2006, SCHOOL: a Small Chorded Object-Oriented Language, Electronic Notes in Theoretical Computer Science, Vol: 135, Pages: 37-47, ISSN: 1571-0661

Journal article

Eisenbach S, Dearle A, 2005, Component Deployment, Component Deployment\r\nThird International Working Conference, CD 2005, Publisher: Springer

What do we do with components after they have been built? How do we deploy them into their execution environment? How can we evolve them once they have been deployed? While several tools exist to support deployment, the underlying principles are only beginning to emerge. Therefore, papers relating theory to practice are particularly welcome. CD 2005 brought together researchers and practitioners with the goal of developing a better understanding of how deployment takes place in the wider context. The CD 2005 Working Conference encompassed all issues related to component deployment, including:\r\n\r\n * adaptation, customisation, and repair\r\n * configuration languages and tools\r\n * component assembly and packaging\r\n * middleware interaction and support\r\n * accommodating legacy code\r\n * patterns for deployment\r\n * trust and security\r\n * dependability and survivability\r\n * contracts and service-level agreements\r\n * QoS-aware deployment\r\n * distribution formats and protocols\r\n * performance and quality issues\r\n * deployment in virtual organizations and computational grids\r\n * case studies and experience reports\r\n\r\n

Conference paper

, 2005, Component Deployment, Third International Working Conference, CD 2005, Grenoble, France, November 28-29, 2005, Proceedings, Publisher: Springer

Conference paper

Buckley A, 2005, A model of dynamic binding in .NET, 3rd International Working Conference on Component Deployment, Publisher: SPRINGER-VERLAG BERLIN, Pages: 149-163, ISSN: 0302-9743

Conference paper

Buckley AR, Murray M, Eisenbach S, Drossopoulou Set al., 2005, Flexible Bytecode for Linking in .NET, ETAPS Workshop on Bytecode Semantics, Verification, Analysis and Transformation (BYTECODE 2005)

Conference paper

Eisenbach S, 2004, Editorial, IEE Proceedings: Software, Vol: 151, ISSN: 1462-5970

Journal article

Phillips A, Yoshida N, Eisenbach S, 2004, A distributed abstract machine for boxed ambient calculi, Berlin, 13th European symposium on programming (ESOP 2004), Barcelona, Spain, Publisher: Springer-Verlag, Pages: 155-170

Conference paper

Chatley R, Eisenbach S, Magee J, 2004, MagicBeans: a platform for deploying plugin components, Berlin, 2nd international working conference on component deployment, e-Science Institute, Edinburgh, Scotland, 2004, Publisher: Springer-Verlag, Pages: 97-112

Conference paper

Chatley R, Eisenbach S, Kramer J, Magee J, Uchitel Set al., 2004, Predictable dynamic plugin systems, Berlin, 7th international conference on fundamental approaches to software engineering, Barcelona, SPAIN, Publisher: Springer-Verlag, Pages: 129-143

Conference paper

Eisenbach S, Kayhan D, Sadler C, 2004, Keeping control of reusable components, Berlin, 2nd international working conference on component deployment, e-science Institute, Edinburgh, Scotland, 2004, Publisher: Springer-Verlag, Pages: 144-158

Conference paper

Drossopoulou S, Eisenbach S, 2004, Flexible, source level, dynamic linking and re-linking, Formal techniques for Java-like languages, 2003

Conference paper

Phillips A, Yoshida N, Eisenbach S, 2004, A distributed abstract machine for boxed ambient calculi, Berlin, 13th European symposium on programming (ESOP 2004), Barcelona, Spain, Publisher: Springer-Verlag, Pages: 155-170

Conference paper

This data is extracted from the Web of Science and reproduced under a licence from Thomson Reuters. You may not copy or re-distribute this data in whole or in part without the written consent of the Science business of Thomson Reuters.

Request URL: http://wlsprd.imperial.ac.uk:80/respub/WEB-INF/jsp/search-html.jsp Request URI: /respub/WEB-INF/jsp/search-html.jsp Query String: id=00001810&limit=30&person=true&page=2&respub-action=search.html