This page is the central point on which are published resources for the Advanced programming in Java course.

Lecture Slides

Hands-On Exercises

You have 6 lab sessions to get acquainted with the java API for tasks that you will be commonly doing in the project:

  • Threads & concurrency: 2 lab sessions (2h30)
  • Networking (UDP / TCP): 2 lab sessions (2h30)
  • Graphical User Interface (Swing): 2 lab sessions (2h30)

The objectives of these sessions are:

  • for you to gain some theoretical and practical insights on the java standard library
  • develop some pieces of code that you will be able to reuse for the chatsystem project

So please do not rush through the sessions. Make sure to organize your code in such a way that you can find the relevant piece of information when you come back to it in one or two months.

The subjects may be fairly long, but it is not a problem if you do not complete them in the allocated time slots. However, all subjects covered in the exercises are important to succeed in the chatsystem project.

Evaluation

Evaluation of the course is based on:

  • an intermediate evaluation (quiz + code exercises) early December (~25% of the grade)
  • the results of the chatsystem project (code + documentation) (~75% of the grade)

AI use policy

The students are not allowed to use AI auto-completion in their IDE during the hands-on sessions (practical work and labs). The reason is that, while AIs may be useful to get things done, the problem is that they propose solutions to problems that the students did not even formulate. This is obviously a very bad thing for learning which is the only objective of this course (we do not care if you code works).

Other sources of information (chat-based AI, stack overflow) are allowed but should as always be used with care in order to maximize your learning objectives.

No AI usage will be allowed for the intermediate exam code exercises.