Assignments for IT619

Mini Project: Lex, YACC, Database access and others

Due: 10 Nov 2000, (30% credit)
Form teams of six.

All submitted projects will be evaluated by the webteam and the TAs for use in the School's webpage project. The best project will get a bonus seven points. Each member of the team has to clearly identify the part of the project that he/she has developed and accordingly members of a team might landup with different grades.

A test case for this project is available at sunita@cygnus:~/archive. The root directory contains a collection of .bib files. Subdirectories under it contain several ps and pdf files. For many of these files there are entries in one or more of the .bib files. Your output will be a single XML file containing a distinct union of all the .bib entries and extracted entries from the ps/pdf files along with pointers to the source files whenever available. The XML file will be loaded on a Oracle database and made available for querying through a form-based interface. I should then be able to generate say a XML file that contains "Karmakar" as one of the authors and convert the file to .bib for inclusion in a latex document.

Assignment 7: Profilers and version control

Due: 13 Oct 2000
Form teams of two. Create a cvs repository with two modules: one under your partner's login name and one under yours. Each of you write an "inefficient" c-program for sorting records with string attributes. Commit your changes to cvs and ask your partner to check out the changes. Partner runs gprof on your program to find the main bottlenecks and removes them as much as possible. Partner checks in the changes. You check out the changed file, add comments around the changes made by the partner and check in your changes. There should thus be three versions of your program under cvs. Your sorting binary should be called "sorter" and invoked as follows.
sorter input-file numAttrs comma-seperated-attribute-list.
E.g. sorter example.txt 8 "8,3"
will sort the file example.txt consisting of eight string attributes in the order of the 8th and 3rd attribute. The input file is assumed to be comma-seperated. Make the old version of your code available as an executable "sorter.old"

Assignment 6: Makefiles

Due: 6 Oct 2000
You will be a supplied a two-level directory structure where each leaf level directory contains a collection of .cpp .h. A special "test" directory contains a collection of .txt and .out files. You need to generate a makefile in each of the leaf-level directories and a final makefile at the root level. Here is the source-tree in tar format. The makefile should have the following features: Name your file "Makefile". You are free to add other files like Makefile.rules, Makefile.win etc..but there should always be a file called "Makefile" in every directory.

Assignment 5: Latex typsetting

Due: 29 Sept 2000
Generate a latex document that looks identical to this postscript file in all respects, including margins and fontsize. The figure can be different. The submission will consist of a latex file, a .eps file for the figure you included and a bibtex file with the two bibitems. Make sure that your code compiles on Cygnus --- otherwise you get zero points.

Assignment 4

Due: 8 Sept 2000
Write a perl program that takes as argument a http URL, a string, a newsgroup name, a email address and does the following:
For ease of grading, you absolutely must follow these additional requirements: The subject lines of the news group message and the email message should contain your name. The input argument order should be exactly as specified above. Your main perl program should be called "restless.pl" and the daemon you start should be called "cantwait". For instance, you might want to run the following: perl restless "http://www.it.iitb.ernet.in/~abhi" Matheran it.announce "me@it.iitb.ernet.in". This will watch abhishek's page or a newly appearing immediate link from it for the work "Matheran".

Assignment 3

Due: 25 Aug 2000
In this assignment, grading will be based both on correctness and quality of the code. Short yet readable coding is desirable. If your code is correct you will get 70% of the credit. The rest will depend on the quality of your code.

Assignment 2

Due: 18 Aug 2000
  • Use PHP to include a common navigation bar to all your pages. Many of you who have used frames in the first assignment, can replace frames with tables and PHP includes.
  • Add a CGI script to your home page that contains at least two text input box, at least one radio button and at least one selection box. One of the text boxes should be a key. Store the entries that are submitted through the script in a ":" delimited text file. Write a shell program to do the following:

    Assignment 1

    Due: 11 Aug 2000
    Prepare your home page using html. Your home page should have the following properties: