Java Programming Language
FIT-IJAAcad. year: 2019/2020
Object orientation. Java - language, objects, classes, programming techniques, libraries, development environments. Design patterns. Debugging and testing tools. Graphical user interface, threads.
Learning outcomes of the course unit
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.
Basics of imperative programming (language C) and algorithm development.
- recommended prerequisite
Recommended optional programme components
Recommended or required reading
Internetové zdroje: http://download.oracle.com/javase/8/docs/ ; http://download.oracle.com/javase/tutorial/
Rudolf Pecinovský: Myslíme objektově v jazyku Java, 2. vydání, Grada Publishing, 2008, ISBN 978-80-247-2653-3
Raoul-Gabriel Urma, Mario Fusco, Alan Mycroft: Java 8 in Action (Lambdas, streams, and functional-style programming). Manning, 2015.
Eckel, B.: Thinking in Java (4th Edition), 2006, ISBN: 978-0131872486 [starší edice dostupné elektronicky na WWW]
Cay S. Horstmann: Java SE8 for the Really Impatient: A Short Course on the Basics, Addison-Wesley Professional, 2014, ISBN-13: 978-0321927767
Joshua Bloch: Effective Java, Prentice Hall; 2 edition (May 28, 2008), ISBN-13: 978-0321356680
Planned learning activities and teaching methods
Assesment methods and criteria linked to learning outcomes
- 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.
Language of instruction
The goal is to introduce students to object-oriented programming in Java.
Specification of controlled education, way of implementation and compensation for absences
- Elaboration of homeworks and the project.
Type of course unit
26 hours, optionally
Teacher / Lecturer
- 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.
13 hours, compulsory
Teacher / Lecturer
- project (a small application in Java)
eLearning: currently opened course