Course detail

Java Programming Language (in English)

FIT-IJAeAcad. year: 2024/2025

Object orientation. Java - language, objects, classes, programming techniques, libraries, development environments. Design patterns. Debugging and testing tools. Graphic user interface, threads.

Language of instruction

English

Number of ECTS credits

5

Mode of study

Not applicable.

Offered to foreign students

Of all faculties

Entry knowledge

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

Rules for evaluation and completion of the course

  • Work out homeworks and the project.

Aims

The goal is to introduce students to object-oriented programming in Java.
Ability to apply object oriented approach for application development using Java language. Experiences with design patterns and graphic user interface (Swing) in Java.
Basis of object oriented programming. Knowledge of basic design patterns.

Study aids

Not applicable.

Prerequisites and corequisites

Basic literature

Harvey Deitel, Paul J. Deitel. Java How to Program, Early Objects. Global edition, 11th edition. PEARSON 2017. ISBN-13: 978-1292223858. 
Bruce Eckel: Thinking in Java (4th Edition), 2006, ISBN-13: 978-0131872486 [some editions are available electronically on WWW] 

Recommended literature

Joshua Bloch: Effective Java, Prentice Hall; 2 edition (May 28, 2008), ISBN-13: 978-0321356680
The Java Tutorials. https://docs.oracle.com/javase/tutorial/
Raoul-Gabriel Urma, Mario Fusco, Alan Mycroft: Java 8 & 9 in Action, Second Editition (Lambda, streams, functional and reactive programming). Manning, 2018. 
Bruce Eckel: Thinking in Java (4th Edition), 2006, ISBN-13: 978-0131872486 [some editions are available electronically on WWW]

Classification of course in study plans

  • Programme IT-BC-1H Bachelor's

    specialization BCH , 0 year of study, winter semester, recommended course

Type of course unit

 

Lecture

26 hod., optionally

Teacher / Lecturer

Syllabus

  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.

Exercise in computer lab

12 hod., optionally

Teacher / Lecturer

Syllabus

  1. Java basics, first applications, working with packages and classes, compiling and running the application from the command line.
  2. Control structures, arrays, enumeration types, data types. Object orientation programming.
  3. Collections.
  4. Threads.
  5. Graphical user interface. Design patterns.
  6. Java Tools (jar, javadoc, ant, maven).

Project

14 hod., compulsory

Teacher / Lecturer

Syllabus

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

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