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.

Dear sir, all your expressions are accepted and welcomed. Sir, during 3rd year of my B.tech there is a subject called "information security". JNTUK launched a lab session in the curriculum also. If there is a lab session then there must be a lab practical examination at the end of the semester.the bloody faculty(I am sorry to say)managed the lab sessions through out the semester. But at the time of the external examination he deployed the code in .txt file through network sharing. We all were copied the code in answer sheet and execute the same code in c prompt. The waste faculty along with his friend simply managed the external. The funny fact here I that the external also don't know the codes of that lab sessions. Sir, my appeal is not to recruit any person who does not have programming skills. I am always thankful to Sri. Aeizaz Garu and said Garu because even though they dont having coding experience but they are having practical experience. Due to the friendly association with them I learned a little bit of networks. Sir, no student want to become a failue in his career but the major problem arises at teaching staff along with mass campus recruitment. It's my view only.
ReplyDeleteCorrection "its not said" its Sri.S K Saif
ReplyDeleteSir, in the primary schools govt. Allocate funds to purchase Teaching Learning Material... In the similar fashion managements should allocate more funds to purchase TLMs. More over the teaching methodology in engg. Colleges were completely ruined. If you go through www.rbi.org there I a column called financial literacy In that column how simply beautifully described all the financial terms like currency, money, inflation, investment.. Etc.. See the thing here is that those are developed by so called economists... In the similar fashion why dont you design animations, simulations in a simple way and send those to ministry of HRD because you are only the right person to change the system of teaching.
ReplyDeleteReading such a long and good information and the concern how the Prof. NBK sir is showing for the growth in College students, want to add my opinion.
ReplyDelete1. Understanding of the given problem and the algorithm (basic approach/simple steps) to solve is much important before starting coding. I see many students start writing code and then correct the code whenever required after compile and test. In this correction process they loose the actual sense of the problem.
First understand and write pseudo code - this step helps to find the logical mistakes
Next decide the actual syntax for program. (like to use "if else" ladder or a "switch")
Next start coding and compile, please be careful to remove warnings also. Correcting the "warnings" at compile time only.
Spend time in Problem solving discussion than analyzing present Trends in free time as mentioned last point, like in Bus
Thanks for your marvelous observation which I forgot to raise.
DeleteEvery CS student life is akin to this. We are wasting time during B.Tech. Teachers are also coming and giving lecture as per academics only. Students must be motivated either by themselves or from the teachers. Teachers need some more contribution to motivate students for better career. It will be useful if they come up with some more additional assignments which will be useful for students future.
ReplyDeleteHope your suggestions are taken seriously by Univ and Students !
ReplyDeleteMy understanding, #12 is the differentiator b/w good univ and rest.
Dear Sir, You have enumerated several points that are threatening the education system. Who will bell the cat? It is for people like you to organize district/college level boot camps for the students. How many Programming contests were organized in the city? Only in single digits (Maybe none with canvassing). The students are not to be blamed. They have interest but there should be someone to counsel,guide, motivate and help them in time management. The input quality of students has an influence, but they can be motivated to work. The interest has to be created by all the stakeholders in the system.
ReplyDeleteYour suggestions are realistic and must be implemented in spirit. Moreover, as rightly pointed out the teachers have to enhance their knowledge and skills. For this Faculty Development Programs are necessary. The Government (MHRD, DST, AICTE,UGC) are spending crores of rupees on FDP. The Colleges/Faculty are required to make use of it by applying for the funds and conducting programs. In the competitive world no management/college can neglect the points mentioned but it needs dedicated people to implement and realize it. Everyone feels bad about the current standards of Engineering education but someone has to take up the initiative (University/College) to bring about a change. You are the right person who has the knowledge and vision to bring about a change. We will definitely see good days ahead.
Thanks Dr G Sudheer Garu. What stops you for ringing the bell in the way you like. That bell should be independent of Mr Dr G Sudheer Mr Dr NBV. See kindly my answer to Dr Jagadessh.
DeleteRespected sir,
ReplyDeleteI am always proud to say a student of you. Whatever points you are discussed are 100% present. I want to share few of my experiences during my studies. One of the faculty who did not clear his subjects came to teach one subject for us and even she used to harsh us without teaching anything. During my mtech in a central university one of my faculty who did PhD but she don't know basics of her research domain. Even faculty from nit s does not have enough knowledge to teach their students. So, how can they improve student skills. Few days back I saw a conversation between a faculty and btech student. In the entire conversation the student never said sir to the faculty. The sad thing about cse department is msc, mca members are also becoming faculty for the cse students so how can we expect everything from students. So, I hope faculty like you can advise universities to improve the standards
Dear Dr Jagadeesh Garu, There is some truth in your comments. However, your statement about MSc and MCA faculty I will not accept whole heartedly. May be true they lack Engineering Tint while we lag science tint. Do you now even there is fight in ISRO among Scientist with Engg background and Science background. However, combined efforts only rose ISRO. You are hardly very young to give such statements. Where is Engineering with out Science? But the question is that how many programming oriented examples, design oriented examples are you making your students to do? This is the crux of the discussion. In order to improve the candidate capabilites (programming), I feel every faculty has to working in war footing manner. When did I recognize you? Till your B.Tech is over, I did not recognize you at all, when Mr GS Mallikarjuna Rao showed me your Virtual Tour of the GVP campus, I gave a chance to listen to you and developed a positive corner on you and continuing today. How many assignments whole of your batch submitted to me. This is the one I am talking which I alone can not change. All faculty has to involve. Since last 15 years or so I am trying to start some Vizag level IOI. First I approached DAV school to give chance to tame their faculty. No way. I have waited years. I tried to influence some of my School Mathematics teacher students, no use. Three years back I gave a series of lectures at GVPCEW to initiate some activity. As of now, I did not succeed. Let us see, how things will work. After all these are my side of advises. Thanks a lot for responding. None of my Ph.D students responded even now. Ha. Ha. Ha.
ReplyDeleteDear Sir, I found this content is very much useful for experienced software engineers as well as freshers. I felt more than 90% of software engineers have fear of coding a program or design a product, due to lack of info on the sources/tools from where they can improve. This article mostly targeted to fill the loop holes by providing valuable info.
ReplyDeleteI am appreciating you for spending your valuable time on writing this valuable article and your zeal to improve the standards of students.
Last but not least, from my side I am suggesting one suggestion. Contributing to open source community will improve the students coding and design standards by seeing the coding standards of thousands of experienced engineers.
Good, Now that you bought the problems to light, we need to get the solution out there and change things. If knowledged people like you believe things can be changed, they will be.
ReplyDeleteSir,I see all points are relevant and big change is required the way engineering has to be taught .Personally i feel we can't do much about narayana/chaitanya kind of institutions ,since parents wants their kids to be studied in good engg colleges .Creating awareness to parents might help .
ReplyDelete2.Since major students come through engg colleges after attending coaching centres like narayana ,we need to bring them out of that mode .
3.I think internship programs,frequent tech talks from experienced professionals from industry will help
4.Tech talks from people who pioneered in research will help students who are inclined towards academics .
5.Overall good teachers + industry academic interaction required to improve the thinking process and changing perception about engg education
Sir
ReplyDeleteThis is my second reading of this blog post after a gap of 2-3 months. You have articulated the problems and solutions to them very clearly.
I plan to use some of these guidelines in my endeavour. Thank you sir.
Another point or observation which I want to add is related to faculty attitude towards checking students alternative proposals to a problem. I have observed in many colleges, faculty who are teaching programming is giving marks only the versions taught by him/her in the class. If a student proposes a novel approach, whole along his rest of his college stay he will be marked as an element by the teacher and gives very less marks or even fails. This attitude of faculty needs to be changed.
ReplyDeleteOf course, I did enjoy this treatment during my study. This behavior of faculty makes students(imaginative or inquisitive students) to get demoralized while pseudo-students will be getting laurels. This needs to be controlled by the academic system. But how? By having a separate cell or committee to listen to the students representations on especially on examinations programming related papers.
This comment has been removed by the author.
ReplyDeleteI read the whole blog and i may say every word is correct.I share exactly same thoughts like you sir and i will like to share my story with you. I have been introduced to Java programming during class 9th. I loved building logics. I remember i missed my history test once , because i was busy implementing the "Tower of Hanoi" program , which was considered to be a challenging program for a class 9th student :) . During my college days , i got introduced to web development and gradually went to code a social network for mobile , that had advanced features like messaging , image sharing , chatrooms ,emojis etc and even free sms sending :). I am talking about late 2010 and early 2011 , when mobile apps were yet not so common , hence the idea to develop a portal for mobiles.I was a full stack coder there. Wrote the whole code , designed the databases and secured the server. Its still online :) . I also tried my hands at competetive coding and i was at a decent rank on SPOJ during early 2012 , but then moved on to open my own startup company for webhosting with the name of etechost.com.It had a decent run for one year 2012-2013 , but then due to unavoidable circumstances , i had to shut it down. I went on to Persue my higher studies. I completed my M.Tech in CSE with research work in Cloud Computing. I suggested a working model for virtual labs , so that a student can carry all the university experiments , right from his home , using mobile using Cloud computing paradigm. I have worked for two companies since then and i am currently working in third. But ,i feel the same way for how the coding related subjects are being taught with no real focus in actual writing of codes. i am 27 ,and many a times i have thoughts of taking up teaching , i am waiting for someone like you to motivate me for this :) . I dont know if i can be a nice teacher or not.
ReplyDeleteGood to hear about your development(chronological). I was in the same dilemma after my Masters. I do not like state run colleges. Thus, I have joined BITS, Pilani. What ever little footing I have in CSE, I shall attribute to BITS, Pilani and to the students to whom I have taught. You have academic freedom there so you can experiment your ideas on students. So, I advise you to join BITS, Pilani and benchmarks yourself as a good teacher or not. Of course, do remember that students populations anywhere now are not comparable with populations there 25 years back. Do not do Ph.D there. Just test yourself as a teacher. Then, you can explore doing Ph.D some abroad universities. Best of luck. Thanks for expressing your views here.
ReplyDeleteHey this blog was very informative and interesting. Keep sharing such content as it will help many students in their learning journey. If you are Looking for the best assignment help in Canada, then you must visit My Assignment Services. They have proven themselves as the best assignment and academic service provider in Canada. For any information related to assignment writing services please visit their website.
ReplyDelete