Course detail

Computers and Programming 2

FEKT-BPC-PC2TAcad. year: 2019/2020

General introduction to algorithmization, a general introduction to object-oriented programming, the control sequence of higher-order languages, the JAVA Eclipse application programming environment.

Learning outcomes of the course unit

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.


The subject knowledge on the secondary school level and ANSI C programming knowledge are required.


Not applicable.

Recommended optional programme components

Not applicable.


Keogh, J.: Java bez předchozích znalostí, Computer press, 2005, ISBN: 9788025108390 . (CS)
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)

Planned learning activities and teaching methods

Teaching methods depend on the type of course unit as specified in the article 7 of BUT Rules for Studies and Examinations. Techning methods include lectures and computer laboratories. Course is taking advantage of e-learning system. Students have to write a single project during the course.

Assesment methods and criteria linked to learning outcomes

The student can obtain up to 20 points for the activity in computer labs,15 points for tests during the semester 15 points for an individual project in JAVA and 50 points for the final exam.

Language of instruction


Work placements

Not applicable.

Course curriculum

1. Basic algorithms in JAVA: loops, branching, methods, basic data types (primitives), reference vs. indicators, variables, visibility of variables
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


Educating students in algorithmic thinking and object-orientated programming. Explaining the basic properties and structures of the JAVA language. Preparing students for exploration of JAVA Eclipse.

Specification of controlled education, way of implementation and compensation for absences

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.

Classification of course in study plans

  • Programme BPC-IBE Bachelor's, 1. year of study, summer semester, 5 credits, compulsory

  • Programme BPC-AUD Bachelor's

    specialization AUDB-ZVUK , 2. year of study, summer semester, 5 credits, compulsory-optional
    specialization AUDB-TECH , 2. year of study, summer semester, 5 credits, compulsory-optional

  • Programme BPC-TLI Bachelor's, 2. year of study, summer semester, 5 credits, compulsory

  • Programme EEKR-CZV lifelong learning

    branch ET-CZV , 1. year of study, summer semester, 5 credits, compulsory

Type of course unit



26 hours, optionally

Teacher / Lecturer

Exercise in computer lab

26 hours, compulsory

Teacher / Lecturer