Lecturer(s)
|
-
Heller Václav, doc. Ing. Ph.D.
|
Course content
|
1. Classes and objects in interactive mode of the BlueJ environment, communication with classes and objels 2. Class and its partst - constructors, fields, methods, interface versus implementation, contract 3. Design patterns: Utility class, Static factory method, Singleton, Crate, Enum 4. Interface ? construction and implementation, class with several interfaces 5. Data types, packages, JAR files - methods of the Object class, Java data types: primitive and object, String class, practical things about the Java program: main class and main() method, JAR files, packages 6. Inheritance of types (implementation of interfaces) and composition as a substitution for inheritance 7. Inheritance of implementation and cooperation with a superclass, a final class, an abstract class 8. Collection API 1 - the Collection interface, the Arrays class, anonymous data type versus genericity, 9. Collection API 2 - lists, sets, maps, design pattern Iterator 10. Polymorphism, handlers, inner and nested data types 11. UML: a basic survey, the class diagram and its relationships: association, composition, agregation, the use case diagram 12. Lambda expressions, anotations 13. Advanced design patterns: Builder, Abstract factory, Composite, Decorator, Bridge, Command
|
Learning activities and teaching methods
|
Lecture with practical applications, Individual study
- Preparation for an examination (30-60)
- 30 hours per semester
- Contact hours
- 52 hours per semester
- Individual project (40)
- 30 hours per semester
|
prerequisite |
---|
Knowledge |
---|
rozlišovat vhodnost použití celých a reálných čísel jako proměnných |
vysvětlit pojmy proměnná, cyklus, podmínka |
vysvětlit pojmy podprogram, funkce, procedura |
rozlišovat pojmy editor, překladač, sestavovací program |
rozlišovat zdrojový kód, přeložený kód, spustitelný program |
Skills |
---|
používat rutinně nějaký editor |
běžné práce s personálním počítačem, tj. umístění souborů na přesně definované místo a spuštění libovolného programu |
vyhledávat základní informace ve zdrojích na Internetu |
napsat jednoduchý program v libovolném programovacím jazyce |
Competences |
---|
N/A |
learning outcomes |
---|
Knowledge |
---|
vysvětlit pokročilé objektově orientovaného programování |
znát netriviální objektové vlastnosti jazyka Java |
vysvětlit principy vytváření dobrých objektových návrhů programů |
orientace v základních návrhových vzorech |
orientace v principech a některých diagramech jazyka UML |
Skills |
---|
navrhnout a odladit program sestávající z více tříd |
používat jednotkové testování |
vytvořit detailní UML diagram tříd jako dokumentaci ke svému programu |
programovat proti rozhraní |
používat dynamické kontejnery v jazyce Java |
používat IDE Eclipse nebo NetBeans |
Competences |
---|
N/A |
teaching methods |
---|
Knowledge |
---|
Interactive lecture |
Skills |
---|
Task-based study method |
Textual studies |
Competences |
---|
Individual study |
Self-study of literature |
assessment methods |
---|
Knowledge |
---|
Combined exam |
Test |
Skills |
---|
Skills demonstration during practicum |
Continuous assessment |
Competences |
---|
Skills demonstration during practicum |
Recommended literature
|
-
Eckel, Bruce. Thinking in Java. 4th ed. Upper saddle River : Prentice Hall, 2006. ISBN 0-13-187248-6.
-
Herout, Pavel. Java : bohatství knihoven. 1. vyd. České Budějovice : Kopp, 2003. ISBN 80-7232-209-5.
-
Herout, Pavel. Učebnice jazyka Java. České Budějovice : Kopp, 2000. ISBN 80-7232-115-3.
-
Pecinovský, Rudolf. Myslíme objektově v jazyku Java, 2. vydání. Praha, 2009. ISBN 978-80-247-2653-3.
-
Pecinovský, Rudolf. OOP ? Naučte se myslet a programovat objektově. Brno, 2010. ISBN 978-80-251-2126-9.
|