Computer Science and Software Engineering Students
Network and Cloud Engineers
Developers interested in distributed and parallel computing systems
8 Weeks
16 Sessions
1.5 Hours per Session
Total: 24 Hours
Understand distributed and parallel computing systems
Learn switching techniques in communication and distributed networks
Explore cloud-native tools like containers and orchestration
Apply hands-on experience using simulation and real deployment environments
What is a Distributed System?
Comparison: Centralized vs Distributed vs Parallel Systems
Real-world Examples: Google Cloud, Netflix, Blockchain
Core Components: Clients, Servers, Middleware
Importance of Switching in Networking and Distributed Computing
Packet Switching: Principles, Pros & Cons
Circuit Switching: When and Why
Message Switching: Characteristics & Comparisons
Comparison of Switching Techniques
Hands-on: Network simulation tools for switching
What is Distributed Computing?
Architecture Models: Client-Server, Peer-to-Peer
Distributed System Architectures
Communication Protocols: RPC, REST, gRPC
Hands-on: Build a simple distributed application
Key Differences between Parallel and Distributed Computing
Examples of Parallel Computing: Multi-threading, GPU
Role of Parallel Computing in Distributed Systems
Tools: OpenMP, MPI
Designing Parallel & Distributed Algorithms
Challenges: Synchronization, Consistency, Scalability
Fault Tolerance and Replication Techniques
Practical Exercises using MPI and Hadoop
Security Challenges in Distributed Environments
Data Encryption and Secure Communication
Authentication & Authorization Mechanisms
Hands-on: Securing a distributed system application
Integration between Cloud and Distributed Systems
Importance of Containers in scalable architectures
Tools: Docker and Kubernetes
Hands-on: Deploy a microservices-based distributed app with Kubernetes
Design a scalable distributed system with parallel components
Build applications using Microservices Architecture
Performance monitoring and optimization
Final Presentation and Evaluation
Docker & Kubernetes – Containerization and orchestration
Apache Kafka, RabbitMQ – Distributed messaging
MPI, OpenMP – Parallel programming
Hadoop, Spark – Big Data distributed computing
Wireshark – Network analysis
Solid understanding of TCP/IP and networking fundamentals
Basic knowledge of databases and data structures
Programming experience (preferably in Java or Python)
Certificate of Completion
Final Capstone Project
Source code repository and documentation
Deployment guides and performance reports