Course detail

Java Programming Language

FIT-IJAAcad. year: 2023/2024

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

Language of instruction

Czech

Number of ECTS credits

4

Mode of study

Not applicable.

Entry knowledge

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

Rules for evaluation and completion of the course

Students solve several assignments and one final project.

 

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

Aims

The aim is to introduce students to the basics of object-oriented programming in the Java environment. Students will also learn how to use design patterns and unit tests and create a simple graphical user interface.

 

Ability to apply an object-oriented approach to software application development using Java. Knowledge of basic programming techniques in Java. Experience in creating graphical user interfaces and using design patterns.

Study aids

Not applicable.

Prerequisites and corequisites

Basic literature

Eckel, B.: Thinking in Java (4th Edition), 2006, ISBN: 978-0131872486 [starší edice dostupné elektronicky na WWW]
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

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/).
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

  • Programme BIT Bachelor's 2 year of study, summer semester, compulsory-optional
  • Programme BIT Bachelor's 2 year of study, summer semester, compulsory-optional

  • Programme IT-BC-3 Bachelor's

    branch BIT , 2 year of study, summer semester, compulsory-optional

Type of course unit

 

Seminar

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.

Project

13 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.

Elearning