Level: bachelor; Year: 2nd; Semester: 2nd; Specialisation: Computer Science in Romanian

"Systems for Design and Implementation" is a comprehensive course that delves into the understanding of concepts and issues surrounding distributed systems. Throughout the program, participants will witness a tangible enhancement in their design and programming skills, equipping them with the proficiency to tackle complex challenges in the realm of system development.

The course focuses on the acquisition of existing concepts and techniques specifically tailored for the development of distributed applications, fostering a practical approach to software system development. Students can anticipate familiarizing themselves with contemporary concepts that play a pivotal role in shaping the landscape of modern software systems.

General information

  • MSTeams code: m6yx2fp

  • Attendance: minimum 90% of all laboratories

  • Grading:
    • 30% Laboratory Grade
    • 10% Assignments during lab hours
    • 10% Questions during course hours
    • 50% Final Exam
  • Requirements:
    • Laboratory Grade >= 4.50
    • Final Exam >= 5
    • Final Grade >=5

Laboratory assessment plan

Laboratory Assignment Deadline
1 Design and implement (in Java and C#) the model and repository of the project using relational databases. Lab 3
3 Design and implement (in Java and C#) the services and UI of the project.

Java version: Lab 4

C# version: Lab 5
5 Implement the networking of the project using sockets and threads (in Java and C#) and the customer notifications.

Java version: Lab 6

C# version: Lab 7
7 Modify one of the solutions from the 3rd homework (Networking) to use one of the following RPC technologies: RMI, Spring Remoting or .NET Remoting. Lab 8
8

Modify one of the solutions from the 3rd homework (Networking) so that the server uses a programming language and the clients use another programming language. Choose from Java and C#.

* If you use gRPC or Thrift, you will receive a bonus point to the final grade.
Lab 9
9 For at least one entity from the project use an ORM instrument (Hibernate, Entity Framework etc.) for one of the previous solutions. Lab 10
10

Design and implement REST services for one of the entities from the project (create, update, delete, search by id, show all entities).

Test the services using a REST client (e.g. browser extension: Advanced Rest Client, Postman).
Lab 12
12

Develop a web application which allows viewing all entities from homework 7, as well as adding and deleting an entity, using the REST services from homework 7.

For developing the web application, you can use any technology which is not based on Java or .NET (i.e. you can use ReactJS, AngularJS, PHP etc., but not JSP, Servlet or ASP.NET).
Lab 14