Programming is one of the basic activities of computer scientists and a prerequisite for many other courses in computer science studies. The aim of the module "Programming, Data Structures and Algorithms" is to learn the basic concepts of imperative, procedural and object-oriented programming using the Java programming language and to present known, efficient algorithms and data structures for various, frequently occurring problems.
After completing the module, the students should be able to independently develop imperative and simple object-oriented programmes based on Java for solving smaller problems and assess the efficiency of their programmes. They should also be able to apply important algorithms and select them based on their complexity. Professional competence
The students:
describe basic concepts of imperative programming with Java
recognise imperative programming terminology and use the appropriate terms accurately in discussions
recognise basic terminology of object-oriented programming
describe what programs presented to them do
independently develop programs to solve small problems
systematically examine their own and other people's programmes for errors
use modern programme development environments to develop and test programmes
create algorithms with general design concepts (e.g. Greedy method, divide-and-conquer method)
name algorithms and data structures for solving common problems and evaluate their applicability
name problems of efficiency of algorithmic solutions of concrete problems and evaluate them
make a well-founded choice of an algorithm and a data structure for solving a concrete problem
apply the learned algorithms and data structures sensibly to given and concrete problems
Methodogical competence
The students:
solve given problems from the point of view of imperative or object-oriented programming
transfer practical experience in programme development to new tasks
Social competence
The students:
communicate the structure and mode of operation of self-developed programmes to others
present solutions to small tasks in front of groups
Self-competence
The students:
organise themselves in finding algorithmic solutions to small and medium-sized problems in computer science
incorporate the concepts of general programme design in their actions