Study program: 122 Computer Science
Degree: Bachelor
Type of module: lectures, labs
Lecturer: Senior Lecturer Vyacheslav Grebenyuk / Старший викладач Вʼячеслав Гребенюк
Language: Ukrainian & English
Credit Points: 5 ECTS
Description:
Previously studied disciplines: Discrete Mathematics; Algorithmization and Programming; Theory of Algorithms. Annotation and Content of the Discipline The purpose of the course is to familiarize students with the functional approach to programming and the basics of programming in Scala. The course consists of: Content Module 1. Programming Paradigms Topic 1. Elements of Programming Strategies and halting computations. Conditional actions and value definitions. Example: Newton's method for square roots. Blocks and lexical boundaries. Tail recursion. Topic 2. Functions Higher-order functions. Currying. Example: Finding fixed points. Scala syntax overview. Functions and data. More fun with Rational numbers. Computations and operators. Topic 3. Classes Class hierarchies. How classes are organized. Polymorphism. Content Module 2. Complex Elements of Functional Programming Topic 4. Objects Everywhere Functions as objects. Subtypes and generics. Exceptions. Decomposition. Pattern matching. Topic 5. Lists More functions on lists. Pairs and tuples. Implicit parameters. Higher-order functions on lists. List reduction. Understanding Concat. Larger equivalent proof for lists. Topic 6. Other Collections Combinatorial search and For-expressions. Example of combinatorial search. Maps.
Метою курсу є ознайомлення студентів з функціональним підходом до програмування та основами програмування мовою Scala. Курс складається з: Змістовий модуль 1. Парадигми програмування Тема 1. Елементи програмування Стратегії та зупинка обчислень. Умовні дії та визначення значень. Приклад: квадратний корінь методом Н'ютона. Блоки та лексичні межі. Хвостова рекурсія. Тема 2. Функції Функції вищих порядків. Каррінг. Приклад: Пошук фіксованих точок. Резюме синтаксису Scala. Функції та дані. Більше задоволення від Раціональних чисел. Обчислення та оператори. Тема 3. Класи Ієрархії класів. Як організовано класи. Поліморфізм. Змістовий модуль 2. Складні елементи функціонального програмування Тема 4. Об'єкти всюди Функції як об'єкти. Підтипи та генерики. Відхилення. Розкладання. Відповідність зразків. Тема 5. Списки Більше функцій у списках. Пари і кортежі. Неявні параметри. Функції вищого порядку на списках. Зменшення списків. Розуміння щодо Concat. Більший еквівалентний доказ для списків. Тема 6. Інші колекції Комбінаторний пошук і For-вирази. Приклад комбінаторного пошуку. Карти.