Introduction to Java programming and data structures, comprehensive version - Liang, Y. Daniel (Pearson, 2020)