|
Lecturer(s)
|
-
Herout Pavel, 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.
|