Lagging, Lacking, Nagging Programming Skills: How to improve programming skills in the Indian youth.
Wednesday, August 31, 2016
Friday, August 26, 2016
Lagging, Lacking,
Nagging Programming Skills: How to improve programming skills in the Indian
youth.
Dr. N.B. Venkateswarlu, GVPCEW, Madhurwada, Visakhapatnam
Let me first congratulate our policy makers for successfully killing
arts, science. Of course, they are in the process of killing engineering
education also. They have almost succeeded, I guess. Today, everyone is talking
about skill set of engineering students. Some claim only eighteen percent of
passed engineering students are having expected skill set while some other points
that it is at 16 percent. However, in the mean time, yet another American
University asked twenty five of its admitted Indian students to leave their
University on the grounds that they do not have enough coding skills. I do not
want to go on drill the reasons for this worst situation; instead I would like
to express my perception on how to correct this situation.
To be curt, current generation mindset is indifferent, whatever are the
background reasons. I wanted to share my side experience in support of this. In
2006, one student approached me with a CD having my C language class notes and my
class room ready to run programming examples (about 300 and odd). I was taken
aback and worried a lot thinking that this fellow may publish this as book of
his own!. Immediately, I have decided to bring the book of mine on C language
which is of course, published in 2008 by S Chand publishers. That way, this
student became instrumental for my book on C language. This is the attitude
working styles of typical students 10-15 years back. Now, let me share my
recent experiences with two Institutes which hold below first 10 ranks in the
AP state. I usually give full source code of few hundreds of problems in any of
my programming/algorithmic oriented courses such as C programming, data
structures, algorithms, object oriented programming through C++/Java. However,
you may wonder that the total number of programming submissions of any course will
not even cross even the quarter of the class size. I mean, if I assume class
strength is 70 and total number of programming problems as 150, I am supposed
to get almost 10000 programming submissions. In reality, what I get is about
15-20, may be, I am exaggerating here I guess!. This is the mindset of current
generation students. When I recently probed the students, they claim that this
type of program submissions are not asked by any other teacher and also JNTU
final examinations will not demand such a type of preparation. Thus, they are
not submitting me in en-mass (mass boy cot!!) See the mindsets of the current
generation!.
CHINA batch syndrome or Sri Chaitanya, Narayana Syndrome. I am seeing
the students coming out from these private tutorial colleges since last 25
years. In a nutshell, in my opinion they are been killed during those two years
of stay with these colleges. Somehow, students are developing a mindset that
engineering is for enjoyment while Intermediate
is for serious study. In reality, it is the other way wrong in my opinion. This
mindset is making them to relax during their first year of engineering which
they are unable to correct that easily in the subsequent years. Somehow, they
try to complete their B.Tech!. During their intermediate, they are not at all given
real impression that practical classes (laboratory classes) are more important
than theory. They are joining engineering colleges with this mindset and giving
least importance to laboratories including programming labs. In my opinion,
skills will be developed in a person if they do experiments in laboratories and
continue them repeatedly. Unfortunately, they are not serious even in doing
University suggested laboratory examples itself. To add to this worst
situation, engineering faculty who joined during last 25 years period who are
from these tutorial colleges!. This is, after all a chain reaction (Nuclear
Fission!). How to correct? GOK (God only Knows!!!).
Anyway, let me share some of my observations and remedies.
1. Student’s lack of awareness of top
opportunities if they build their problem solving and programming skills.
Majority of the students mindsets are such that if they get a job in TCS or
Infosys is enough. In reality, things are awkward. These companies are services
companies which are offering peanuts when compared to today’s living standards.
Whereas other set of companies which involve in product development are
expecting the candidates to have good algorithmic, problem solving,
programming, and design skills. This aspect is not highlighted properly, thus
guys/girls are driven by TCS and Infosys syndrome.
2. By conducting both theory and
practical courses related to programming in the same semester.
3. By making sure that the students
executes as many number of programs as possible. At least 99.999% of the B.Tech
qualified student’s claims that they have done only those 13 or 15 examples
given in the respective University syllabus. I always wonder how an engineering
candidate can complete his degree only by running thirteen (13 or 15)
programs?. Usually, the syllabus given by authorities is guidelines only,
especially with respect to laboratories. Teachers can add their own examples
and tune their course. This is where faculty has to spend more time to improve
their laboratory examples.
4. It is highly recommended that the
engineering faculty to give assignments that needs program design and
development also from 1st year to final year. This continuous
treatment from 1st year to last year helps the students to get
rid of fear for programming. If needed, faculty should take help of CSE faculty
colleagues in framing their assignments.
5. The examples covered in the
programming courses should take many live engineering and mathematical problems
or examples.
6. If Mathematics faculty are not
having computer/programming exposure then they should be enriched with
programming orientation as mathematics is one beautiful subject which can be
used as a channel for program and logic building.
7. Enriching and encouraging faculty
towards competitive programming. It is a customary practice followed by many
colleges that if a faculty publishes a paper, he will be given some honororium.
This has to be extended to the faculty who proves his calibre in competitive
programming also. This inculcates some form of positive development towards
programming in faculty force.
8. We recruit physical director and
we will give preference to NCC certificate holders. Similarly, colleges should
create a special post with title coach for programming competitions.
Make sure he/she has some proven track record in programming competitions.
9. Now a days, majority of CSE
faculty who got their doctorates recently are also week in programming skills
which is a serious concern at this junction of time. Like non-CSE researchers,
they are also using readymade tools such as MATLAB, R, Weka, etc during their
Ph.D time. While recruiting CSE faculty, recruitment committee has to give
importance for the people who has developed their own tool compared to others
who has used existing tool. Sometimes, I wonder how come a Doctorate degree can
be completed with 120 lines of MATLAB code?. Of course, some may argue they are
doing applied research. I do accept. But, my sincere advise is that for CSE
faculty recruitment, it is wiser to check candidates programming and
algorithmic skills.
10. Also, while recruiting an M.Tech candidate for Asst.
Professor Position, it is better to check his programming and algorithmic
skills. After all, all these extra things are becoming necessary as their marks
in the marks lists are not reflecting their real calibre. May be, we can look
for things such as 1. Did he appear any time for International Olympiad in
Informatics during his school time?, if so what is the outcome and rank. 2. Did
he appear for Google’s codejam? 3. Did he appear for any International
Collegiate Programming Competition (ICPC) which is organized by IBM and ACM. 4.
What is his rank in code chef? 5. What are his badges in other various
programming competitions sites 5. Is he maintaining any blog with his
contributed code? 6. How arduous responder in sites such as stackoverflow.com,
answers.com, yahoo answers, etc.
11. In is not uncommon that Colleges encouraging
students to present technical papers in student gatherings. However, I am of strong
opinion that colleges has to encourage students to appear for programming
competitions such as ICPC; rather I say they should take this as their
Institute/college mission or goal.
It is a
de-facto practice to offer high perks by Google, Yahoo, IBM, Microsoft etc., to
successful ICPC participants both at national, region, and international levels.
Of course, nothing to talk about final international round winners in ICPC;
obviously they are very in demand by world renowned MNC’s such as above. I
believe participation in this test is going to rise very soon in world wide. Also, students if they have prepared for ICPC,
they can also participate in other world level contests such as challenge24,
Microsoft Cup, etc. In addition, they
can take part in some Indian contests organized by Infosys, Wipro, etc. Once
they have tuned for ICPC test, their chances for campus placements increases by
many fold. Moreover, by having ICPC training, students may also easily succeed
in tests that are organized by Microsoft, Google etc., for internships. In
addition, they can answer programming, algorithmic questions that appears in
GATE and advanced or subject GRE very easily with ICPC training. Thus, I
strongly recommend colleges and Universities to start programming clubs with
various levels or hierarchy and conduct programming competitions locally to
tame the coming generations.
12. The controlling Universities has to make sure that
the final question papers to have some suitable percentage of questions which
demands students to have some level of programming/algorithmic/design skill set
to answer them. This will change Student’s attitude too radically and also
makes young faculty force to enrich them towards these skill sets.
13. I have attended as judge for many student presentations. I have never
seen a single student showing their coding efforts or design efforts.
Organizers aspire for student’s attendance while students need a podium to show
their presentation and other skills. These student presentations are meeting to
this extent only. I feel that the organizers to put a constraint that the
students has to present their work (either code development or system design),
then students will be fine tuned in their programming skills.
14. Parents, school managements encourage students to write Physics,
Biology, Mathematics Olympiad. In fact, Informatics Olympiad is also there but
not many are not aware of it. Culture of program development and algorithmic
thinking can be inculcated by encouraging students to attend informatics Olympiad
like other subject Olympiads.
15. During the first year admissions, 1st level, 2nd
level, 3rd levels are used while class work is getting started soon
after 1st counselling. I have practically observed that almost 30%
of the students are changing their sections or colleges during sliding. Thus,
there will be disturbance in the class works. Therefore, I recommend college
managements to start C program course classes only after 3rd
counselling if needed adjusting the other trivial courses. Rather, they should
plan for some schedule such that C language teaching is in a single stretch.
16. With my experience of teaching more than seventy thousand students,
I feel the number of hours allocated for programming course in first years
should be increased by two more hours independent of credits etc. For majority
of them this is new unlike Mathematics or Physics or English courses of 1st
year engineering.
17. I advise the college
managements to provide LCD projector to the programming faculty with machine at
least during first one month of the course. Students will be having some un-explainable
inhibitions and also it is the first time exposure to programming in their life
time, they will be developing many silly doubts which a faculty can teach instantaneously
if he has a computer along with LCD. With my experiences, this type of demonstrations
during the initial weeks of a programming course makes students very
comfortable.
18. Another barrier which I have observed is the language barrier. If
the students are not from English medium, they will be having some difficulty
in understanding programming. Faculty has to put this in their mind at least in
the first few weeks of the course. If needed, I advise faculty to prepare some
hand outs in local language and give to the students to cross this medium
barrier. Of course, this special treatment should be for first few weeks only.
19. Another observation which I love to share here is the attitude of
female students. Unlike boys, girls are very much fascinated about marks. Of
course, they are toppling boys in the marks. However, when it comes to their
awareness on software installations, computer management, programming, etc,
they are usually behind boys. This has to be corrected immediately by
organizing special boot camps for girls. I did see such a events in swing in
USA in the recent times. We need to have similar steps in India also, and especially in the
area of programming.
20. CBSE/ICSE has started programming orientation in school level
itself. State boards also has to follow this role model and inculcate dogma of
programming from school level itself.
21. Mugging and re-production attitude of students has to be corrected
immediately. I always get amused by the study habits of current generation. Oh
my god, they are mugging Mathematics!!! With this experience they are mugging
programming also!!. All these things they are attempting and following because
of our examination and question paper patterns. If we correct these things,
they are forced to change from their mugging attitudes which is good for their
overall development.
22. A typical student believes a lot what their seniors say. In front of
me, many senior students used to advise juniors wrongly. I wanted to share a
recent incident which took place in my second year data structures course. One
student informed me that their hostel fourth year senior advised all of them to
be serious in programming and coding which are vital today to get job. I am
over joyous and request this little one to bring that big one. When that big
one (final year students) who came trembling to me, I said “Thanks”. She did
not understand what for I am thinking her? She asked me, why are you thanking
me? I told her, as you have correctly advised the students to build
programming/coding skills to your juniors, I am thanking you. I have seen many
batches of students who are not serious during their study and spend almost 2
to 3 years at Hyderabad or Banglore after B.Tech to first enrich them and get
job. Whatever the passed out students say, I would like blame them first as
they pass wrong things to their juniors. I request the students who employed in
the recent times to share realistic things with their juniors in their
respective colleges such that these juniors tame themselves correctly.
23. I feel it is high time to encourage students to aware about hacker rank(www.hackerrank.com)
, yahoo answers, hacker earth(www.hackerearth.com), Challenge24,
Microsoft Cup ,Google Code jam, Code Vita, ICPC, IOI, Code Chef, etc and let colleges to maintain repository of
these challenges in their web sites.
24. With my long standing experience in teaching programming to various
types of student strata, I strongly recommend the faculty to user various
program visualization tools such as The Teaching Machine, Leonardo IDE at http://www.dis.uniroma1.it/~demetres/Leonardo/,
C Tutor at http://www.pythontutor.com/c.html#mode=edit, VIP at http://www.cs.tut.fi/~vip/ . For fresh
students to programming, these visualizations creates better confidence and
understanding in addition to improving their imagination on program
functioning. Also, there is high possibility that they will be interested to
become hackers who are in dire need by this great country.
25. I always wonder how students are wasting four to five hours in
travelling buses to attend the college. Majority of the colleges are having
their own buses and make their students to prefer them only. College
managements should plan for an action plan in utilizing this time in buses for
orienting to programming and problem solving skills development. I know,
students are after marks and also after money. If possible, it is better to
relate to these things such that this time of students can be used for
improving their skills, especially programming skills.
The suggestions what I made above are my perceptions and pertain to
Engineering Students only.
Subscribe to:
Posts (Atom)

