Introduction to Programming

Introduction to Programming is a very basic course in computer science which is compulsory for all students irrespective of their stream, namely, Mathematics & Comp. Sci. (Hons.) / Physics (Hons.). This course was taught by: Prof. Madhavan Mukund who had been the leader of the Indian IOI team since it started participation in the IOI. This basic course does not have any pre-requisite and can be done with little effort by people who does not have a background in Computer Science. Haskell, ):
  1. The Craft of Functional Programming by Simon Thompson
  2. Introduction to Functional Programming using Haskell by Richard Bird
  3. Programming in Haskell by Graham Hutton
  4. Introduction to Functional Programming by Richard Bird and Philip Wadler
  5. Instructor's lecture notes.
  6. Online archive at www.haskell.org
The evaluation was as follows:
6 Assignmnets having 50% weightage
Mid-semester Examination having 20% weightage
End-semester Examination having 30% weightage

Haskell is a easy to learn language and does not need great expertise in coding. Big recursive relations can be coded with elegance. The compiler used for compiling Haskell programs is know as GHCI or HUGS. I personaly prefer using HUGS. I use the OS Debian(Linux). Under both Ubuntu and Debian, you can install a minimal working version of GHC by running sudo aptitude install ghc6 from a shell prompt. These distros maintain a small core GHC package, which is insufficient for much practical development. However, they make a number of additional prebuilt packages available. To see a complete list of these prebuilt packages, run apt-cache search libghc6. I recommend that you install at least the mtl package, using sudo aptitude install libghc6-mtl-dev. Since you will probably want to profile the performance of your Haskell programs at some point, you should also install the ghc6-prof package.

For, Windows users, they have to download WINHUGS and open the Haskell file using that software. All Haskell files whether it is Linux or Windows must have the file extension of '.hs' e.g filename.hs. .To download WINHUGS, go to this page. Download the 14 MB package for Windows.

In all there were 22 lectures, but I do not have the e-version of the last two lectures which dealt with arrays. I am putting up the first 20 lecture notes
The 2nd and 3rd lectures are from the course that the Instructor gave to his 2006 batch. Hence, the date is given as 2006. Don't get confused. Beware of typos!!!

Exams

Assignments

Solutions to assignments


A senior of mine, Supartha Podder (M.Sc, Computer Science), gave a highly elegant solution to the wordbuilding problem of Assignment 3. The alternative solution is here .
Prof. Madhavan also gives a course in PLC (Programming Language Concepts) where the Mathematical logic behind functional programming is taught. In technical terms, it is known as the Lambda Calculus. His notes on PLC is available here

People who are interested in theoritical Comp. Sci. can read these books. They are just awesome:

  1. Introduction to Algorithms by Cormen et al.
  2. Information Theory, Inference, and Learning Algorithms by David J. Mackay
  3. The C Programming Language by Kernigham & Dennis Ritchie
  4. Learning Python by Mark Lutz


Enjoy coding!!!!


Home
Back to courses