[an error occurred while processing this directive]

FAQ

Course structure

Q: Is it true that this course takes the effort of 3-4 modules?
A: You will have to do no more than the allocated 20 hours/week workload for a 8MC module such as CS3215. However, lack of good planning can result in heavy workloads at times, especially, near deadlines.

Q: What if I take more than 12MC worth of other courses?
A: Try not to. If you had to do this due to unavoidable circumstances, contribute at much as possible to the project. Especially, try not to slow down the team by being "unavailable" for team meetings etc. Keep in mind that your grade greatly depends on how much you contribute to the project.

The project

Q: Will the project specification change during the project?
A: It might; then again, it might not :-) You should be ready for changes to the spec at any point. However, we do not plan any drastic changes to the spec. Minor changes (e.g., due to errors discovered in the spec) are a definite possibility.

Q: Program analyzers are boring! Why can't we build a more common place business application like a payroll, air line ticketing system, or a web based application?
A: That's what CS3214 does :-) See here for a comparison.

Q: Why don't we do a real project with a real customer (and may be make some real money out of it)?
A: Tempting as it may sound at first, using a real project does not let us optimize the limited time we have to achieve highest level of knowledge. Using such real projects for a course is suitable for more SE-intensive degree programs where students take 5-6 SE theory modules before they take the project course. In CS3215, we use a simulated real project environment.

Development environment

Q: Why C++? I already know Java; why can't I do it in Java?
A:  C++ is more fundamental. Even if you know Java, you will still get to learn another language and get some experience in the .NET technologies. If you want to use the Java-like language C# for the project, you can take the module in Sem II of any year.

Q: How many tools we should use in the project?
A: As many as you want. Tools are supposed to improve your productivity. If you feel that you want to be (or can be) more productive in some aspect of the project, look for a tool that helps you in that aspect. Using tools has its own reward.

Q: What if I want to use tools not recommended by the course?
A: Talk to your supervisor first. In fact, we encourage looking for better, and additional, tools.

Q: Why do we use Visual Studio 2008 instead of Visual Studio 2005?
A: The reason is to do with licensing. Now you can get Visual Studio 2008 from MySOC MSDN. It is best for all the students to migrate to one latest version. However, note that often in the industry you will be using earlier versions of a tool due to licensing issues or stability issues.

Q: Can I use 3rd party libraries/tools in our product?
A: Check with the supervisor first. In general, such libraries/tools should be public domain, should not require any installations or servers, should be standalone, and should be free (or should have an evaluation version that does not expire) .  

Q: Can we use our own source code control (SCC) system instead of Subservsion?
A: No. Like many software houses, we want the code to be in a centrally controlled repository.

Testing

Q: Is it OK to skip unit testing for some parts of the code?
A: In theory, everything must be unit tested. But in practice, some things are OK to be omitted from unit testing. e.g., trivially simple methods, or code that are hard to isolate. If you have to write 50 extra LOC to unit test a 3 LOC method, may be it's better to skip the unit test and verify the correctness by manually stepping through the code or by getting another team member to double check the code manually.
How much unit testing you do is finally up to you. A bug is easier to catch using unit tests than using other forms of testing. So if is a bug slipped through due to lack of unit testing, you might end up wasting more time tracking them down later, or never catching them at all!

Q: Can you give us more information about the test cases that will be used in final testing, so that we can optimize our product for final testing?
A: Your product should be targeted towards long-term day-to-day use by PQL programmers, not final testing.