Java Programming Language
IJA Acad. year 2019/2020 Summer semester 4 credits
Language of instruction
Subject specific learning outcomes and competences
Generic learning outcomes and competences
Why is the course taught
Prerequisite kwnowledge and skills
- 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
- 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
- project (a small application in Java)
- Elaboration of homeworks and the project.
- 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