Course details

Java Programming Language

IJA Acad. year 2021/2022 Summer semester 4 credits

Current academic year

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

Guarantor

Course coordinator

Language of instruction

Czech, English

Completion

Credit (written)

Time span

  • 26 hrs seminar
  • 13 hrs projects

Assessment points

  • 100 pts projects

Department

Instructor

Subject specific learning outcomes and competences

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.

Learning objectives

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.

Why is the course taught

Current practice requires at least basic knowledge of the principles of object-oriented programming, programming techniques and design patterns. The course teaches and trains these aspects in the Java language, which is a widespread language for the creation of complex applications.

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]

Syllabus of seminars

  1. Úvod do jazyka Java: historie, nástroje, distribuce. Základní pojmy: objekt, třída, konstruktor.
  2. Datové typy. Deklarace třídy, modifikátory přístupu. Sestavení a spuštění aplikace, struktura aplikace (balíky), import tříd.
  3. Dědičnost, inicializace objektu, hierarchie dědičnosti (třída Object). Typová konverze.
  4. Abstraktní třída, rozhraní. Typová zaměnitelnost. Pole.
  5. Výjimky. Vnořené třídy, anonymní třídy. Lambda výrazy. Ověřování invariantů (assert).
  6. Kontejnery: iterátor, kolekce, seznam, množina, mapa, komparátory. Výčtový typ.
  7. Vlákna: plánování, sdílení, synchronizace.
  8. Anotace. Ladění programu (JUnit), generování dokumentace, sestavování aplikace (ant, maven), distribuce (java archive).
  9. Objektově orientovaný návrh a implementace v jazyce Java.
  10. Grafické uživatelské rozhraní JFC/Swing a JavaFX. Návrhové vzory MVC, Observer a Command.
  11. Vstup/Výstup. Sokety. Proudové zpracování kolekcí.
  12. Moduly, modulární JDK, runtime image. Generické typy (Generics). Zásady programování v Javě.
  13. JVM: zavádění tříd, správa paměti, garbage collector, profiling.

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

Students solve several assignments and one final project.

Controlled instruction

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

Exam prerequisites

  • Get at least 1 point of the possible point evaluation of each homework.
  • Get at least 50% of the possible point evaluation of the project.
  • Get at least 50% points in total.

Course inclusion in study plans

  • Programme BIT, 2nd year of study, Compulsory-Elective group T
  • Programme IT-BC-3, field BIT, 2nd year of study, Compulsory-Elective group T
Back to top