The course provides the students with working knowledge in the area of parallel systems, algorithms and programming. It concentrates on practical development of parallel codes so that the students can make effective use of the modern powerful hardware, from supercomputers to multicore notebooks, for solution of demanding tasks from various application fields. The so-called multicomputers, where the interaction of parallel processes is based on message passing, are focused on, but the specifics of shared-memory systems (symmetric multiprocessors) are discussed as well. Such a traditional techniques of parallel programming will be supplemented by an introduction to advanced technologies that were recently introduced, (e.g. GPGPU programming and parallel Matlab). Exercises are devoted to the design of parallel algorithms and their implementation in the PVM, MPI, OpenMP environment or possibly parallel Matlab, on the most powerful computer systems of VŠB-TUO/CVT, nowadays on the network of workstations Ultra with remote access to the 32-processor cluster Teri (128 cores) and to the four-processor symmetric multiprocessor Quad.