- Degree Bachelor
- Code: CS449
- Credit hrs: 3
- Prequisites:
The purpose of this course is to introduce the theory and practice of Functional programming (FP). The characteristic feature of FP is the emphasis on computation as evaluation. The traditional distinction between program and data characteristic of imperative programming (IP) is replaced by an emphasis on classifying expressions by types that specify their applicative behavior. Types include familiar (fixed and arbitrary precision) numeric types, tuples and records (structs), classified values (objects), inductive types such as trees, Functions with specified inputs and outputs, and commands such as input and output. Well-typed expressions are evaluated to produce values, in a manner that is guaranteed to be type-safe. Because Functional programs do not cause side-effects we can take advantage of simple mathematical principles in reasoning about applicative behavior and analyzing the runtime properties of programs.
Computer Science Program.
Thompson S., Haskell: The Craft of Functional Programming, Addison-Wesley
content serial | Description |
---|
1 | Introducing functional programming |
2 | Basic types and definitions |
3 | Data types, tuples and lists |
4 | Programming with lists |
5 | I/O in Haskell |
6 | Reasoning about programs |
7 | 7-th week exam |
8 | Generalization - patterns of computation |
9 | Higher-order functions |
10 | Overloading, type classes and type checking |
11 | Algebraic types |
12 | 12-th week exam |
13 | Abstract data types |
14 | Lazy programming |
15 | Programming with monads and Domain-Specific Languages |
16 | Final exam |
1 | Introducing functional programming |
2 | Basic types and definitions |
3 | Data types, tuples and lists |
4 | Programming with lists |
5 | I/O in Haskell |
6 | Reasoning about programs |
7 | 7-th week exam |
8 | Generalization - patterns of computation |
9 | Higher-order functions |
10 | Overloading, type classes and type checking |
11 | Algebraic types |
12 | 12-th week exam |
13 | Abstract data types |
14 | Lazy programming |
15 | Programming with monads and Domain-Specific Languages |
16 | Final exam |
Start your application