Professor Dominic Duggan
|School: Schaefer School of Engineering & Science|
|Department: Computer Science|
|Program: Computer Science|
Bachelor of Commerce, University College, Dublin, Ireland, 1981.
Master of Management Science, University College, Dublin, Ireland, 1982.
M.Sc. in Computer Science, University of Maryland, College Park, Maryland, 1987.
Ph.D. in Computer Science, University of Maryland, College Park, Maryland, 1990. Dissertation title: A Programming Environment Based on Types as Specifications.
My research interests are in tools, including semantics, for ensuring that software is "safe" and "secure." I have worked on module systems for programming-in-the-large, software adaptation for safe dynamic library updates, various extensions of object-oriented languages to enable reuse, type inference, and language-based security. My work in security leverages techniques in programming languages and software checking to establish end-to-end security properties for applications.
Academic Planning and Resources Committee (APAR), 2006-8.
Academic Appeals Committee.
ISSA Curriculum Committee, 1999-2006.
Computer Science Curriculum Committee (chair), 1999-2006.
Computer Science Communications Committee (chair), 2007-present.
Program Director, MS in Service Oriented Computing, 2007-present.
Program Director, MS in Enterprise Computing, 2008-present.
Computer Science Department Director, 2006-7.
Member, Association for Computing Machinery.
Member, IEEE Computer Society.
Grants, Contracts & Funds
A Programming Environment Based on Types-as-Specifications. Individual NSERC Research Grant, 1991-4.
A Type System for Software Reusability. ITRC (Ontario Institute for Technological Research Center) Center of Excellence Grant, 1991-3. With G. Cormack (P.I.), J. Ophel, P. Buhr and M. Coffin.
Semantics-Based Support for Application Frameworks. Individual NSERC (Canadian National Science and Engineering Research Council) Research Grant, 1994-8.
Software Engineering for Distributed Computing and Networking. Acting Principal Investigator. With A. Compagnoni, J. Geller (NJIT), D. Klappholz, N. Minsky (Rutgers), D. Naumann, Thu Nguyen (Rutgers), Y. Perl (NJIT), R. Scherl (NJIT), S. Wetzel. New Jersey Commission on Science and Technology, January 1999 to December 2004.
Distributed Access Control for Accountable Systems. With J. Vitek (co-PI). National Science Foundation, Sept 2003 to August 2008.
- D. Duggan and F. Bent. (1996). "Explaining type inference", Science of Computer Programming, Elsevier. 27 (1).
- D. Duggan, G. Cormack and J. Ophel. (1996). "Kinded type inference for parametric overloading", Acta Informatica, Springer. (33), 21-68.
- D. Duggan. (1998). "Unification with extended patterns", Theoretical Computer Science, Elsevier. (206), 1-50.
- D. Duggan. (1999). "Dynamic typing for distributed programming in polymorphic languages", Transactions on Programming Languages and Systems, ACM. 21 (1), 11-45.
- D. Duggan. (2001). "Higher-order substitutions", Information and Computation, Academic Press. (164), 1-53.
- D. Duggan and J. Ophel. (2002). "Open and closed scopes for constrained genericity", Theoretical Computer Science, Elsevier. (275), 215-258.
- D. Duggan and J. Ophel. (2002). "Type checking multi-parameter type classes", Journal of Functional Programming, Academic Press. 12 (2), 133-158.
- D. Duggan. (2002). "Object type constructors", Acta Informatica, Springer. (38), 367-408.
- D. Duggan. (2002). "Type-safe dynamic linking with recursive DLLs and shared libraries", Transactions on Programming Languages and Systems, ACM. 24 (6), 711-804.
- T. Chothia and D. Duggan. (2004). "Abstractions for fault-tolerant global computing", Theoretical Computer Science, Elsevier. 3 (322), 567-613.
- D. Duggan. (2004). "Type-based cryptographic operations", Journal of Computer Security, 12 (3-4), 485-550.
- D. Duggan. (2005). "Type-based hot swapping of running libraries", Acta Informatica, Springer. 41 (4-5).
- T. Chothia and D. Duggan. (2007). "Capability passing processes", Science of Computer Programming, Elsevier. (66), 184-204.
- CS 520 Introduction to Operating Systems
- CS 510 Principles of Programming Languages
- CS 516 Compiler Design
- CS 526 Enterprise and Cloud Computing
- CS 548 Enterprise Software Architecture and Design
- CS 549 Distributed Systems and Cloud Computing
- CS 522 Mobile Systems and Applications
- SOC 542 Enterprise Software Architecture and Design
- SOC 606 Introduction to Developing Internet Applications