Course: Object-Oriented Programming

» List of faculties » FAV » KIV
Course title Object-Oriented Programming
Course code KIV/OOP
Organizational form of instruction Lecture + Tutorial
Level of course Bachelor
Year of study not specified
Semester Winter
Number of ECTS credits 4
Language of instruction Czech
Status of course unspecified
Form of instruction Face-to-face
Work placements This is not an internship
Recommended optional programme components None
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.


Study plans that include the course
Faculty Study plan (Version) Category of Branch/Specialization Recommended year of study Recommended semester