Course detail

Computers and Programming 2

FEKT-BPC2TAcad. year: 2018/2019

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

Language of instruction

Czech

Number of ECTS credits

5

Mode of study

Not applicable.

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 NetBeans.

Prerequisites

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

Co-requisites

Not applicable.

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 22 points for the activity in computer labs, 20 points for tests during the semester, 28 points for the final test, and 30 points for an individual project in JAVA.

Course curriculum

1) Review of 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. Problem-solving techniques. Design and implementation of algorithms. Subroutine, a division of the program into multiple files, 4) Recursion. The principle of recursion, and an introduction to problem-solving using recursion. 5) Exceptions and the principle of treating unexpected events. Exception is thrown. Multiple nested exceptions and their handling. Hierarchical breakdown of exceptions. 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, Linear structures - Vector, ArrayList, Collections, Sets - HashSet, TreeSet, Mapping - HashMap, HashSet.Iterators, creation of iterators. Browsing the collections in the cycle. 8) The principles of object-oriented design - case studies. Application design, the distribution of functional blocks. Introduction to design patterns and their use for the design of a particular application. 9) Management of major projects. Importing libraries and work with the API. Creating a custom library. Project management and integration libraries. Creating executable application. 10) Creating unit tests and test driven development. 11) Multi-threaded processing. Processes and threads. 12) Graphical user interface. Design pattern Model-View-Controller. Event-driven programming. 13) Graphical user interface. Design pattern Model-View-Controller. Event-driven programming.

Work placements

Not applicable.

Aims

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 NetBeans.

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.

Recommended optional programme components

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

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)

Recommended reading

Not applicable.

Classification of course in study plans

  • Programme EECC Bc. Bachelor's

    branch B-TLI , 1 year of study, summer semester, compulsory

  • Programme AUDIO-J Bachelor's

    branch J-AUD , 1 year of study, summer semester, elective interdisciplinary

  • Programme IBEP-T Bachelor's

    branch T-IBP , 1 year of study, summer semester, compulsory

  • Programme EEKR-CZV lifelong learning

    branch EE-FLE , 1 year of study, summer semester, compulsory

Type of course unit

 

Lecture

26 hod., optionally

Teacher / Lecturer

Syllabus

1. Algorithmization (extensions of basic knowledge from the previous semester). Definition of the task, the definition of inputs / outputs, expressing
an algorithm in meta-language, rewritting into programming language.
2. Introduction to C language. Basic types of variables, derived types, constants, arrays.
3. Expressions, arithmetic conversions, arithmetic operators, shift operators, relation operators, logical operators, bitwise operators, assignment
operators, operator priority.
4. Strings and their operators, library functions, standard library string.h.
5. Commands, compound statements, branching commands, cycles and control commands. Flowchart.
6. Function. Declaration of functions, methods of function calling, treatment events, recursion of functions.
7. Advanced data types. Union, enum, dynamic variable, pointer.
8. Objects. Lexical elements, constants and strings, classes, objects, object types.
9. User interface of Microsoft Visual C++ Studio. Graphical components.
10. Algorithms I. Finding maxima and minima, sorting.
11. Algorithms II. Programming with arrays, matrices operations.
12. Algorithms III. Programming with files in Windows.
13. Algorithms IV. Database systems. Records, sorting, searching, statistics. Linking of databases.

Exercise in computer lab

26 hod., compulsory

Teacher / Lecturer

Syllabus

1. Algorithmization (extensions of basic knowledge from the previous semester). Definition of the task, the definition of inputs / outputs, expressing
an algorithm in meta-language, rewritting into programming language.
2. Introduction to C language. Basic types of variables, derived types, constants, arrays.
3. Expressions, arithmetic conversions, arithmetic operators, shift operators, relation operators, logical operators, bitwise operators, assignment
operators, operator priority.
4. Strings and their operators, library functions, standard library string.h.
5. Commands, compound statements, branching commands, cycles and control commands. Flowchart.
6. Function. Declaration of functions, methods of function calling, treatment events, recursion of functions.
7. Advanced data types. Union, enum, dynamic variable, pointer.
8. Objects. Lexical elements, constants and strings, classes, objects, object types.
9. User interface of Microsoft Visual C++ Studio. Graphical components.
10. Algorithms I. Finding maxima and minima, sorting.
11. Algorithms II. Programming with arrays, matrices operations.
12. Algorithms III. Programming with files in Windows.
13. Algorithms IV. Database systems. Records, sorting, searching, statistics. Linking of databases.