📜 ⬆️ ⬇️

Courses Computer Science Club, spring 2017


The Computer Science Club has been conducting open computer science courses for 10 years. Most of the lectures by the efforts of Lectorium recorded on video and are in the public domain. In this semester, three new courses have already been posted that were not read in the club before: “Programming with dependent types in Idris” , “Calculations on the GPU. The main approaches, architecture, optimization " , " Methods and systems for processing big data . "

Programming with dependent types in Idris



Lecturer : Vitaly N. Bragilevsky, an employee of the Institute of Mathematics, Mechanics and Computer Science of the Southern Federal University (Rostov-on-Don), a member of the Haskell 2020 Language Standardization Committee.

annotation
Idris is a pure total functional programming language with general purpose Haskell-like syntax and support for dependent types. The type system is similar to the Agda language type system. The language supports automatic proof tools comparable to Coq,
including the support of tactics, but it’s not focused on them, but is positioned as a general-purpose programming language. The objectives of its creation: “sufficient” performance, ease of managing side effects and means of implementing embedded subject-oriented languages.

The course is devoted to various aspects of programming in the Idris language: types as entities of the first class, functions on types; dependent types and dependent pattern matching; methods of proof of equality, solvability and totality; expression of relationships by means of dependent types; effects calculation
')
Materials and video course.

Calculations on the GPU. Basic approaches, architecture, optimization



Lecturer : Alexey Alexandrovich Ivakhnenko, leading expert on GPU architecture and optimization at Applied Parallel Computing LLC.

annotation
This lecture course covers the basic ways of developing software using NVIDIA graphics processors (GPUs) in parallel computing. Includes an overview of linear algebra libraries, Fourier transforms, random number generation. The process of rapid development using STL-like library Thrust.

The first half of the course includes an overview and comparison of modern processors and accelerators in various tasks, as well as the basics of the CUDA architecture and the CUDA C ++ language, which are necessary for obtaining high performance programs. The second half presents a comparison of modern NVIDIA GPU architectures, the hierarchy of memory and device caches, methods for optimizing programs and data streams. A separate item discussed the integrated development environment, debuggers and profiler.

The final lecture presents an example of interaction with the popular OpenGL computer graphics standard using the example of the numerical solution of the stationary Poisson equation.

Materials and video course.

Methods and systems for big data processing



Lecturer : Ivan Vitalyevich Puzyrevsky, a teacher at the School of Data Analysis and the Faculty of Computer Science at the Higher School of Economics, in Yandex leads one of the development teams of the platform for distributed data storage and processing of YT.

annotation
The course is devoted to methods for building big data processing systems and existing tools in this area. The goal of the course is to give an understanding of the internal structure, mechanics of work, the area of ​​applicability of existing solutions, highlight strengths and weaknesses, and teach practical skills of analyzing large amounts of information.

The lecture part of the course covers such technologies as HDFS, Hadoop MapReduce, HBase, Cassandra, Spark, Kafka, Spark Streaming, Storm. The sequence of the story repeats the history of the emergence and development of data processing technologies. In the beginning we will get acquainted with HDFS and MapReduce, analyze the main architectural solutions and limitations in the applicability of these systems (including taking into account the ten-year operating experience). Next we analyze the task of storing data by key, get acquainted with various trade-offs in building systems of the “key-value” type using the example of HBase & Cassandra. Gradually we will move on to studying the Spark device, a modern cluster data processing system. We learn the fundamental differences in batch and stream data processing, we study Kafka - a bus for data delivery with minimal delays - and Storm together with Spark Streaming - stream computing systems. In addition, we will analyze the accompanying technologies (such as ZooKeeper, Hive), which sometimes simplify life when developing applications.

The practical part of the course consists of several tasks subordinate to one end-to-end model business problem. Your main goal will be to build a contour of continuous data processing for calculating the classroom statistics of a model social network, collecting and storing user profiles, solving ad-hoc analytics tasks. The score for the practical part is formed from the correctness and stability of your decision.

Materials and video course.

Other courses of this semester


Last week, the course “Communication complexity” was completed , a video will appear soon. This weekend began the course "Expanders and their applications . " In April, the course “Machine Translation” is expected, in May - the course “Selected chapters of stream theory” , and in early June the mini course “Modern algorithms for parallel, streaming and query-based data processing” . In addition, a seminar on the complexity of Boolean functions is held throughout the semester.

At the Academic University, we encourage students who attend Computer Science club lectures - we allow the club courses to be credited (for this, of course, you need to pass an exam).

If you are interested in club lectures and you live in Petersburg or Kazan (a branch of the club operates in Kazan) - subscribe to updates on social networks or email distribution (links are on our website ) and come to lectures!

The second part .

Source: https://habr.com/ru/post/326064/


All Articles