Home  -  Back Issues  -  The Team  Contact Us
                                                                                                                    
Linking Young Minds Together
     Volume 2 Issue 87 | September 21 , 2008|


   Inside

   News Room
   Spotlight
   Feature
   Photo Feature
   Book Review
   Sounds & Rhythm
   Movie Review
   Tech Wise



   Star Campus     Home


Feature

Programming course and teaching methodology

Md. Anwarul Kabir

TRANSFERRING knowledge effectively largely depends on the teaching methodology followed. Especially, teaching programming is more difficult task than any other course because of its inherent complexities. So the programming course demands a special teaching methodology to be followed.

Computer Science is relatively a new discipline incorporated as a separate subject in our educational institute at tertiary level. At Higher Secondary level, although computer science has been introduced as one of the optional subjects, a few students are encouraged to take this subject due to various reasons. Even those who take this course and achieve good grade in the subject, fail to demonstrate their basic programming skills. This reality, in deed, reflects the weakness of most of the educational institutes who offer computer science at HSC level without assessing their capabilities in this context. Most of the colleges acutely suffer from lack of efficient computer teachers and adequate lab facilities. Besides, weakness also lies in the curriculum of HSC Computer Science course too. So, unlike developed countries where Computer Science has been introduced in school level, our students get introduction to computer science, especially the programming course in true sense at the university level.

Keeping the above reality in mind, the instructor of the programming course at our university level must realise that they are opening up new windows of relatively complex knowledge domain for the learners.

Learning programming languages needs to look into two different aspects, namely syntax and semantic. Syntax means the rules or grammar of a particular programming language in which the program is to be written. On the other hand semantic signifies the inherent logic that should be followed for solving problems. Though for acquiring programming skill one should give importance to both syntax and semantic, semantic should get priority in learning technique. Observation suggests that teaching syntax or the grammar of the programming language first, frequently leads the first-time learners of programming language towards utmost frustration. This is because unlike natural languages the programming languages follow strict grammatical rules and computers do not accept even any minor mistake in program codes. Due to this rigidity of the programming language the learners sometime becomes panic of. However, if the students learn the semantic aspects of the program first, then subsequent writing codes become easier. So, while teaching first programming course, the instructor must give emphasise on semantic aspects of the problems.

In general writing program should go through a two-phase process: problem solving and implementation.

In problem-solving phase we need to focus on analysis and specification. Analysis and specification define the problem and identify the inputs and outputs. After that we need to design logic for solving the problem. This logic or general solution for solving the problem can be termed as algorithm or inherent semantic of the program to be written.

At least first half of the semester can be spent on teaching semantics or algorithms (program logic) for different problems without using any programming language. For teaching algorithm, the instructor should introduce Flow Chart or Pseudo codes to his/her students so that they may be able to solve problems using these tools with pen and paper.

The selection of the problems in this respect is also very important. The problems to be selected should be interesting yet challenging for the students.

Another point should be mentioned here that a problem can be solved in different ways. So, in designing algorithm students may follow different approaches and this should be encouraged. However, the instructor, analysing the time and space complexities should explain merits and demerits of different approaches of the solutions for the same problem.

Implementation phase translates the algorithm into a programming language (code). At this phase the learners should be introduced to the editor of the concerned programming language and different features (e.g. selection statements, loop-structure, arrays, function) of it.

Besides, the instructor at this stage must vividly explain the hardware aspects of the computer following the prevalent von-Neumann architecture of computers. Learning about memory, processor gives a clear conception in writing codes as at the end of the day programs run on the machine.

Being introduced with the editor of the concerned programming language and familiarised with the computer architecture, the learners should now translate their previously designed algorithm for different problems into codes. However, in writing codes the instructor must ensure that the learners follow the divide and conquer approach. This approach implies the modularity of the program. A large problem should be broken into smaller pieces using different features of the language (e.g. procedure, function, class) so that those smaller pieces can be solved individually.

At the end of the writing codes, the learners should go through a exhausting testing inputting different test data. This practice will help them much in their future programming endeavour.

Practice and more practice are essential criteria for becoming an efficient programmer. So, the instructor must encourage the learners in this aspect. Arranging mini programming competition among the learners in the class room environment will definitely help in this regard. Besides, assigning group and individual programming projects to the students is also essential for programming courses in improving learners' programming skill.

In teaching first programming course another question naturally arises. Which language should be selected as a tool for the first time learners? So far different programming paradigms have been introduced. Among them procedural and object oriented paradigms are widely used to teach the first programming course. Many prefer C as a first programming course and yet many others advocate for JAVA or C# (following the object orientation) in this context. However, the present author strongly in favour of C or any other procedural language as the first programming language, because on the part of the first-time learner it is easier to follow the logical construct of the procedural language. Having conversant with the procedural language it is not difficult for any programmer to switch to other programming paradigms including object oriented one.

Finally, it can be argued that programming is a creative work. To be an expert programmer the learner must develop passion for it. To instil passion for programming into the psyche of the learners, the instructor must adopt appropriate teaching methodology.

(Md. Anwarul Kabir teaches Computer Science at AIUB. He can be reached at kabir@aiub.edu)


Dhaka's Traffic Jam

M. Abdul Jabbar Erif

JUST think you are going to your university at 11.00 a.m. and you have an exam. Suddenly, it starts to rain. And you will see a terrible scene on the road within a few minutes. It is really a matter of pain that when it starts to rain, the whole of Dhaka city becomes extremely clumsy and chaotic. The question is why? To me, there seems to be an invisible reason behind the unwanted traffic jam. I was looking for a legitimate reason behind the jam but was a bit confused because the traffic controlling lights continue to be operational during the rain. But after keen observation, I found that during the rain only a few traffic policemen remain where they should be and that is why, nobody cares to obey the traffic rules. So I would like to humbly request the traffic-controlling department to properly supervise all the traffic points during rains to minimize the jam for the greater interest of the mass people.

Student of Electronic & Telecommunication Engineering, IUB.

Copyright (R) thedailystar.net 2008