Course detail
Computers and Programming 2
FEKT-BPC-PC2TAcad. year: 2024/2025
General introduction to algorithmization, a general introduction to object-oriented programming, the control sequence of higher-order languages, the JAVA Eclipse application programming environment.
Language of instruction
Number of ECTS credits
Mode of study
Guarantor
Department
Entry knowledge
Rules for evaluation and completion of the course
The content and forms of instruction in the evaluated course are specified by a regulation issued by the lecturer responsible for the course and updated for every academic year.
Aims
Mastering the basics of algorithmic thinking and object-orientated programming. Understanding the basic properties and structures of JAVA and the ability to apply them. Basic ability to program in JAVA Eclipse.
Study aids
Prerequisites and corequisites
Basic literature
Pecinovský, R.: Myslíme objektově v jazyku Java -- kompletní učebnice pro začátečníky, Grada , 2008, ISBN: 978-80-247-2653-3. (CS)
Schildt , H.: Java: A Beginner's Guide, McGraw-Hill Education, 2014, ISBN: 978-0071809252. (EN)
Schildt , H.: JAVA 8 - výukový kurz, Computer Press, 2016, ISBN: 9788025146651. (CS)
Recommended reading
Elearning
Classification of course in study plans
- Programme BPC-AUD Bachelor's
specialization AUDB-TECH , 2 year of study, summer semester, compulsory-optional
specialization AUDB-ZVUK , 2 year of study, summer semester, compulsory-optional - Programme BPC-IBE Bachelor's 1 year of study, summer semester, compulsory
- Programme BPC-TLI Bachelor's 2 year of study, summer semester, compulsory
Type of course unit
Lecture
Teacher / Lecturer
Syllabus
2) Classes and objects. Basic data types (primitives) vs. objects. References. Visibility of variables and attributes in the program.
3) Inheritance. Class vs. abstract class vs. interface. Polymorphism. Inner classes.
4) Exceptions and the principle of treating unexpected events. Exception is thrown. Multiple nested exceptions and their handling. Hierarchical breakdown of exceptions. Own exception creation.
5) Recursion. The principle of recursion, and an introduction to problem-solving using recursion.
6) Text files and standard input and output. The input / output streams, work with file systems, files, folders, creation, delete, modify access rights.
7) Advanced data types, Collections, lists (ArrayList, LinkedList), sets (HashSet, TreeSet), maps (HashMap, TreeMap), iterators. Browsing the collections in the cycle.
8) String class, operations with strings . Enumeration type, envelope type. Generic programming.
9) Debugging and testing of programs. Unit tests. Documentation generating.
10) Graphical user interface. Design pattern Model-View-Controller. Event-driven programming.
11) Multi-threaded processing. Processes vs. threads. Atomicity. Threads synchronization. Deadlock.
12) The principles of object-oriented design of programs. Usage of design patterns.
13) Management of major projects. Importing libraries and work with the API. Creating a custom library. Project management and integration libraries. Creating executable application.
Exercise in computer lab
Teacher / Lecturer
Syllabus
2) Implementing classes and objects. Communication between objects. Static data entries and methods.
3) Implementing child from parent class. Constructors and methods overriding. Implementing abstract class. Implementing interface.
4) Throwing exception. Exception handling. Implementing own exception.
5) Recursive algorithm implementation. Example of inappropriate termination condition.
6) Using standard Input. Use standard output.
7) Opening file. Reading from file. Writing to file. Object serialization.
8) Work with lists (ArrayList and LinkedList). Work with sets (HashSet and TreeeSet). Work with maps (HashMap and TreeMap).
9) Envelope type usage. Enumeration type usage. Implementing and usage of generic class.
10) Using control statements. Using integrated software debugger. Implementation and usage of unit tests. Example of automated program documentation generating.
11) Implementation of simple graphical user interface. Adding graphical components using layout manager. Operations with graphical component.
12) Creating and running new thread. Example of thread synchronization. Implementing mutual thread communication.
13) Example of design principle SOLID. Example of design principle Demeter law. Implementation of design pattern Transfer object. Implementation of design pattern Servant.
Elearning