1. Artificial Intelligence
Our artificial intelligence research addresses the central challenges of machine cognition, both from a theoretical perspective and from an empirical, implementation-oriented perspective.
- Automatic Programming
Generic Programs, Partial Evaluation, Design Representation, Inference, Programming Interfaces.
- Automated Reasoning and Interactive Theorem Proving
Simplification; Induction; Concept-formation; Lemma discovery; User interfaces; Hardware and software modeling and verification.
- Computer Vision
Object and activity recognition; Content-based retrieval; Learning and vision; Robot vision; biologically inspired vision.
- Data Mining
Database search and mining; Large-scale data analysis; Social network analysis; Network estimation.
- Machine Learning
Supervised learning; Reinforcement learning; Transfer learning; Active learning; Online learning; Statistical relational learning; Optimization; Graphical models; Nonparametric models; Probabilistic inference.
2. Distributed Systems
Our systems research focuses on building large prototype software systems that convincingly demonstrate novel design principles and implementation techniques using realistic workloads.
- Operating systems
Concurrency control. Storage systems. Virtualization. Transactions.
- Secure systems
Mandatory access control. Information flow. Secure cloud computing.
- Real-time systems
Resource scheduling, wireless control, virtualization, resource security, timing specification and semantics
- Distributed systems
Replicated state machines. Fault tolerance. Gossip algorithms. Game theory. Failure detectors.
- Communication networks and protocols
Network architecture and algorithms. Network measurement, management, and security. Network protocol design. Network applications and services. Social and information networks.
- Wireless networks
Wireless mesh, vehicular, sensor, cognitive, and mobile social networks. Wireless network design, measurement, analysis, optimization, and management.
3. Theoretical Computer Science
Our research focuses on the theoretical foundations of computer science and related applications. Our methods frequently rely on rigorous mathematical proofs
- Algorithm Design:
Graph algorithms, parallel and distributed algorithms, cache-efficient algorithms, algorithmic game theory.
- Computational Complexity:
Circuit lower bounds, communication complexity, hardness of approximation.
- Randomness in Computation
Randomized algorithms, pseudorandomness, expander graphs, error-correcting codes.
- Application Areas:
Learning theory, Cryptography, Computational Biology.
4. Software Engineering
The research is directed towards improvement of processes, methods and techniques by reusing artifacts from existing legacy applications. We focus research both in forward and reverse engineering domains. The field of reverse engineering has gone through a number of revolutions in last decade, but it still faces key challenges.
Other Topics of Interest:
- Reverse Engineering
- Design pattern recovery and visualization
- Source code analysis
- Program comprehension
- Software Quality Assurance
- Software Project management
- Software Reliability and Dependability