Course details
Java Programming Language
IJA Acad. year 2019/2020 Summer semester 4 credits
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
Completion
Time span
- 26 hrs seminar
- 13 hrs projects
Assessment points
- 100 pts projects
Department
Instructor
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.
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 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]
- 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
- Eckel, B.: Thinking in Java (4th Edition), 2006, ISBN: 978-0131872486 [starší edice dostupné elektronicky na WWW]
Syllabus of seminars
- Introduction to Java: history, tools, distribution. Basic concepts: object, class, interface, constructor.
- Data types. Class declarations, access modifiers. Build and run application, application structure (packages), import classes.
- Inheritance, object initialization, inheritance hierarchy (Object class). Type conversion. Assert.
- An abstract class, interface. Type checking, typecasting, object comparison. Array.
- Object oriented design and implementation in Java. Design Patterns.
- Tools: document generation, Java Archive (JAR), Apache Ant, JUnit (debugging). Annotation.
- Exceptions. Nested classes, enumeration type, varargs. Lambdas.
- Containers: iterator, collection, list, set and map. Generic containers. For-each loop, autoboxing.
- Threads: Planning, Sharing, Synchronization.
- Graphical User Interface JFC / Swing. MVC, Observer, and Command Patterns.
- Input Output streams. Sockets. Collecting data with streams.
- Java 8: interface, generics. Java programming principles.
- JVM: class loading, memory management, garbage collector, profiling.
Syllabus - others, projects and individual work of students
- homeworks
- project (a small application in Java)
Progress assessment
- Have at least 1 point of the possible point evaluation of each homework.
- Have at least 50% of the possible point evaluation of the project.
- Have at least 50 points in total.
Controlled instruction
- Elaboration of homeworks and the project.
Exam prerequisites
- Have at least 1 point of the possible point evaluation of each homework.
- Have at least 50% of the possible point evaluation of the project.
- Have at least 50 points in total.
Course inclusion in study plans