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, ):
- The Craft of Functional Programming by Simon Thompson
- Introduction to Functional Programming using Haskell by Richard Bird
- Programming in Haskell by Graham Hutton
- Introduction to Functional Programming by Richard Bird and Philip Wadler
- Instructor's lecture notes.
- 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!!!
- Lecture 1,
Mon 4 Aug 2008, PDF
- Lecture 2,
Wed 6 Aug 2008, PDF
- Lecture 3,
Mon 11 Aug 2008, PDF
- Lecture 4,
Wed 13 Aug 2008, Text
- Lecture 5,
Mon 25 Aug 2008, Text
- Lecture 6,
Wed 27 Aug 2008, Text
- Lecture 7,
Mon 1 Sep 2008, Text
- Lecture 8,
Mon 8 Sep 2008, Text
- Lecture 9,
Wed 10 Sep 2008, Text
- Lecture 10,
Mon 15 Sep 2008, Text
- Lecture 11,
Wed 17 Sep 2008, Text
- Lecture 12,
Mon 29 Sep 2008, Text
- Lecture 13,
Mon 06 Oct 2008, Text
- Lecture 14,
Mon 13 Oct 2008, Text
- Lecture 15,
Wed 15 Oct 2008, Text
- Lecture 16,
Mon 20 Oct 2008, Text
- Lecture 17,
Wed 22 Oct 2008, Text
- Lecture 18,
Wed 29 Oct 2008, Text
- Lecture 19,
Mon 03 Nov 2008, Text
- Lecture 20,
Wed 05 Nov 2008, Text
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:
- Introduction to Algorithms by Cormen et al.
- Information Theory, Inference, and Learning Algorithms by David J. Mackay
- The C Programming Language by Kernigham & Dennis Ritchie
- Learning Python by Mark Lutz
Enjoy coding!!!!
Home
Back to courses