CS701 : Software Practice and Experience Laboratory 2002-2003


Welcome to the course homepage. Your course instructor is Uday Khedker and TA's are Amit Soni, Mukund Agarwal and Neha Adkar.


Announcements

Suggested reading material

There are several documents and tutorials available on the internet. You could begin with the ones available locally. Right now no specific reading material is suggested. Some general reading material can be found here

Lecture Schedule

  1. Introductory lecture was held that at 2:00 on Friday, 26 July 2002.
  2. Lecture on Make, RCS, and LaTeX on Friday, 3 August 2002.
  3. Lecture on AWK and SED on Monday, 19 August 2002. The programs developed in the lecture can be downloaded.
  4. Another lecture on AWK for discussing some advanced features was held on 23 August 2002. The AWK program discussed in the lecture can be downloaded.

Sharing Code with Group Members

As per the policy of the department, sharing your passwords with anybody is strictly forbidden. This excludes the possibility of giving your password to your partner for an assignement. However, sharing code for group assignments is a genuine need. In order to share code without violating the department policy, you can use the rhosts/rlogin commands to let your partner log into your account without needing your password. For this you need to follow these steps :
  1. Create a file called ".rhosts"

  2. If the name of your partner is partnername and the name of the machine from where he/she would log in is pmachine, create the following entry in the file .rhosts

    pmachine.cse.iitb.ac.in partnername

  3. If the name of the machine with the account you want to share is ymachine, then partnername can log into your account on ymachine by giving the command

    rlogin ymachine.cse.iitb.ac.in -l yourname

  4. By this arrangement your partner get a complete access to your account and he/she can do literally anything like read/delete your mails, send mails/post news in your name, delete your files etc. except change the password; with password sharing, even that is possible. So use this facility carefully and with full responsibility. No one other than you and your partner will be responsible if anything happens to/with your account. If you think this is too much of a risk, you should share files through mails.

  5. Since a group is valid for only one assignment, do not forget to remove the entry at the end of the assignment.
In case of any difficulty, please see the manpages.

Assignments

  1. Design your homepage.

    It should include
    • more than one html file,
    • an externally linked CSS style specification, (Font size changes using CSS only)
    • an absolute and a relative hyperlink,
    • a few images
    • numbered, unordered, and description lists,
    • table with header, footer, and caption,
    • navigation bar included using PHP into each page,

    It should be possible to change color and font of section headers as well as the color of the navigation bar by changing just one line in the style file.
    Use of netscape composer is strictly prohibited.

    Submission Deadline :  Sunday, 4 August 2001.

    Mode of Submission :   Please follow the following steps :

    • Combine the multiple files into a single file by using the command "shar". For more details see the man page by giving the command "man shar".
    • Mail this single file to uday@cse.iitb.ac.in with the subject "cs701 submission".
    • Keep all your files in the directory "public_html" in your home directory.


    Marks for this assignment.

  2. LaTeX (The files used in the lectures can be downloaded. )

    This is a group project to be done in groups of two. You have to design a document providing the following details.

    • The title of the document should be "LaTeX Submission of Group Number group_id" where group_id will be supplied to you after you mail me the names and the roll number of the members of your group. ( The subject header of the mail should be "CS701 Group").

    • Your names should appear as names of authors. Your email addresss should appear below your names.

    • The first section should be titled "General Information" and should provide the information in tabular form (in two separate columns for each member)
      • Name
      • Roll Number
      • Data of birth
      • Sex
      • Academic Performance in a tabular form different rows for X, XII, B.E.(Ist), B.E.(II), B.E.(III), B.E.(Final), and GATE. There should be separate columns for Year, School/College, and Result. Note that this table should be a part of the outer table.
      • Experience, if any. This should be in a tabular indicating the period(s) and the name of the organisation(s).
      • Broad areas of interest.


    • The second section should be titled "Statement of Purpose" which will have two subsections, one each for each member (title being the name of the member). Each subsection should contains an itemized list describing the member's motivations for studying Computer Science & Engg., reasons for pursuing M.Tech., reasons for choosing IIT Bombay for M.Tech., and career goals.

    • The third section should contain an "eps" picture of a graph plotted using "gnuplot" for the values of some function of a single variable. The title of the section should be the name of the function (you can choose any interest non-linear function). You should include an equation defining the function as a table containing the data values which have been used for drawing the graph.
      You should cite the source from which you have taken the function and the reference should appear in the bibliography (created using bibtex).

    • The fourth section should contain an "eps" picture of a graph (consisting of nodes and edges) drawn using "dot". You will be informed about the graph you have to draw after you form your group and let me know.
      You should cite the source of the graph and the reference should appear in the bibliography (created using bibtex).


    Use of a Makefile (with RCS commands) for creating the postscript file is compulsory.

    Submission Deadline :  Sunday, 18 August 2002.

    Mode of Submission :  
    Combine all the source (including the makefile) into a single file by using the command "shar". Mail the file to me with subject header "CS701 LaTeX assignment".
    Submissions without a Makefile (with RCS commands) will receive negative credit.

    Marks for this assignment.

  3. AWK. (The programs developed in the lecture can be downloaded. ) More advanced AWK program discussed in the lecture on 23 August 2002 can also be downloaded.

    Process a mailbox to create a table of contents and separate the text corresponding to the body of each mail.

    • The table of contents should have the following information : From, To, Date, and Subject. Each entry in the table should be assigned a unique serial number.

    • The text corresponding to the body of a mail should be stored as a separate gzipped file in a directory called MYMAIL. You can use a suitable naming convention to map the serial number of a mail to the file storing its text.

    • Your program should take the name of the mail file on command line and produce (on standard output) a screenful of table of contents.

      • The user should be able to navigate up and down in the table of contents by giving options for Show Next Page and Show Previous Page.
      • User should be able to see a particular mail by keying in its serial number. (This number should be restricted to the numbers currently displayed on the screen.) When the user selects this option, your program should display the body of the text (a screenful, at a time) with navitation facilities Show Next Page and Show Previous Page. The third option should be to Return to table of contents.
      • The last option should be Quit.

    Submission Deadline :  Saturday, 31 August 2002.

    Mode of Submission :  
    Combine all files into a single file by using the command "shar". Mail the file to me with subject header "CS701 AWK assignment".

    Marks for this assignment.

  4. Building a GUI using Java AWT

    Build a GUI based front end for assignemnt the AWK assignment. A sample program Java program for a GUI can be can be downloaded

    Mukund Agarawal will be available on Monday and Tuesday in specified hours for any clarifications. The CR Sandeep Deshmukh should fix up a time with him. If many of you need an introductory lecture on Java, do let me know the headcount ASAP through Sandeep.

    You have to form new groups for this assignment.

    Submission Deadline :  Sunday, 8 September 2002.

  5. Implement a browsing service for a book store using Java servlets and JDBC. Use Tomcat server in your account on bhim.

    You can download the Tomcat server, Servlet examples used in the class, Oracle driver for JDBC, and JDBC examples used in the class.

    • Choose some four categories and provide a navigation bar for selecting them.

    • The description about each book such as book-title, author, publisher, price, year-of-print, category etc should be stored in the back-end database. These details should be fetched from the database thorough JDBC and should be displayed to the user on a request.

    • After selecting a category a list of all the books in that category should be displayed

    • User should also be able to search for books by specifying the author/publisher/book title etc.

    • While browsing the books page-wise, the 'next' and 'prev' links should be enabled/disabled depending on whether the page is first/last/middle page.

    • Implement an administrator's interface through which the administrator should be able to add/remove the books from the store.

    Form new groups of two.

    Submission Deadline :  Monday, 7 October 2002.

  6. Display for mathematical equations.

    The aim is to parse a given typeset text and typeset command which would be a mathematical equation as written in latex and then to display the equation using Java AWT/Swing.

    Following support has to provided.

    • Support for the basic operators +,-,/,*.
    • Support for fractions where \frac{e1}{e2} represents the fraction with numerator expression e1 and the denominator expression e2. This should be displayed by putting the numerator above a horizontal line and the denominator, below the horizontal line.
    • e1/e1 should be displayed by putting the numerator and the denominator in the same line and by separating them by a /.
    • Representing \sqrt function of latex.
    • Latex like support for superscripts(^) and subscripts(_). Eg. expressions like x_{e1}^{e2} should be well parsed. Note that the subscripts and superscripts are full expressions.
    • Parantheses : The expressions can be delimited by parantheses to specify the order of evaluation.

    Assume standard precedences and associativitis.

    Use CUP for constructing the parser.

    You can download the calculator programs discussed in the lecture.

    Form new groups of two.

    Submission Deadline :  Saturday, 26 October 2002. Mail your submission with the subject header "Equation Display".

  7. A time logging system

    Implement a service which maintains a weekly log of the amount of time spent per student for different subjects. The student logs in every week and provides the necessary information. If a student fails to do so, the system provides an option to remind the student through mail.

    Following features should be supported.

    • An interface for the student.
      • Should involve student authentication,
      • GUI to allow student to provide information regarding the courses he/she has taken.
      • GUI to add the weekly information in the database. This information should be in the form of a table with the following columns
        1. Course
        2. Date From
        3. Date To
        4. Hours spent in self study
        5. Hours spent in programing
        Columns 1,2 and 3 to be automatically provided by the system, column 4, 5 is to be filled in by the student This view is the private view of the student, i.e. it cannot be seen by anyone else.
      • GUI to view his/her own private information provided so far.
      • Apart from this view, a GUI to view the summarized information per subject. This is the public view which provides the class average for each course.
        1. Course
        2. Hours spent in self study
        3. Hours spent in programing
    • An interface for the Administrator.
      • Should also be authenticated.
      • The system should provide a list of students who have not submitted their weekly information.
      • A "send reminder" option should be provided per student, which can be used to send a mail reminding the student to give his/her information.
    • All sessions should be properly destroyed. Once a user/ sysad logs out, it should not be possible to use the corresponding interface by pressing the back button of the browser. Also it should not be possible to directly reach any UI by directly typing the URL and comlpetely bypassing the login screen. The passwd MUST be properly authenticated at the login screen.
    • There will be 3 tables per user.
      • For Authentiation (Userid/ passwd)
      • For maintaining list of subjects per student (Userid/ Subject1/ Subject2/ Subject3/ Subject4)
      • For weekly log (Userid/ Subject/ Start Date/ End Date/ Time for Studying/ Time for Prg Assgn)

    Form new groups of two.

    Submission Deadline : Sunday 1 Dec. 11:59 p.m.

    For submission, send mail with subject header "cs701 Submission".

    Viva's will begin on Monda 2 Dec. 2002 at 10:00. A sign up sheet will be available with your CR.

Back to top of the page

Back to main page

Last updated on 11 December 2002.