Course Information Instructor: Professor Adina Magda Florea Email: adina@cs.pub.ro Teaching Assistant: Andrei Tartareanu (andrei.tartareanu@gmail.com) Course Description Syllabus · Introduction, programming paradigms, basic concepts · Expressions, types, and functions · Lists · Name binding, recursion, iterations, and continuations · OOP in Scheme · Introduction to Haskell · Problem solving paradigms in FP Slides Grading Final exam 50% Note: You are required to have at least 6 class attendance to laboratory. No grades will be considered if you are bellow this limit!! Resources Scheme resources Almost all you want to know and find about Scheme Development and execution environment Haskell resources |
Functional programming provides a strong bridge between mathematics and software design. Functional programming languages, such as Haskell, have features which make them attractive for rapid software prototyping, mathematical manipulations, program transformation and parallel processing. In functional programming, programs are mathematical equations. This allows clear and concise programs to be written very quickly for a wide range of applications. Equally important, it allows desired properties of these programs to be formally established using straightforward proof methods. The same methods can also be used to improve their efficiency. Experience shows that once functional programming techniques have been learned, they can be used to improve the design of programs in imperative languages as well. The course provides an introduction to the principles of functional programming. It introduces fundamental concepts and associated techniques for constructing clear and concise programs. It also introduces methods for transforming them to more efficient programs. The course will provide hands on experience in the use of the modern functional programming languages such as Scheme and Haskell. |