Design of an efficient algorithm is a basic knowledge which every computer scientist should possess. This course is an introduction to algorithms for learners with at least a little programming experience. We expect that you have already done a course on data structure(CS121). It covers the common algorithms, algorithmic paradigms, and data structures used to solve these problems.
The evaluation for the course will be based on midterm test1 (weightage 20%), midterm test2 (weightage 20%), assignments (weightage 10%) and final exam (weightage 50%). There will be 2-4 assignments that will carry weightage for your final evaluation. In addition, a number of problem sheets will be given which are for your practice, and in particular, solving them will be useful for getting good marks in the exams.
This course is essentially a problem solving course, and so there will be lots of problems in the form of assignments and practice problems. Anything you hand in is assumed to be done by you on your own. If you had consulted any resource (including books, internet, or other persons), then please mention that in the work you hand in. Copying from any source without acknowledgement will result in unwanted consequences for everyone!