At the Networked Software Systems Lab, we study, design, and implement software and network systems.
We work on algorithms, architectures, models, and monitoring across all system and network layers. At the application level, we develop sophisticated distributed systems, e.g., for cloud computing and mobile devices, as well as multiprocessor/multi-core programs, storage systems, web services and others. We also work on performance tuning, user interface applications, runtime systems and compilers. In networking layers, we design and implement network algorithms, models, simulators, hardware devices, software systems, and protocols.
Our projects provide skills that are extremely valuable in the high-tech industry. The projects rely on software-engineering, algorithms, and networking courses like Introduction to Software Systems, Data Structures and Algorithms, Computer Networks and Internet 1 and 2, Operating Systems, and Object-Oriented Programming. Some projects build on advanced courses like Principles of Reliable Distributed Systems and High-Speed Network Processors.
The faculty members lead cutting-edge research groups in the areas of distributed systems, cloud computing, fault-tolerance, multi-core (parallel) programming, network design, network economics and quality of service, storage systems, wireless networks and mobility, routers, networks-on-chip, and web search. Many laboratory projects contribute to this research and build the infrastructure for future research.