principles of functional programming languages such as use of immutable data, declerative programming model, flow control using functional calls and recursions, basic parallel programming concepts; ...