2020-2021 / INFO0951-2

Programming of distributed and network applications

Duration

15h Th, 45h Labo., 10h Proj.

Number of credits

 Master in architecture of computer systems (120 ECTS)5 crédits 

Lecturer

Laurent Mathy

Language(s) of instruction

French language

Organisation and examination

Teaching in the first semester, review in January

Schedule

Schedule online

Units courses prerequisite and corequisite

Prerequisite or corequisite units are presented within each program

Learning unit contents

The course includes some theoretical lectures (8 lessons of 2 hours each) and various programming problems (including 3 which are used to compute the final grade) that students must solve. Problems are solved in group for the first projects and individually for the last project. The projects are to be developed on the personal computers of students. The theoretical lectures are used to present, to students, useful problem-solving tools. Practically, the student will receive knowledge on:

  • The RMI system
  • NIO sockets
  • An introduction to different concepts (Threads, GUI programming, temporal and spatial complexity, ...)
  • The rules of good programming practice
  • Defensive programming
(this list is not exhausive)

Learning outcomes of the learning unit

The course objective is to allow students to apply the material studied in the course in order to develop networking and distributed applications using the Java language. At the end of the course, students will be able to:

  • use the specific Java RMI system
  • use NIO sockets
  • put these systems into practice in order to develop Java programs with a client /server architecture
  • consider the best way to add functionalities or to handle errors in a client / server program
  • master the difference between a "black box" service and a low-level service.

Prerequisite knowledge and skills

  • Basic knowledge of programming (data structures and algorithmic) and Java language
  • Good knowledge of French (written and spoken)
  • Good knowledge of English (written)

Planned learning activities and teaching methods

Practical learning (i.e., problem solving)

Mode of delivery (face to face, distance learning, hybrid learning)

Theoretical lessons are given face-to-face through slides. Assignments can be made during the laboratory hours or at home.
The course is given during the first semester.

Organisational adjustments related to the current health context

Recommended or required readings

The course notes and the projects statements will be made available to students on the Chamilo platform. Reading all or part of the Java documentation (Javadoc) and tutorials provided by Oracle/Sun is recommended.

Assessment methods and criteria

Below you will find information on the evaluation methods planned for in-person and remote exams as well as those planned for hybrid sessions. Depending on how the health crisis evolves, the chosen method will be communicated to you no later than one month before the start of the exam session.

Students are evaluated based on assignments. The final grade will be obtained by computing the weighted arithmetical mean. The weight of the projects in the grade is the following:


  • 10% for the first project
  • 30% for the second project
  • 60% for the last project.
The first two projects are to be submitted during the year. The presentation of the third project might be used as exam.
In case of failure in January, assignments noted with less than 10/20 must be redone during the summer. No support (help, Q/A sessions, ...) will be provided during the resit.

Work placement(s)

Organizational remarks

Samuel Hiard will give the theoretical lessons as well as few hours of lab supervision. MASI partners will share the remaining hours of lab supervision.

Contacts

Co-responsable teachers : Laurent Mathy (ULg) and Samuel Hiard (Ulg)
Substitutes : Arnaud Tillieux (Henallux)

Items online

Chamilo
Online lectures and projects statements will be available in the "Documents" sections of the corresponding course on the Chamilo platform.