Course detail
Java Programming Language
FIT-IJAAcad. year: 2024/2025
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).
Why is the course taught
Current practice requires at least a basic knowledge of object-oriented programming principles, techniques, and design patterns. The course discusses and practices these aspects using Java, a widely used language in practice for creating complex applications.
Credit requirements
- Obtain at least 50% of the project points.
- Obtain at least 50% of the points in the overall assessment.
E-learning in Moodle will be used to organize the course.
Language of instruction
Number of ECTS credits
Mode of study
Guarantor
Department
Entry knowledge
Basics of imperative programming (language C) and algorithm development.
Rules for evaluation and completion of the course
- Elaboration of homeworks and the project.
- The evaluation includes a defense of the project.
- To receive credit, obtaining at least 50% of the points from the project and at least 50% of the overall assessment is necessary.
Aims
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.
Study aids
Prerequisites and corequisites
- recommended prerequisite
Introduction to Programming Systems
Basic literature
Harvey Deitel, Paul J. Deitel. Java How to Program, Early Objects. Global edition, 11th edition. PEARSON 2017. ISBN-13: 978-1292223858.
Y. Daniel Liang. Introduction to Java Programming and Data Structures, Global Edition, 12th edition. PEARSON 2021. ISBN-13: 978-1-292-40207-9.
Recommended reading
Internetové zdroje: Oracle The Java Tutorial (https://docs.oracle.com/javase/tutorial/), JDK 17 Documentation (https://docs.oracle.com/en/java/javase/17/).
Joshua Bloch: Effective Java, Prentice Hall; 2 edition (May 28, 2008), ISBN-13: 978-0321356680
Raoul-Gabriel Urma, Mario Fusco, Alan Mycroft: Java 8 & 9 in Action, Second Editition (Lambda, streams, functional and reactive programming). Manning, 2018.
Elearning
Classification of course in study plans
Type of course unit
Seminar
Teacher / Lecturer
Syllabus
- Introduction to Java: history, tools, distribution. Basic concepts: object, class, interface, constructor.
- Data types. Class declarations, access modifiers. Build and run application, application structure (packages), import classes.
- Inheritance, object initialization, inheritance hierarchy (Object class). Type conversion.
- Abstract class, interface. Type checking, typecasting, object comparison. Array.
- Exceptions. Nested classes, anonymous classes. Lambdas. Invariant asserts.
- Containers: iterator, collection, list, set, map, comparators. Enumerations.
- Threads: Planning, Sharing, Synchronization.
- Annotations. Program debugging (JUnit), document generation, application build (ant, maven), distribution (java archive).
- Object oriented design and implementation in Java. Design Patterns.
- Graphical User Interface JFC/Swing and JavaFX. MVC, Observer, and Command Design Patterns.
- Input Output streams. Sockets. Collecting data with streams.
- Modules, modular JDK, runtime image. Generic types (Generics). Java programming principles.
- JVM: class loading, memory management, garbage collector, profiling.
Project
Teacher / Lecturer
Syllabus
-
Homeworks practicing knowledge of essential features of the Java language.
-
Project - small application in Java including graphical user interface.
Elearning