The subject is to make the students able to design, and implement distributed software systems in Java using sockets, remote procedure call mechanisms, and JAVA RMI. It will cover: Process & thread management, Basic Process Model, Scheduling, Critical Sections and Synchronization, Mutual exclusion, Semaphores, Conditional variables, Monitors; Concurrency, Modeling concurrent activity starting with JAVA threads, Forms of communication, architectures, Means of communication (Shared memory, Direct communication between processes); Distributed Systems, Client-server model, Naming and binding, RPC General principles, Protection and Security; Java RMI.
Intended learning outcomes
Knowledge &understand
Realizing the importance of software design patterns and strategies
To understand how design patterns can be implemented in object-oriented programming.
To understand the open-close principle and how to design solutions from context.
Learn how to rebuild poorly designed solutions.
mental skills
Analyze the problem in the code to know its type
Deduces the appropriate pattern of code analysis that will improve the code in terms of faster and better performance
Distinguish between different types of programming patterns, the role of each, and when to use them
The ability to use more than one pattern in large or group projects to improve program performance
Practical & professional skills
At the design level, students will learn how to use patterns to design better programs and how to use the Unified Modeling Language (UML) to represent patterns.
On implementation, students will learn how to implement patterns using the Java programming language
Students will put what they have learned into practice by carrying out a group project
They will design and implement a complex object-oriented software system.
General and transferable skills
Analytical skills
Team work
solving problems
Project management
Teaching and learning methods
Lectures
Lab
Problem-based learning
Mini-projects
Virtual platform for further discussions or inquiries (Class hub)