CS701 : Software Practice and Experience Laboratory 2003-2004


Welcome to the course homepage. Your course instructor is Uday Khedker and TA's are Aditya Kanade, Amey Karkare, Bageshri Sathe, and Satwik Hebbar.

Lecture Schedule

  1. Introductory lecture at 2:00 on Friday, 25 July 2003.
  2. Lecture on LaTeX was held on Friday 1 August 2003. Examples and slides used in the lecture are available here.
  3. There will be no lecture on Friday 8 August (Convocation Day) and Friday 15 August (Independence Day). Next lecture will be on Friday 22 August. AWK and PSTricks examples used in the lecture are available.
  4. Amey Karkare will cover CVS and Coding Guidelines in the lecture on Friday, 29 August. Please go through the coding guidelines developed by him before the lecture and come prepared with questions/objections/suggestions. Three best questions/objections/suggestions will fetch extra credit (in form of marks added to the total marks received in the course) to the person raising them. CVS tutorial 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).
    • All hyperlinks (except for the images) should be relative hyperlinks.
    • A few images (kept on in your public_html directory in your login) linked through an absolute hyperlink.
    • Numbered, unordered, and description lists.
    • Table with header, footer, and caption.
    • Navigation bar included using either frames or 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 any kind of composer is strictly prohibited.

    Submission Deadline :  Sunday, 3 August 2003.

    Mode of Submission :   Please follow the following steps :

    • Combine the multiple files into a tarred gzipped (.tgz) file. For more details see the man page by giving the command "man tar".
    • Mail this single file to cs701@cse.iitb.ac.in with the subject "Homepage Assignment".
    • Keep all your files in the directory "public_html" in your home directory.

    Marks for This Assignement.

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

    This is a also an individual project. 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 is the group number allocated for your semester long project.

    • The names of all members of your project group should appear as names of authors with email addresss appearing below each name. Your name should appear first in the list with a footnote attached to your name indicating that you are the one who is making the submission. The rest of the document should have only your information.

    • The first section should be titled "General Information" and should provide the information (for you only) in tabular form
      • 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.
      • Experience, if any. This should be in a tabular form indicating the period(s) and the name of the organisation(s).
      • Broad areas of interest.


    • The second section should be titled "Projects Done in Past". As the name suggests this section should have a brief description of the projects done by you. Create separate subsections for each year of your B.E./B.Tech. If there are any projects done by you in your employment period, they should be in the last subsection.

      Each project should be described in terms of an itemized list containing title, overall project goals, your role, technologies used etc. If a project report was prepared (for instance for B.E./B.Tech. degree project) a suitable reference should appear in the bibliography with a citation appearing in the project description.

    • 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 (choose any interesting 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". Choose any directed graph with a unique entry node, a unique exit node, at least 8 nodes, at least 16 edges, at last 3 distinct cycles (which may overlap but not coincide fully)

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

      Submission Deadline :  Thursday, 14 August 2003.

      • Combine all files into a tarred gzipped (.tgz) file. For more details see the man page by giving the command "man tar".
      • Mail this single file to cs701@cse.iitb.ac.in with the subject "LaTeX Assignment".

      Submissions without a Makefile (with RCS commands) will receive negative credit.

      Marks for This Assignement.

  3. Shell, AWK, PSTricks Assignment. This is a group assignment. Your groups have been formed.

    AWK and PSTricks examples used in the lecture are available. The PSTricks manual is also available.

    Write a shell script (using bash) with following functionalties.

    • It should accept list of yacc specification files with names as filename.mailid on the command line. (Decide whose mailid from your group is to be used here and use the same mailid consistently.)
    • Process each input file with "yacc -v filename" to generate a y.output file. The format of the y.output file may differ for different versions of yacc. For ease of evaluation, you are required to use yacc in bhim machine (i.e. do this assginment on bhim).
    • Change y.output to filename.output.
    • Write an AWK program and invoke it from within the shell scipt. This program should read the textual representation of parser from filename.output file and
      • Generate filename_table.tex file containing Parsing Table extracted from filename.output file. Use longtable environment (you'll have to get package longtable for this purpose.)
      • Generate filename_diagram.tex file containing the Transition Diagram of parsing action with different types of edges for different actions (like Shift action, Goto Action) with the nodes labeled by state number. The edges are to be appropriately labelled with the symbol on which this transition is being made. The diagram is to be drawn using PsTricks.
    • Generate filename_table.ps and filename_diagram.ps files.
    • Print list of ps files generated.
    • Error handling: Display appropriate error messages if
      • A wrong filename extension is given
      • yacc, LaTeX, dvips, awk or any other program invoked from within the shell gives error for an input file
      Continue with the rest of the input.
    • If command line option --help is given or no argument is supplied to the shell script, display usage.


    Submission Deadline :  Friday, 5 September 2003.

    Mail your submission to cs701@cse.iitb.ac.in with the subject "AWK Assignment". Follow the submission guidelines to get positive non-zero marks.

  4. Details of Assignment No. 4 Deadline : 14 October 2003.

  5. Small web based collaboration utility

    Implement a small web based collaboration utility using Java Servlets and JDBC accessing a database. Use Tomcat server in your account. Create at least two tables in the backend database manually and support the following functionalities :

    • A new user should be able to sign up by giving Login Name and Password. Store the login names and passwords of users in an SQL table in backend.
    • A registered user should be able to log in with his/her login name and password.
    • Every login account should have links to view list of tables (created in earlier) and to manipulate the tables. For each table support the following operations :
      • View contents of a table
      • Insert a row into a table
      • Delete a row from a table, provided the row was added earlier by the same user.
    • User should be able to logout and should not be able to access the earlier pages after that. Use sessions for this.

    Some details and examples will be made available shortly. Project groups and the machines on each group is supposed to work (so that one machine is not overloaded with so many tomcat server running simultaneously) will also be announced shortly.

    Submission Deadline :  Thursday, 30 October 2003.

    Back to top of the page

    Back to main page

    Last updated on 16 Oct 2003.