as of 7/2/2022 |
FUNCTIONAL PROGRAMMING |
Country - Partner Institution - Programs: | Netherlands - Utrecht University - 'Utrecht Univ.' |
UC Course Subject | Computer Science |
Number & Suffix: | 102 |
Full UC Title: | FUNCTIONAL PROGRAMMING |
Transcript Title: | FUNCTIONAL PROGRAM |
UC QTR Units - Division: | 6.0 - Upper Division |
Course Description: | This course covers functional programming language, where the program consists of function definitions, similar to those given in mathematics. Writing programs in a functional language involves a different way of thinking, and that is what this course is about. In this course, students solve problems using the functional programming language Haskell. This language provides numerous ways of abstraction, resulting in remarkably compact programs. Many details, like the order of computation or the allocation of memory, need not be specified. Emphasis is on the "what", rather than the "how". Also, Haskell has an extensive type system, many elements of which evolve into imperative languages. Recursion is the functional equivalent of loop statements (for, while) in imperative languages. It is the way to express functions that traverse a data structure, or do repeated calculations. Because functional programs have no variables that change during program execution, programs can be easily reasoned. Students are instructed on how to systematically construct and transform programs, and how to prove properties of it. These properties can be used to assert program correctness, or to rewrite programs. For recursive programs, this involves inductive proofs. |
Language of Instruction: | English |
Partner Title: | FUNCTIONAL PROGRAMMING |
Partner University Department: | Computing Sciences |
Partner University Course Number: | INFOFP |