This course will make you quickly write functions and solve problems using OCaml programing Language. You will learn why OCaml is a functional programming language that is described as a strongly-typed language. The course includes many code examples from the functional, imperative and objective paradigms using OCaml. The OCaml syntax includes many differences from the main stream programming languages and you will know most of them here. You will know how to understand the inferred types of the built in functions and how to use them. It include precious information about polymorphism and examples on OCaml classes-objects. It starts with the basic types and data containers with their syntax and operands. Precedence of OCaml operands and functions is highly pointed in every session. Then you will have a session one different function types. This section includes emphasis on the functions return and arguments. You will learn how to build your own version of some of the important built-in functions. Moreover, this course will show you how to use OCaml modules documentation and to read the built-in functions inferred typing. This course in intended for those who wants to Write programs in OCaml, solve problems using OCaml, understand OCaml inferred typing, Write complex OCaml functions, Learn Tips and tricks about the OCaml language and Practice OCaml functional, imperative and objective paradigms