DISTRIBUTED ALGORITHMS: Computational models; fault models; logical time; synchronous and asynchronous algorithms; propagation of information; leader election; the byzantine generals problem; self-stabilization; synchronization; detection of stable and unstable properties; verification of algorithms; distributed algorithms for the Internet; mesh, grid, mobile ad hoc networks and wireless sensor networks.
ANALYSIS AND PERFORMANCE MODELING OF COMPUTING SYSTEMS: Capacity planning. Introduction to performance modeling. Review of probability theory and transforms. Simulation. Markov models. Single queue models. Network of queues: MVA algorithm. Operational analysis. Case studies.
COMPUTER ARCHITECTURE: Review of computer organization. Design of memory systems. Pipeline processing techniques. Integer and floating point arithmetics. Interconnection networks. Matrix and vectorial processors. Multiprocessors. Non-conventional processors. (Also in the Computer Systems area)
UBIQUITOUS COMPUTING: Computational paradigms; associated technologies; concepts of mobile, ubiquitous and autonomic computing; location of base stations, channel allocation; MAC protocols; mobile IP; transport protocols; context aware applications (physical and logical context); security; emdedded systems; adaptation-aware systems design; networks for ubiquitous computing (wireless networks, mesh networks, mobile ad hoc networks, wireless sensor networks).
ENGINEERING NETWORK APPLICATIONS: Basic distributed systems concepts applied to the Internet. Distributed Systems concurrency models and architectures: client-server, peer-to-peer, etc. Servers and Services implementation aspects. Interaction between the application domain and the network architecture: overlay networks, content distribution networks.
FUNDAMENTS OF DISTRIBUTED AND PARALLEL SYSTEMS: Concurrency and communication, synchronization and consensus, in parallel and distributed systems. Persistency and distributed file systems. Resource sharing, performance analysis and evaluation in parallel and distributed systems. Design and implementation of Internet applications, such as caches, content distributed networks, peer-to-peer networks, multimedia and electronic-commerce systems.
COMPUTER NETWORKS: Concepts of computer networks and distributed systems. Architecture of computer networks. Protocols and services. ISO OSI reference model. Local networks. Physical, Link, Network and Transport layers.
OPERATING SYSTEMS: Process synchronization and management. Input/output techniques. File Systems. Buffering techniques. Process scheduling. Memory management, virtual memory. Resource allocation and deadlocks. Performance evaluation. Distributed System concepts.
TOPICS ON COMPUTER NETWORKS: Variable course syllabus depending on emphasis offered on computer networks.
TOPICS ON COMPUTER SYSTEMS: Variable course syllabus depending on emphasis offered on computer systems.