Course details

Java Programming Language

IJA Acad. year 2024/2025 Summer semester 4 credits

Current academic year

Object orientation and Java concepts (object, class, interface, exceptions, collections, streams, lambda expressions, generics). Object design principles, programming techniques, and design patterns. Debugging and profiling. Parallelism (threads, executors, synchronization). Graphical user interfaces, asynchronous programming (events, tasks).

Guarantor

Course coordinator

Language of instruction

Czech, English

Completion

Classified Credit (written)

Time span

  • 26 hrs seminar
  • 13 hrs projects

Assessment points

  • 100 pts projects

Department

Instructor

Learning objectives

Students will gain the ability to apply an object-oriented approach to creating applications using Java and knowledge of basic Java programming techniques. They will become familiar with the creation of simple graphical user interfaces, basic design patterns, the use of threads, and the practical use of unit tests.

Recommended prerequisites

Prerequisite knowledge and skills

Basics of imperative programming (language C) and algorithm development.

Study literature

  • Eckel, B.: Thinking in Java (4th Edition), 2006, ISBN: 978-0131872486 [starší edice dostupné elektronicky na WWW]
  • Internetové zdroje: Oracle The Java Tutorial (https://docs.oracle.com/javase/tutorial/), JDK 17 Documentation (https://docs.oracle.com/en/java/javase/17/).
  • Raoul-Gabriel Urma, Mario Fusco, Alan Mycroft: Java 8 & 9 in Action, Second Editition (Lambda, streams, functional and reactive programming). Manning, 2018.
  • Joshua Bloch: Effective Java, Prentice Hall; 2 edition (May 28, 2008), ISBN-13: 978-0321356680

Fundamental literature

  • Harvey Deitel, Paul J. Deitel. Java How to Program, Early Objects. Global edition, 11th edition. PEARSON 2017.  ISBN-13: 978-1292223858.
  • Eckel, B.: Thinking in Java (4th Edition), 2006, ISBN: 978-0131872486 [starší edice dostupné elektronicky na WWW]
  • Y. Daniel Liang. Introduction to Java Programming and Data Structures, Global Edition, 12th edition. PEARSON 2021. ISBN-13: 978-1-292-40207-9.

Syllabus of seminars

  1. Introduction to Java: history, tools, distribution. Basic concepts: object, class, interface, constructor.
  2. Data types. Class declarations, access modifiers. Build and run application, application structure (packages), import classes.
  3. Inheritance, object initialization, inheritance hierarchy (Object class). Type conversion.
  4. Abstract class, interface. Type checking, typecasting, object comparison. Array.
  5. Exceptions. Nested classes, anonymous classes. Lambdas. Invariant asserts.
  6. Containers: iterator, collection, list, set, map, comparators. Enumerations.
  7. Threads: Planning, Sharing, Synchronization.
  8. Annotations. Program debugging (JUnit), document generation, application build (ant, maven), distribution (java archive).
  9. Object oriented design and implementation in Java. Design Patterns.
  10. Graphical User Interface JFC/Swing and JavaFX. MVC, Observer, and Command Design Patterns.
  11. Input Output streams. Sockets. Collecting data with streams.
  12. Modules, modular JDK, runtime image. Generic types (Generics). Java programming principles.
  13. JVM: class loading, memory management, garbage collector, profiling.

Syllabus - others, projects and individual work of students

  1. Homeworks practicing knowledge of essential features of the Java language.

  2. Project - small application in Java including graphical user interface.

Progress assessment

  • Elaboration of homeworks and the project.
  • The evaluation includes a defense of the project.

Course inclusion in study plans

  • Programme BIT, 2nd year of study, Compulsory-Elective group T
  • Programme BIT (in English), 2nd year of study, Compulsory-Elective group T
Back to top