IT619: Foundation Lab

A good workman is known by his tools.


Sunita Sarawagi


Instructor Office Hours:

Fridays: 4 to 5 PM or after class
Tuesdays:3 to 4 PM
At other times by appointment


Assignment 2 out.

The goal of this lab is to give students experience with tools and techniques needed for programming, document processing and other general software-related tasks. The best way to learn a tool is by using it. Therefore the course will be based almost entirely on software assignments. Lectures will be brief and only cover concepts on selected topics to get you started. You will have to get into the habit of filling in all details through manuals. As an old Unix adage goes: "God helps those who help themselves, computer helps those who read manuals" The other great source of information these days is of course the web.


Grading will be based solely on assignments. There will be a total of ten assignments. Exact weightage of each will be decided later but expect roughly equal weightage for each. All assignments will be announced on the friday class and will be due the following friday unless specified otherwise. You are expected to do your own assignments, however it is fine to discuss with your classmates.

Penalty for late submission of homeworks: 10% of full credit if one day late, 20% if less than three days late, 40% if one week late, 80% if more than one week late. In order to pass, you need to submit at least four homeworks.


Basic familarity with unix commands (like ls, grep, ps, less, more), basic c-programming and compilation, familarity with a text editor like emacs or vi/vim, email (pine or mutt or elm or outlook express), web browsing, reading news. If you do not meet these prerequisites, be sure to learn on your own as soon as possible by asking your friends and TAs. In extreme cases send me email.

Schedule (Tentative)

Topic Date Assignments
Overview of course 28 Jul Revise prerequisites mentioned above, set up your environment on your unix account
HTML -- basic features, HTML forms and CGI 4 Aug Prepare your homepage
PHP, Shell programming 11 Aug Augment home page with a CGI program and PHP scripts
Perl 18 Aug Perl assignements on pattern matching, associative arrays and file operations
More perl..Processes & networking 25 Aug Perl assignements on process control and web monitoring
Document processing: latex, bibtex, figures, graphs 8 Sept design a latex document
Programming tools: makefiles, version control, debugger, profiler, purifier, 22 Sept Assignment on makefiles
Profilers, Visual development environments 29 Sept Assignment on profilers and version control
Lex, YACC, Java programming 6 Oct
GUI development using java 13 Oct
Java servelets and applets, Database access 20 Oct


CS Documentation server