- Programming Languages
- High-Assurance Software
- Distributed and Embedded Systems
- Computational Science and Informatics
- Software Engineering
- Agent-Oriented Systems
- Artificial Intelligence
Programming languages research in the department concentrates upon techniques and tools for designing, analyzing, and implementing programming languages. Specific topics include abstract interpretation, algebraic semantics, compiler synthesis from denotational semantics definitions, full abstraction, lambda definability, type theory, probabilistic semantics, concurrency theory, and model checking.
High assurance software research in the department focuses on developing techniques for designing and implementing software that are able to establish with high levels of assurance that the resulting systems satisfy their requirements and are free from unanticipated faults. Automated tool frameworks for software modeling, software architecture, and component integration techniques for large scale systems of systems are being developed.
Distributed and Embedded Systems
Research in distributed and embedded systems is focusing on developing theory and tools for sensor network, parallel and grid computing, and distributed, cooperative robotics. Specific topics include tools to automate the design, analysis and deployment of sensor systems, tools for solving computational intensive scientific problems via parallel computing, and to effectively utilize the available computation, storage and network resources in a cluster of machines, and frameworks to control large numbers of heterogeneous, semi-autonomous robots in dynamic, uncertain environments in order to cooperatively perform a task.
Computational Science and Informatics
Computational Science and Informatics research in the department involves the application of artificial intelligence heuristics, algorithms, data structures, and database concepts and processes to specific domains. For example, in bioinformatics – the study of how biological data is stored, retrieved, and analyzed to solve a specific biological research problem, computer scientists use data mining techniques and algorithms to find patterns in biological data that enable scientists to derive structure and relate structure to the function of a specific gene. Research is being performed by several interdisciplinary teams of domain specialists and informatics exports from Computer Science.
Cybersecurity research in the department is addressing fundamental issues in integrity, confidentiality and availability of data/systems resources, and practical issues in network and system security defense. Methodologies are being developed to provide high assurance through development of tractable static analyses that cope with real-world information policies, complementing and leveraging the explicit access controls on which current systems rely. Active research programs are going on in enterprise-network security management and defense, including attack graph-based security analysis, intrusion detection, and security metrics.
The department's software engineering research encompasses measures, specification, testing and analysis of sequential and concurrent software systems. Software measures research applies measurement theory to the development of practical software measures and specification methodologies. Software specification research uses formal approaches for describing the intended behavior of complex systems. Testing and analysis research involves development and evaluation of approaches for validation and verification of software. Research that spans these areas is ongoing and ranges from theoretical developments, through construction of toolsets that enable application of research results, to empirical evaluation of software engineering techniques.
The robotics laboratory supports research into software engineering approaches to building robust autonomous robotics software, including multi-agent solutions. Teams from the lab have placed first, second, and third in the annual AAAI Robotics competitions.
The agent-oriented software engineering research group is developing widely recognized foundations and engineering tools that support construction of systems organized as collections of independent and autonomous "agents", and is demonstrating the effectiveness of these techniques in domains of robotics and sensor networks.
Database research in the department focuses on basic theoretical and practical issues in mainstream database systems, as well as on issues lying at the border of databases and knowledge and data engineering (KDE). Topics include database and knowledge base design, database security and integrity, static and dynamic integrity constraints, extensible database management systems, temporal and active databases, data warehousing, online analytical processing (OLAP), data cleansing, data mining, knowledge discovery in databases (KDD), and information visualization.
The department's artificial intelligence (AI) research focuses on knowledge representation for reasoning and planning under uncertainty, machine learning for knowledge discovery and data mining, intelligent information retrieval, web and clickstream mining, expert systems, and intelligent control systems, also known as real-time intelligent systems. Methodologies range over inductive, analytical, and multi-strategy learning and include research programs in artificial neural networks, genetic and evolutionary computation, and probabilistic learning and inference. Application areas include decision support; human-computer intelligent interaction (HCII); industrial, commercial and defense automation; autonomous robotics; and multi-agent systems.