Explore the foundations and practical applications of Parallel and Distributed Systems! Learn how to meet key system requirements like performance, security, and availability through proven design patterns and modern programming interfaces. From threads, semaphores, and mutexes to sockets, RPCs, and multiprocessor systems, you'll gain hands-on experience in building and configuring parallel and distributed applications in Java.

By the end of the course, you'll be equipped to design, implement, and evaluate complex systems that leverage concurrency, synchronization, and inter-process communication for real-world challenges.

Foundations of Software Engineering Lectures, Exercises, and Project

Software Architecture and Design Patterns Lectures and Exercises

Computer Labs --> Object oriented concepts (Software Design INTERNATIONAL)