Learn Haskell Programming | Functional Programming Course | CMI
Course Details
| Exam Registration | 131 |
|---|---|
| Course Status | Ongoing |
| Course Type | Elective |
| Language | English |
| Duration | 12 weeks |
| Categories | Computer Science and Engineering |
| Credit Points | 3 |
| Level | Undergraduate/Postgraduate |
| Start Date | 19 Jan 2026 |
| End Date | 10 Apr 2026 |
| Enrollment Ends | 02 Feb 2026 |
| Exam Registration Ends | 20 Feb 2026 |
| Exam Date | 24 Apr 2026 IST |
| NCrF Level | 4.5 — 8.0 |
Introduction To Haskell Programming: A 12-Week Journey into Functional Thinking
Are you ready to fundamentally change how you think about programming? The Introduction to Haskell Programming course offers a deep dive into the elegant world of functional programming, guided by an expert in the field. This 12-week program, designed for undergraduates, postgraduates, and curious professionals, is more than just learning a new language—it's about adopting a new paradigm for solving computational problems.
Why Learn Haskell?
Haskell is a purely functional programming language that stands apart from mainstream imperative languages like Java, C, or Python. Its design emphasizes mathematical precision, immutability, and declarative style. While the syntax may seem different initially, the concepts you learn—such as higher-order functions, lazy evaluation, and strong static typing—are increasingly influential and are being incorporated into major languages. Learning Haskell allows you to transcribe logical and mathematical solutions into code directly and elegantly, minimizing error-prone "bookkeeping" code.
Meet Your Instructor: Prof. S. P Suresh
This course is taught by Prof. S. P Suresh, an Associate Professor at the prestigious Chennai Mathematical Institute (CMI) since 2004. With a PhD from The Institute of Mathematical Sciences and a strong research background in logic in computer science, formal methods for security, and proof theory, Prof. Suresh brings a rigorous, foundational perspective to teaching programming. His expertise ensures that you learn not just the "how" of Haskell, but the profound "why" behind its design principles.
Who Is This Course For?
- Undergraduate/Graduate Students wishing to learn introductory programming and algorithmic problem-solving from a fresh, formal perspective.
- Professionals & Experienced Programmers looking to expand their skill set by mastering the concepts of functional programming, which are becoming essential in modern software development.
- Anyone interested in understanding computation through the lens of mathematical logic and elegance.
Course Layout: A 12-Week Roadmap
The course is meticulously structured to build your knowledge from the ground up, culminating in advanced topics. Here’s a detailed weekly breakdown:
| Week | Topics Covered |
|---|---|
| Week 1-2 | Introduction, GHCi, defining functions (pattern matching, guards), recursion. |
| Week 3-4 | Lists (recursion, comprehension), foundational data types (Char, String, Maybe, Either). |
| Week 5-6 | Higher-order functions (map, filter, fold), polymorphism, user-defined data types, laziness. |
| Week 7 | Input/Output basics using the `IO` monad and `do` notation. |
| Week 8-9 | Algorithm efficiency, complexity analysis, sorting algorithms. |
| Week 10-11 | Abstract Data Types (ADTs) and Data Structures: Stacks, Queues, Binary Search Trees, AVL Trees, Heaps, Red-Black Trees. |
| Week 12 | Advanced Concepts: Introduction to Monads (Maybe, List, State) and imperative programming styles within Haskell (ST monad). |
Key Learning Outcomes
By the end of this course, you will have a solid foundation in both the theory and practice of functional programming with Haskell. Specifically, you will be able to:
- Write clean, declarative Haskell programs using recursion and higher-order functions.
- Design and implement custom data types and type classes.
- Leverage Haskell's lazy evaluation for efficient algorithms, as demonstrated in graph search problems like BFS and DFS.
- Analyze the time and space complexity of your programs.
- Implement fundamental data structures like trees and heaps in a functional style.
- Understand the core concept of monads, which manage side-effects like I/O in a pure functional setting.
- Appreciate how functional programming principles can improve code in any language.
Start Your Functional Programming Journey
The Introduction to Haskell Programming course is a unique opportunity to learn from a leading academic at the Chennai Mathematical Institute. Whether you aim to become a better problem-solver, understand the foundations of modern programming languages, or simply explore a beautiful and powerful way to write software, this 12-week journey will equip you with invaluable skills and a new perspective on code. Embrace the elegance of functional thinking and unlock a new dimension of your programming potential.
Enroll Now →