CSL100: Introduction to Computer Science
This is the course page for CSL100: Introduction to Computer Science
, for Summer Semester, 2013-2014, being taught by
Vinay Ribeiro (vinay AT cse.iitd.ac.in) and
Parag Singla (parags AT cse.iitd.ac.in) at the
Department of Computer Science and Engineering,
IIT, New Delhi.
Class Mailing List
Material Covered in Class
Assignment Submission Instructions
Administrative Information and Grading Policy
- [Jun 30, 2014]: Assignment 5 is out! Due on Monday July 7, 12:30 pm (afternoon).
- [Jun 23, 2014]: Assignment 4 is out! Due on Monday June 30, 12:30 pm (afternoon).
- [Jun 16, 2014]: Assignment 3 is out! Due on Sunday June 22, 11:50 pm.
- [Jun 12, 2014]: Minor Exam on Friday June 13th. 10 am - 11:15 am.
- Groups 1,2,3 (Mon, Tue, Wed): V LT1.
- Groups 4,5 (Thu, Fri) - VI 301.
- [Jun 9, 2014]: Assignment 2 is out! Due on Sunday June 15, 11:50 pm.
- [May 20, 2014]: First Class on Wednesday May 21!
- All mails to the course instructors/TAs MUST have CSL100 as the subject.
- A lot 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 csl100 [at] courses.iitd.ac.in. Any annoucements about the class
will be made on this list. Make sure you are subscribed to it.
CSL100: Introduction to Computers and Programming is intended to provide
students with basic undestanding of computers and hands on experience
The course CSL100 addresses the following issues:
The course is intended to teach the students 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
- 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 language used for the programming component of the course will be
There are no prerequisites for this course.
- Python3 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.
- Investment in Fixed Deposit
- Trapezoidal rule to compute area of y = x^2
- Calculating PI using Ramanujam's summation
- Plotting an X given number of rows
- Calculating PI using Ramanujam's summation using a function for factorial
- Distance for viability of bullet train
- Binary Search
- Reversing a List
- June 9: Factorial (recursive)
- June 11: Fibonacci (recursive),
Binary Search (recursive)
- June 16: Bubble Sort
- June 18: Use of Break Statement,
Merging Two Sorted Lists
- June 19: Partition Function (QuickSort)
- June 25: Sieve of Eratosthenes,
Tower of Hanoi
- June 30: Use of Classes and File Reading/Writing
- July 2:
Stock Span problem without using stack.
Stock Span problem using a stack.
- July 3 and 7:
- Online Documentation Links:
Classes in Python,
- Name files as q1a.py, q1b.py, q2.py etc. corresponding to the question numbers they are solving.
- Put all your files in a single directory.
- Name the directory with your name and entry number e.g. chinmay_narayan_2009CSZ8188.
- Tar the folder using the command: "tar -cvf chinmay_narayan_2009CSZ8188.tar
- Go to the Moodle Page.
- Login with your LDAP user name and password.
- Go to the CSL100 homepage.
- Go to the week in which assignment is due.
- Click on the assignment link to submit.
The students of CSL100 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''.
Minor - 25%;
Assignments - 35%;
Major - 40%;
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.
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.
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
- 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 (for assignment submission):
For the first late day, 20% of the marks will be deducted. For the second
late day 40% marks will be deducted. You will get a 0 for any
late submissions beyond that. 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