Java Programming Language
* This course is prepared for incoming Erasmus+ students only, and it is instructed in English.
* This course will be open if a certain/sure minimum of enrolled students is at least five students.
|Hour/sem||Lectures||Sem. Exercises||Lab. exercises||Comp. exercises||Other|
|Guarantee:||Kočí Radek, Ing., Ph.D., DITS|
|Lecturer:||Kočí Radek, Ing., Ph.D., DITS|
|Instructor:||Matyáš Jiří, Ing., DITS|
|Faculty:||Faculty of Information Technology BUT|
|Department:||Department of Intelligent Systems FIT BUT|
| || ||The goal is to introduce students to object-oriented programming in Java.|
| || ||Object orientation. Java - language, objects, classes, programming techniques, libraries, development environments. Design patterns. Debugging and testing tools. Graphic user interface, threads.|
|Knowledge and skills required for the course:|
| || ||Basics of imperative programming (language C) and algorithm development.|
|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.|
|Generic learning outcomes and competences:|
| || ||Basis of object oriented programming. Knowledge of basic design patterns.|
|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.
- JVM: Class loading, memory management, garbage collector, profiling.
- Java Enterprise Edition: Basic overview.
|Syllabus - others, projects and individual work of students:|
- project (a small application with GUI in Java).
- Joshua Bloch: Effective Java, Prentice Hall; 2 edition (May 28, 2008), ISBN-13: 978-0321356680
- Raoul-Gabriel Urma, Mario Fusco, Alan Mycroft: Java 8 in Action
(Lambdas, streams, and functional-style programming). Manning, 2015.
| || |
- Work out homeworks and the project.
| || |
- 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.