Course
code CS449
credit_hours 3
title Functional Programming
arbic title
prequisites CS445
credit hours 3
Description/Outcomes 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.
arabic Description/Outcomes
objectives 1. Understand basic Functional programming techniques.
2. Design programs using types.
3. Develop programs using mathematical techniques for verification and analysis.
4. Use of abstract types and modules to structure code.
5. Exploit parallelism in applications.
arabic objectives
ref. books 1- Pratt and Zelkowitz, Programming Languages: Design and Implementation, 4th Edition, Prentice Hall.
2- R. Sebesta, Concepts of Programming Language, 10th Edition, Addison-Wesley.
3- Ullman, Elements of ML Programming, ML97 Edition, 2nd Edition, Prentice Hall.
arabic ref. books
textbook Thompson S., Haskell: The Craft of Functional Programming, Addison-Wesley
arabic textbook
objective set
content set
course file 530_CS449_CS449.pdf
Course Content
content serial Description