Most of engineering colleges (Computer/IT) in India have their final semester as project.I will discuss what mistakes a student or even Mentor do in selecting/giving projects,Next will be discussing on then what should objectives of these project and how to decide on projects.
Most of students before start of projects search net for the most complex projects they can find, find,well with their source code , instead they should search which can be completed with own coding in half of time of total duration of project.
Students/Mentor/Teacher should concentrate on process of doing project rather than on Projects.
And what are these process.
- Versioning –
- SVN/GIt/Mercurial
- Exposure to opensource project hosting – code.google.com,sourceforge.com and other opensource Hosting sites.
- Students can also try to setup there own hosting or versioning server
- If interested they use bitnami to download Versioning server which can be run on VM or Running machines.
- Concepts and Actual doing of checkin/Checkout
- Diff & Merge tools
- Sending code diff and sending to teammates for review , see beyondcompare software
- Using of merge tools in case coding is done in parallel with other teammates
- Coding Styles
- going through some of coding styles and good coding practices
- Using some tools like lindent/indent etc
- Few links
- Commenting styles
- Proper coding documentation is very important , Commenting in code can done using Doxygen stlye , Doxygen software will automatically produces browsable source with call and caller graph
- Also students should be aware of Browsing through large source code base
Tools such as ctags, csope or Sourceinsight can be used.
6. Compilers & Makefile
- Using some opensource compiles , Codeblocks, Dev C++, GCC
- Should have exposure to make Makefile and incorporate in their projects
7. Project Management
- Microsoft visio
8. Prototyping software/Flowchart
- VISIO
- Evolus Pencil
If you are working on a opensource project its good to read this wonderful document
“Teaching_Open_Source 0.1 Practical Open Source Software Exploration”
HTML -
https://quaid.fedorapeople.org/TOS/Practical_Open_Source_Software_Exploration/html-single/
Also in addition , project should also involve understanding of following software based on type of projects ,
- Virtual Machines-Virtualbox,Vmplayer , Virtual PC
- Hexeditors- AXE hex editor
- Networking tools- Wireshark , TCPDUMP, Netscan,Netstat
- Bitnami stacks