Faculty of Information Technology, BUT

Course details

Java Programming Language

IJA Acad. year 2018/2019 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.


Kočí Radek, Ing., Ph.D. (DITS FIT BUT)

Deputy Guarantor

Language of instruction



Credit (written)

Time span

26 hrs exercises, 13 hrs projects

Assessment points

100 projects



Kočí Radek, Ing., Ph.D. (DITS FIT BUT)


Kočí Radek, Ing., Ph.D. (DITS FIT BUT)

Subject specific learning outcomes and competences

Ability to apply object oriented approach for application development using Java language. Experiences with design patterns and graphical user interface (Swing) in Java.

Generic learning outcomes and competences

Basis of object oriented programming. Knowledge of basic design patterns and Java programming techniques.

Learning objectives

The goal is to introduce students to object-oriented programming in Java.

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 widespread language for the creation of complex applications.


Prerequisite kwnowledge and skills

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

Study literature

Fundamental literature

  • Eckel, B.: Thinking in Java (4th Edition), 2006, ISBN-13: 978-0131872486
  • Joshua Bloch: Effective Java, Prentice Hall; 2 edition (May 28, 2008), ISBN-13: 978-0321356680

Syllabus of lectures

  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. Assert.
  4. Abstract class, interface. Type checking, type casting, object comparison. Array.
  5. Object oriented design and implementation in Java. Design Patterns.
  6. Tools: document generation, Java Archive (JAR), Apache Ant, JUnit (debugging). Annotation.
  7. Exceptions. Nested classes, enumeration type, varargs. Lambdas.
  8. Containers: iterator, collection, list, set, map. Generic containers. For-each loop, autoboxing.
  9. Threads: Planning, Sharing, Synchronization.
  10. Graphical User Interface JFC / Swing. MVC, Observer, and Command Patterns.
  11. Input Output streams. Sockets. Collecting data with streams.
  12. Java 8: interface, generics. Java programming principles.
  13. JVM: class loading, memory management, garbage collector, profiling.

Syllabus - others, projects and individual work of students

  1. homeworks
  2. project (a small application in Java)

Controlled instruction

  • Elaboration of homeworks and the project.

Exam prerequisites

  • Having at least 1 point of the possible point evaluation of each homework.
  • Having at least 50% of the possible point evaluation of the project.

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