Term Projects |
Deadline for forming teams and submitting the topic of term project is 25 Sept, 2002 |
Term project is a substantial part of the CS210 course. Please do your best to select an idea for the term project and then put in your best effort to produce a good software based on the idea. A few guidelines are given below to let you understand what is expected from you in the term project. |
Guidelines |
|
Project Ideas |
The project ideas are divided into some categories as follows. |
Text/Printing Utilities, Editors |
An HTML editor (2 persons) This can be either (almost) WYSIWYG editor. Better alternative would be an editor which will help write HTML documents by maintaining and displaying the document as a tree structure. |
Word Processor (2 persons) WYSIWYG Word processor with document formatting, printing and utilities such as spell check. |
Vector drawing package (2 persons) Like xfig. Drawing of points, lines, arrows, curves and shapes like boxes, circles, etc. Mainly for producing drawings for illustration purpose. Refer to xfig for more details. Output in ps format or jpeg, gif or bmp format. |
Pretty Source Code Printing (2 persons) Utility to format program code (C or Java) and print it to make it more readable. Can produce a PostScript file or a LaTeX file to facilitate printing on a laser printer. |
Games |
Billiards/golf game package (2 or 3
persons) Implement a Billards/Golf game to be played by two players. |
Playing card game package (2 persons) Package of 2 or more playing card games like solitaire, freecell, etc. Mostly single player games. |
Computer versus Human board games (2 or 3
persons) Implement a game like Connect-4 (Plot-4) or Othello (Reversi) for two players. The game should be playable as computer versus human. The computer should play reasonably well against a human opponent and possibly try to win. |
Simulators, Demos and Tutorials |
Simulator for Turing Machine (1 person) Given the specifications of the Turing Machine (input tape, transition table, etc), simulate the Turing Machine and show it graphically. Slow trace of the steps can be shown with a delay at each step. The specifications can be entered interactively or through GUI. |
A demonstration package for network flow
algorithms (1 or 2 persons) |
A demonstration package for B-Trees (1 or 2
persons) |
Animation based Vedic mathematics tutorial (1
or 2 persons) |
Interpreters, Translators, Converters |
jsh: A Java based shell command interpreter (1
or 2 persons) Shell command interpreter. Should be able to pipe, redirect output, etc. Background execution of commands. Shell programming support like environment variables, loops, etc. |
A Lisp/BASIC language interpreter (3
persons) Command-line and file based Interpreter for Lisp or BASIC or a similar language. Complete language is expected to be implemented. |
HTML to LaTeX converter (1 or 2
persons) Parsing HTML document, translating the structure to appropriate LaTeX document. |
LaTeX to HTML converter (1 or 2
persons) Parsing LaTeX document, translating to appropriate tags in HTML. |
Turing program generator for FSM (1
person) Graphical editor for Finite State Machine. Conversion of the FSM entered by user to a turing machine. Can be collaborated with the Turing Machine simulator project for running the Turing Machine that is generated. |
Utility Software |
Midnight Commander like utility software (1 or
2 persons) Utility using two file tree panes to transfer files to and fro between the panes. Usual file operations like create, delete, rename, move, copy, open etc should be provided. Advanced features like comparison of directories, synchronization of directories, support for ftp folders, etc. may be provided. |
File Explorer (like Microsoft Windows®
Explorer) (2 persons) Develop a file explorer similar to Windows Explorer. Icons represent files. User can click/double-click to access files. Can delete, rename, or open files. Associate the files with applications based on the filename and extensions. Allow user-defined file associations. Shortcuts to files and folders and applications would be nice. |
A mail management and interface package (2
persons) Support for IMAP/POP. Viewing, forwarding, replying to mails. Attachments sending, viewing and saving facility. Address books and other general facilities. |
Other |
Search engine for geometric objects/patterns (2
or 3 persons) Build a search engine for searching a database of simple shapes and/or simple patterns. The search engine should be able to search, for example, a particular shape in a combination of shapes. Develop a way to store shapes in a database and then implement methods to search shapes in that database. |
Compressed trie based search engine (2
persons) Trie is a data structure that provides prefix searches which finds applications in automatic word completion in word processors, command completion in user shell, URL completion in browsers, etc. The project is to build a search engine to search a trie for some data. |
A small database package (3 persons) Database with query/update commands. Subset of SQL commands can be implemented. A GUI for editing and querying the database can also be implemented in addition. |
A graph plot package (2 persons) Command-line based plotting like GNUPlot and/or GUI based plotting. Single function, multiple function, options for colors and output formats like gif, jpeg, ps, etc. |
A package for writing parallel algorithms (2
persons) Parallel algorithms editor GUI. Execution of the parallel algorithm entered by the user. User should be able to watch the program execution. |
Java frontend for MySQL or PostgreSQL engine (1
person) Form based GUI frontend to database like MySQL or PostgreSQL. Creation, updation, deletion of tables and records. |