Course details
Java Programming Language
IJAe Acad. year 2017/2018 Winter semester 5 credits
Object orientation. Java - language, objects, classes, programming techniques, libraries, development environments. Design patterns. Debugging and testing tools. Graphic user interface, threads.
Guarantor
Language of instruction
Completion
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)
- 20 pts labs
- 60 pts projects
Department
Subject specific learning outcomes and competences
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.
Learning objectives
The goal is to introduce students to object-oriented programming in Java.
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
- 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]
Syllabus of lectures
- Introduction: History, tools, distributions, Java Virtual Machine (JVM). Basis of object orientation: object, class, interface, abstraction, encapsulation, constructors.
- Data types. Class declaration, access modifiers. Structure of application in Java, packages, compilation, run, import classes.
- Inheritance, polymorphism. Object initialization. Arrays. Debugging using assert.
- Inheritance hierarchy, type checking, type casting, object comparison. Interface in Java. Debugging tools.
- Exceptions. Abstract classes, nested (inner) classes, enumeration, static classes and variables.
- Containers: Iterators, collection, set, lits, map. Generics in containers. For-each loop, auto-boxing.
- Threads: Sharing, planning, synchronization.
- Graphic user interface JFC/Swing. Technique of application design.
- Input/Output operations, streams.
- Design patterns. Programming language guide.
- Generics.
- JVM: Class loading, memory management, garbage collector, profiling.
- Java Enterprise Edition: Basic overview.
Progress assessment
- Give the homework being correct.
- Having at least 50% of the possible point evaluation of the project.
Controlled instruction
There are no checked study.