Course details

Java Programming Language (in English)

IJAe Acad. year 2023/2024 Winter semester 5 credits

Course is not open in this year

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

Guarantor

Course coordinator

Language of instruction

English

Completion

Classified Credit (written)

Time span

  • 26 hrs lectures
  • 12 hrs pc labs
  • 14 hrs projects

Assessment points

  • 20 pts mid-term test (12 pts written part, 8 pts test part)
  • 40 pts projects
  • 40 pts homework

Department

Lecturer

Instructor

Learning objectives

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.

Recommended prerequisites

Prerequisite knowledge and skills

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

Study literature

  • 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. 
  • The Java Tutorials. https://docs.oracle.com/javase/tutorial/
  • Bruce Eckel: Thinking in Java (4th Edition), 2006, ISBN-13: 978-0131872486 [some editions are available electronically on WWW]

Fundamental literature

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

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.
  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 of computer exercises

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

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

  • Work out homeworks and the project.

Exam prerequisites

  • Work out all homework.
  • Work out and present the project.
  • Write a test.
  • Get at least 20 points from the project and at least 50 points in total.
Back to top