Archive for the ‘Project Ideas in Computer Science / Information Technology’ Category
I am suggesting building of a simple system where you can use readily available software components or features in standard software. This is what happens many times. We do not craft system from scratch every time.
There is push for “Digital India”. Government is moving interaction on public services to internet. We see list of officials, their e-mail ids and phone numbers on website for public interaction. You would be surprised that if you send mail to these mail-ids most of those will bounce back.
So, why not create a small system that tells us which of the e-mail ids are invalid and send that list to head of the department. Hopefully, these will be set right and general public will get some benefit.
Watch out for my page on some contours of the solution.
I am getting many questions as posed above.
Project work is a very interesting phase of learning. You must select a topic of your interest, you know something about it and have enough technical background to execute it.
My web site talks about various areas that you can take a look and decide which one interests you. It covers both traditional and new technology topics. Web site also gives additional details of system requirement for you to start the work. Also mentioned are ideas for group projects in areas that may be quite familiar to you.
Do not forget to read web pages, regardless of topic you select, on
– making system ready for real life
– working in group, in case you form a group to work on the project.
Lastly, in many job interviews, freshers are asked about their project work – what did you work on?; why did you select that topic?; how did you execute it?; what was your role / contribution exactly?; what new things did you learn? and so on. Hence, take your project work seriously. Do not buy or copy solution if you want to work in IT field.
All the best,
I have added requirement-details of a system that can be taken by a group of 2-3 students as a final year project. It is about a system to help schools and colleges in allocation of teachers for examination duty.
This is an area which is familiar to students hence they will not have difficulty in detailing the requirements. The project requires:
- evolving an algorithm for allocation
- finding ways to transfer of data from an Excel to database of application; and reverse
- and, once processing is over, sending e-mails with Excel attachment.
I am sure students will enjoy developing such a system which can also be put to use in their college/school.
As usual, contact me with suggestions and for clarifications; but not for its code.
Compare that with a problem in selling where price of one item is Rs 10, we buy 12 items, there is 10% tax so total amount payable is:
Price of 12 items = 12 x 10 = 120
Tax = 12% of 120 = 14.4
Total amount = 120 + 14.4 = 134.4
We have to follow above order to get correct value. This is serial processing – going one step after another.
When we have one CPU, we have no choice but to go serially. That’s what happens with present matrix multiplication algorithm that you all are familiar. We calculate value of one element then we go to second, third and so on, though it is not essential in this case.
We can divide our problem of matrix multiplication into four sub- problems and ask four different students to solve in parallel. When they come back with result, we write the resultant matrix. If we have only two students then we ask each student to solve two sub-problems. This is still better than one student doing all sub-problems.
Even if we have more than one student we cannot divide selling problem mentioned above into sub-tasks which can be done in parallel.
So, you see, in some computation algorithms it is possible to execute some steps in parallel and speed up calculation. There are many graph algorithms where this is possible.
Going back to our matrix problem, if you have a PC with 4 cores (CPUs), you can execute each sub task in a different CPU and bring result to one CPU where your main program is running for final result. You can use parallel a programming language to write such programs. You should be able to use even C language if you know instruction to use different cores. This you do not have to worry when you use a parallel programming language.
How do you know that you have really saved computational time?
If you write serial and parallel processing program for small size matrix multiplication you will not see any difference in processing time. Create two very large compatible matrices and then measure time. You will see the difference.
Computer Science field is a very interesting and fast changing fields. We are see new hardware architecture with enhanced capabilities. This is driving innovation in software. There are many areas where alternatives are being attempted.
I have created a new page to list down some of those for students who are looking for Exciting Project Ideas to work on.
Take a look.
I have shared contours of railway berth allocation problem in my previous post. I mentioned that it requires thinking of some heuristic to implement the solution on computer. You may devise many and select the better one that meets the acceptance criteria.
Why not use pictorial representation as happens in airlines / bus / movies seat reservation and leave berth selection to passengers?
Points to think:
– How can we have pictorial representation of berths in a coach? All berths are not in same plane.
– If we give freedom to passengers to select seats from available ones, how do we meet goal of railways to give lower berths to seniors as far as possible?
– Is it advisable to allow this kind of user interface?
Think, Think, Think!
Most commercial systems have simple business logic – easy to specify in well defines steps, even though these may appear complex in some cases for example, in applying discounts based on category, day, etc. However, in some applications, there are parts with ambiguous rules. If we want to computerize those parts, it is a challenge, for a designer and developer, to properly represent logic, devise suitable data structure and code. We have such situations in
– Railway reservation – allotment of berths
– Timetable preparation – teaching and examination subject scheduling
– Logistics – preparing pickup and drop route of vehicles
I have defined a group project (No. 6) on developing a heuristic and improving those by devising alternate rules. Application scenario is all-familiar berth allotment in railway reservation system.
Please see details in the page on Group Project 6 and enjoy attempting it.