Archive for the ‘Project Ideas in Computer Science / Information Technology’ Category
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.
Here is an example of Chat Box used in a popular application Skype. As I mentioned this (Chat Box) is a common application tool and you will find it built-in in many applications.
I recently bought an Exide battery for my car. The warranty booklet suggests that buyer should register battery details online on http://www.exidereachout.com.
I was surprised to see similarity of purpose of this application with the aim of project work. Some of you should explore the Exide website to understand importance of Group Project – 1.
I have just added some design aspects of a Chat Box. It looks simple but it is not that simple to design and develop. However, it is not a large software development work.
It should be packaged and made available with APIs for integration in any main online application.