.. highlight:: java
   :linenothreshold: 4

####################################################
Programming Concepts with Java
####################################################

**LEPL1402** — *Université catholique de Louvain (UCLouvain)*

**Authors:** Sébastien Jodogne, Ramin Sadre, Pierre Schaus

.. raw:: html

   <div class="hero-pdf-banner">
     <div>
       <div class="hero-pdf-title"><i class="fa-solid fa-book-bookmark me-2"></i>Complete Course Textbook (PDF)</div>
       <p class="hero-pdf-desc">Download the entire 200+ page textbook covering all 6 course parts, optimized for offline reading and printing.</p>
     </div>
     <a href="_static/lepl1402.pdf" class="hero-pdf-btn" download>
       <i class="fa-solid fa-file-arrow-down"></i> Download PDF Book
     </a>
   </div>

   <div class="parts-grid">
     <a href="part1.html" class="part-card">
       <span class="part-card-badge">Part 1</span>
       <div class="part-card-title">From Python to Java</div>
       <p class="part-card-desc">Syntax differences, primitive types, array and string memory representations, methods, and control flow.</p>
     </a>
     <a href="part2.html" class="part-card">
       <span class="part-card-badge">Part 2</span>
       <div class="part-card-title">Object-Oriented Programming</div>
       <p class="part-card-desc">Classes, encapsulation, inheritance, polymorphism, abstract classes, interfaces, and GUI observers.</p>
     </a>
     <a href="part3.html" class="part-card">
       <span class="part-card-badge">Part 3</span>
       <div class="part-card-title">Software Testing</div>
       <p class="part-card-desc">Unit testing principles, black-box vs white-box, control flow coverage, edge cases, and JUnit framework.</p>
     </a>
     <a href="part4.html" class="part-card">
       <span class="part-card-badge">Part 4</span>
       <div class="part-card-title">Complexity & Data Structures</div>
       <p class="part-card-desc">Asymptotic notation (Big-O), linked lists, stacks, trees, binary search trees, hash maps, and iterators.</p>
     </a>
     <a href="part5.html" class="part-card">
       <span class="part-card-badge">Part 5</span>
       <div class="part-card-title">Parallel Computing</div>
       <p class="part-card-desc">Multithreading, thread pools, race conditions, mutual exclusion, monitors, and concurrent algorithms.</p>
     </a>
     <a href="part6.html" class="part-card">
       <span class="part-card-badge">Part 6</span>
       <div class="part-card-title">Functional Programming</div>
       <p class="part-card-desc">Nested and anonymous classes, lambda expressions, Java Streams API, lazy evaluation, and immutable data structures.</p>
     </a>
   </div>

Table of Contents
=================

.. toctree::
   :maxdepth: 2

   part1
   part2
   part3
   part4
   part5
   part6

References
==========

.. bibliography::


Indices, Tables and Downloads
=============================

* :ref:`genindex`
* :ref:`search`
* :download:`PDF version of the complete textbook <_static/lepl1402.pdf>`
