Ви переглядаєте архівну версію офіційного сайту НУЛП (2005-2020р.р.). Актуальна версія: https://lpnu.ua

Functional Programming

Major: Computer Sciences
Code of Subject: 6.122.04.E.154
Credits: 4
Department: Artificial Intelligence Systems
Lecturer: Osypov M.
Semester: 3 семестр
Mode of Study: денна
Learning outcomes:
know:
? software design and development methods;
? approaches to assessing software development efforts;
be able:
? Design software architecture and design using tools
visual modeling and documentation;
? have the logic of a functional approach;
? Evaluate software development efforts and present visually
evaluation results;
Required prior and related subjects:
Algoritmozation and programming
Discreet mathematics
Summary of the subject:
Imperative programming paradigm. Functional programming paradigm. Model of substitution. REPL, Main Predicates, Function Definition: Interactive console REPL. Scala's major predicates. Function definition. Clean features. Side effects. Scala Data Structures: Logical and physical data structure. Internal representation of symbols, numbers, functions. Distribution of areas data. Point pair. Building immutable lists. Using recursion in functional programming: Higher order functions. Object-Oriented Scala: Object Systems. Imitation. Polymorphism and variability of Scala types. Covariance, countervariance and invariance of types. Polymorphic types in the class hierarchy. Pattern-matching and pattern recognition: Comparison conditions. Pattern-matching and pattern recognition. Using mapping variables. Recognition of structures. Implicit Scala constructs: Implicit options, extensions, and decompositions. Programming Methods and Systems: Programming Methods and Styles. Productive programming: Use productive programming when using expert systems. User Interface. Inference machine. Development of an arbitrary simple language interpreter: Metaprogramming. Multiple expressions as a program. Search in depth. Interface. Construction of a tree of internal representation
Recommended Books:
1. Programing in Scala 3rd ed, Martin Odersky
2. Scala for the Impatient 2nd ed, Cay Horstmann
3. Programming Scala, 2nd ed, Dean Wampler
4. Functional Programming in Scala, Paul Chiusano
Assessment methods and criteria:
50 - labs
50 - exam