Saturday, May 26, 2012

The experience of teaching minor project to computer engineering students

In a semester of 2011, I taught minor project and Java programming to third year engineering students at two engineering colleges, Kathford International College and Advanced College of Engineering. I was supervising 16 minor projects.

Everyone realized the importance of Minor Project
I still remember the first day. I entered into the class and explained them the importance of completing projects. Everyone was excited. Then I asked them to form teams and come up with project ideas. I sat with each group to discuss their idea. That was the beginning.
Yesterday was the last day of the project. All teams submitted their reports, gave presentation, and showed their running demo. They were happy and I am happy. This was the end.

When I compare these two historical days, i.e. first day and last day, I can think that all of them learnt enormously about software projects. Almost everyone has now realized how difficult it is to achieve even a small piece of robust software application.
External Examiners
Students at Advanced College were blessed with two awesome external examiners: Dr. Sanjeev Panday and Dr. Aman Shakya. They were awesome on the exam day simply because both of them made genuine comments. They pointed out the mistakes and suggested the teams not to repeat those mistakes in final year project. Being genuinely interested in the projects, both the external examiners delved into the project to figure out task management, slide organization, team work, who did what, practical value of the project, report review, and even the source codes of the project.

I had already attended a few major project and minor project presentation and demonstrations before. I had understood that just in 15 minutes it is very difficult to figure out what students have done. Sitting with the external examiners for around 4 hours, I realized that I my understanding was wrong. Now, I understand that, it totally depends on the examiner, his field of interest and experiences.
Supervising and coordinating the students is difficult
For me, teaching minor project proved to be the second most difficult academic stuff (first  is applying for my graduate studies). It was difficult mainly because students needed a lot of my time. Besides hours of online support, I spent around 180 hours with 48 students at Advanced College and around 120 hours with 10 students at Kathford College. I was always motivated to help the students seeing their high motivation and less programming knowledge. I helped the students in coding, designing, fixing the requirements, reviewing the reports, reviewing the slides, testing ideas.
Teaching minor project is tough. In 5th semester, most computer engineering students have no programming experience. They are unfamiliar with any IDEs. They just have a very few high level theoretical knowledge about software engineering. Many of them are obsessed with the idea that coding is the most important activity. They have no idea about databases. Matter of fact, that was the case with me and all of us as well!!

On one side of the coin are the problems. While students did their project, I found that many of them tend to deviate from their basic objective. Some keep designing. Some stumble at compiler error and wait in infinite loop until they get help. Some are hard-wired to believe that they are not programmers. Some of them have a great project idea but take no action to start the project. Some think that project is like a lab report that can be completed in just a few nights. Most of them only think of getting it up and running. Some of them are even irritated by their own project. Some teams want to be constantly in touch while some never show up. Many of them want to be guided at every stage and every turn they make. And only a few of them enjoy programming.
The other side of the coin is the joy of helping them. And that is what hooked me, besides the money.

I thank all the students who gave me genuine feedbacks.