Seminar sylabus of PV260/Java_Lasaris

Seminar organization

The content of the seminar sessions

The purpose of the seminars is to provide hands-on experience with the topics discussed in the lectures. The seminar content will cover various areas of code refactoring, testing, and static code analysis. The students will analyse and optimize multiple software quality attributes, such as reliability, maintainability, testability or performance with the help of modern open-source tools. The students will work in pairs on exercises during the seminars and on larger assignments (projects) at home. Attendance at the seminars is mandatory. Although, the seminars focus on the Java programming language, the principles discussed in the seminars are generally applicable also in other languages and environments.

Requirements

The maximum number of points to be obtained in the course is 100 and the required minimum for passing is 70. The distribution of the points is as follows:

  • Active participation in lectures: 10 points
  • Achievements in seminars (completing bonus tasks, nice solutions, extra activity etc.): 10 points
  • Projects: 45 points
    • Assignment 1 (SCA, development problems): 15 points
    • Assignment 2 (Refactoring): 15 points
    • Assignment 3 (Testing): 15 points
  • Final colloquium assessment: 35 points

An additional requirement for passing the course is the completion of all assignments from the seminars.

    Penalties

    • Every unexcused absence:
      • -7 points.
    • Late submission of project or assignment:
      • -3 points for each team member per day overdue.
    • Cheating (e.g. copying from a solution of someone else):
      • course failure and notification of disciplinary committee

    Time Schedule:

    • 17.2.   [Block I]   Introduction, Static Code Analysis, Sonarqube,
    • 18.2.   [Block I]   Git Flow, CI/CD, code review, Assignment 1
    • 10.3.   [Block II]  Clean code, SOLID 
    • 11.3.   [Block II]  Code smells, refactoring, Assignment 2
    • 31.3.   [Block III] JUnit extensions, data-driven testing, Mockito, TDD    
    • 1.4.     [Block III] Test plan, risk analysis, web app testing, Selenium, Issue processing, Assignment 3

    Projects

    • There will be three larger assignments (separate mini-projects)
    • The first assignment will focus on static code analysis and development problems, the second on refactoring and the third on the testing.
    • The deadline for each assignment will be 2-3 weeks.
    • Students will work in pairs.
    • Each project will have a set of optional (and more challenging) tasks, whose completion will be awarded by bonus points.

    Basic study sources

    Books

    • Clean Code: A Handbook of Agile Software Craftsmanship
      • Robert C. Martin
      • Link
    • Clean Architecture: A Craftsman's Guide to Software Structure and Design
      • Robert C. Martin
      • Link
    • Refactoring to Patterns
      • Joshua Kerievsky
      • Link
    • Refactoring: Improving the Design of Existing Code
    • xUnit Test Patterns: Refactoring Test Code

    Web

    Tutorials

    Chyba: Odkazovaný objekt neexistuje nebo nemáte právo jej číst.
    https://is.muni.cz/el/fi/jaro2022/PV260/um/seminars/java_groups/seminar_1/gitBasics.pdf
    Chyba: Odkazovaný objekt neexistuje nebo nemáte právo jej číst.
    https://is.muni.cz/el/fi/jaro2022/PV260/um/seminars/java_groups/seminar_1/Maven.pdf