Notice
- [Apr 30, 2012]: New!
Solutions to all the Assignments (except 6) are now posted online.
- [Apr 22, 2012]: Assignment 6 updated with pointers
to graphics references.
- [Apr 16, 2012]: Assignment 6 is Out!.
Due Date: Monday April 30, 11:50 pm.
- [Apr 1, 2012]: Assignment 5 is Out!.
Due Date: Sunday April 15, 11:50 pm.
- [Mar 10, 2012]: Assignment 4 (Part B) is Out!.
Due Date: Tuesday Mar 20, 11:50 pm.
- [Mar 1, 2012]: New due date for Assignment 4 (Part A) is Monday March 12, 11:50 pm.
- [Feb 29, 2012]: Assignment 4 (Part A) is Out!.
This assignment will have another part coming up. The whole assignment is due on Sunday March 11, 11:50 pm.
- [Feb 10, 2012]: Assignment 3 is Out!. Due Date: Sunday February 26, 11:50 pm.
- Solutions to the First Two Assignments are now posted online.
- Practice Questions for Minor 1 are now posted online.
- Assignment 2 is Out!. Due Date: Wednesday February 1, 11:55 pm.
- Assignment 1 is Out!. Due date is now Tuesday January 24, 11:55 pm.
- All mails to the course instructors/TAs MUST have CSL102 as the subject.
- Most of the reading material in this course will be available in
PDF formats. To view PDF files you may download Adobe Acrobat Reader.
Class Mailing List
The class mailing list is csl102 [at] courses.iitd.ac.in. Any annoucements about the class
will be made on this list. Make sure you are subscribed to it.
Miscellaneous
Click here to see what the Courses of Study booklet has to say.
CSL102: Introduction to Computer Science is intended for
First Year B. Tech. students with some prior elementary background in
programming. It has a (baby) sister course called CSL101: Introduction to
Computers and Programming which is intended for the absolutely
uninitiated. One of CS101 or CSL102 is compulsory for all entry
level B. Tech. students at IITD.
The course CSL102 addresses on the following issues:
- Problem formulation in a precise and concise fashion and independent
of language considerations.
- The design of an algorithm from the problem specification --
its correctness and analysis of its efficiency.
- The intermediate steps in the design of a program from an algorithm
through a process of step-wise refinement. Language dependent
considerations may be used in this process, but not elsewhere.
The emphasis throughout the course is in the analysis required while
designing correct and efficient algorithms. The course is intended to
teach a student a systematic process of design - beginning with problem
formulation from an informal specification, through convincing arguments
to algorithms, the analysis of their correctness and efficiency, and
finally arriving at programs through a process of step-wise refinement.
The first part of the course introduces the basics of the functional and
imperative models of computation, recursive and iterative processes,
and the basics of programming using higher-order functions.
The second part of the course introduces data-directed programming. It
emphasizes on programming with records, lists, trees, arrays and
developing abstract data types.
The third part of the course addresses the issues in design and analysis
of simple algorithms. Examples are taken from Divide and conquer, Backtracking,
Numerical algorithms, Randomized algorithms and Geometric algorithms.
The language used for the programming component of the course will be
Python.
Elementary knowledge of programming. Typically this course is recommended for
students with Computer Science as a subject in High School.
Primary references:
Other references:
- Python tutorial
- Python Programming: An Introduction to Computer Science
by John Zelle. Includes a downloadable graphics package.
- Unix tutorial for beginners
- How to solve it by Computer by R. J. Dromey, Prentice-Hall India EEE Series.
- Structure and Interpretation of Computer Programs by
Harold Abelson and Gerald Sussman with Julie Sussman, MIT Press, 1985.
Solutions
- Put all your files in a directory.
- Name the directory with your name and entry number e.g. nisha_jain_2009CSZ893.
- Tar the folder using the command: "tar -cvf nisha_jain_2009CSZ893.tar nisha_jain_2009CSZ893"
- Go to the Moodle Page.
- Login with your LDAP user name and password.
- Go to the CSL102 homepage.
- Go to the week in which assignment is due.
- Click on the assignment link to submit.
- NOTE:Once you send your assignment for marking, the system will not allow you to change the submission.
-
The students of CSL102 are required to learn the usage of Linux, a Unix-like operating system. All the desktop machines
to be used for this course have Linux installed on them. You can check out a
Unix tutorial for beginners.
-
The native editor on any UNIX system is vi. It is imperative
to learn how to use this editor. Download tutor.vi. Typing in the command
``vi tutor.vi'' at the UNIX prompt will take you through an interactive tutorial lesson on
the usage of vi.
-
The UNIX operating system supports online man pages. For example,
one can access the `vi' manual by typing in the command `man vi'. You
can check for a concept using `man -k'. For example, you can check
for Java using the command `man -k java'. Please use `man'
liberally, and definitely before asking anything to the teaching assistants and
system administrators, or risk a reply like ``read the fine manuals''.
Grading Policy:
Minor I - 15%;
Minor II - 15%;
Major - 35%;
Quizzes (2) - 8%;
Programming Assignments - 27%;
The riot act:
As per the Institute regulations, an ``A'' grade will be awarded
only over 80% and no student with less than 30% will be given
a passing grade.
An ``I'' grade will be awarded only in the case of an illness
during the major exam. A make-up exam will
be scheduled at the earliest, and the ``I'' grade will be converted as soon
as possible. However, please do your best to ensure that you donot break
a leg or otherwise fall ill during examinations. Repeat examinations are
harder by tradition.
Other policies:
- Attendance:
The institute requires a mandatory 75% attendance for all students,
which includes time lost due to illness.
However this course will require 100% attendance. Be warned that
it will be difficult to make up if you miss classes.
- Illness:
In sickness or ill-health, a Medical Certificate from the
Institute Sick Bay, or a doctor from an Institute-recognised
hospital is necessary, especially if you request for a
make-up test. Only in the case of serious
illnesses will I consider giving an extension
on assignments.
- Make-up Tests:
Make-up tests (minor or major exams only) will be given only when
the student furnishes a valid documentation of illness
for a period including the day of the exam.
- Late policy:
Normally, We will not consider any assignments turned in
late. In cases of illness We may consider giving
an extension, provided the student informs us as soon as possible.
- Honor Code: Assignments must be carried out individually,
unless otherwise stated explicitly by the instructors. You are free to discuss with others, but
the code that you produce must be "your own". Cheating/Copying may result in a fail grade
regardless of the
performance.