Monday, June 9, 2008

Alternatives to teaching programming methodology IN C++

Hi all,



Right now i am unable to phone or send text messages from my Orange Cell Phone.....

This situation is so bad...At times, sending your text messages is simply impossible..How long do we have to suffer from the whims of Orange? Hopefully, there is no Fair Use Policy on texts or call time.... Anyways...I believe that Orange should have the decency to inform its customers using a text message that the network will be down...in case they have planned service upgrades.

I am faced with a fundamental question. Having myself learnt programming methodology in C++, I was wondering if we could use another language instead. Many times, i have had students whinging and whining about the complexity of the C++ syntax.

However in my opinion, the essence of programming methodology is not the language used for the implementation but it is in fact allowing the student to 'think' in a series of simple stepwise manner...i.e 'to think algorithmically'...subsequently, the use of a programming language to implement this thought becomes a trivial issue.

I have noticed that some students face difficulties imagining the different steps to be followed such that a solution is devised...I said devised...not implemented.

The implementation of a solution is trivial once you know exactly what are the steps that make up the solution. If our students find C++ tough..then i believe then we could look for alternative languages with more or less the same capabilities, because as I said it is more important to inculcate problem solving abilities and programming concepts than a specific language. We need to show them 'how to think'...and not 'what to think'...and definitely not 'what to think in C++'...coz some people tend to lose their thinking capabilities at the sound of 'C++'.

Programming is an art...the essence is the inspiration (The Aha moment!) and the expression are the codes...irrespective of the language used.

Would Romeo and Juliet be a less grand and less emotionally-stirring masterpiece if Shakespeare had written it in French (Assuming he knew French!)? Alors le langage n'importe que peu. L'idee ou l'inspiration est fondamentale, l'expression n'est que secondaire. Qu'en dites-vous?

Please vote and comment.

15 comments:

Chaya said...

Bloody Orange people, only part of my text msgs are being delivered(I didn't say sent!), and they are charging fees for the whole message!!!

Enfin...

As you said,any programming language is secondary! What if the student didn't even understand the concepts? What will he do with the languages whether it's Java or Scheme or Pascal.

You've always stressed on "get the concepts right! Coding part is only secondary!" and this made me realise and believe in the fact that whatever be the programming language used to express the solutions to any problem, CONCEPTS are of prime importance.

C++ is a good language--it caters for object-oriented programming as well. Words in quotes above still "resonate" (if I can use this word) in my ears when I look at my C++ lecture notes.

I hope to prepare some theory notes for my good old days as concerns the concepts, lol.

Cheers

Chaya :)

Anonymous said...

Lol Orange, why are you blaming orange?? its very good for health.. lol ofcourse i am talking about the fruit.. filled with vitamin C. enfin a ce qu'on ma dit ein lol.

En parlant de vitamin C lol le blog parle du C++ nah... well don't panick folks C++ is not a new type of vitamin, but it can be a severe headache for some who don't understand it...

With the experience i think Scheme will be a better candidate to replace C++ as alternative to teaching. For many students ( 1st year and even 3rd year) C++ is a headache.. its a language filled with powers but il y a un dicton qui dit, si tu ne domptes pas le lion, c'est le lion qui va te dompter et biensure il va te manger ( dicton written by SuNdeep .i.e me lol)...

For C++ its really very easy, nah its really very very very very very easy to get confused lol...

My first year with C++ was just a nightmare, i ddnt even know how to write a program with its looops and structure bla bla and all other superb function lol...

But i think Scheme will be the best for its simplicity. It is so simple... You can read the code and understand it as if you are reading a hot and spicy article in the defi-plus haha...

I think its time to change the facon d'etre in da university..come on dude how many students do you want to re-sit for Programming Methodology ein???

TIPS For C++

To work efficiently with C++, you must above all understand its concept... how it works, the syntax... and also u must understand the problem put before you! you cant just read the problem once and go directly on ur pc to write the whole program at one go..come on you must plan and ofcourse ask help with people who know more in C++ ( a contact person will be Mr Gavin, he'z a lecturer in some university at Reduit haha jst kidding)...

And also to really work with C++, you can't just read lecture notes or read solutions or even learn by heart... you must PRACTICE . If u practice then automatically you can work out any problem put in front of you!!!

Here'z my opinion...
Till then cheers and cya soon...

SuNdeeP

G@V!N said...

Looks like Scheme is getting votes!!!

Well i just watched the news, n noticed that MBC had sent a reporter to UK, to interview our PM..the whole interview laster for about 2 minutes.

Simple Maths:
An Air-ticket to UK at this time of year costs about Rs 25 000. we also have to add accommodation, and pocket money...

MBC could have saved that much money if they had a phone interview. So at an agreed time they would have phoned our PM, and he would have given the interview.

Assuming an international call to UK costs Rs 50 per minute (though it is much less), the cost borne by MBC would have been Rs 100, if they used VoIP, it would even be less.

Now you see where your MBC licence fee goes, and you also have an explanation about why we get less an less international football matches on TV, and why you get serials 3 seasons after...

Apres banne idiots coumme sa pou dire nou arrete fer gaspilliage...
Ils prechent sans pratiquer!!!

Keep voting for the programming language!!!

Gavin

Chaya said...

That's Politics & The MBC!

Anon said...

Lol @ Orange! Seems they are not well liked by Mauritians! :)

Well, C++ part.

1st time I set foot in the Programming Methodology class, C++ was totally new to me. Well, I did programming SC and HSC level, so the logic part was nothing great. However, I didn't like the teaching method. Programming theory never worked for me. I knew C++ would be powerful and fun though.

So? I took a "Learn C++ in 24 hours" book, sat down in front of my PC and compiler ready. Then? Well, I read stuff, and ran my own pieces of code to see how they work. I didn't copy the book's example. After that, I wrote my own tiny programs, like to calculate factorials from a variable, that got its value from a previous operations. Basically, I "played" with C++.

C++ is easy to understand IMHO. Once you get the syntax particulars (and exceptions!) down, you are ready to go. C++ did give me some headaches, specially with things like concatenation. PHP's period concatenation is simply great! I dunno about Scheme, but I'll try giving it a look now, seeing all the praises it's getting.

Mr. Sathan's classes, luckily for us, were really fun and interactive. Now, imagine students going through a P.M class, where the lecturer goes on and on with theories, and slides full of obscure C++ syntax. It's not surprising that students start disliking P.M!

If I could request one thing from UoM, it's that for P.Methodology, start using new techniques. iostream.h is replaced by iostream, but still, the former is still taught. It's time to update, no?

Ps. Any word about exam performance yet?

Anon! :P

Anonymous said...

Well to start i can tell im beginning to hate zorange pourri more and more :/
Internet has slowed down since they came and now mobiling too is becoming a pain at times :/

Now for Programming Methodology(if i write PM you know im refering to Programming Metho and not to some little island's prime minister lol)

I, too, like anon did computer in sc and hsc and so the basics of programming were not so hard being learnt.
I think that using PM that its as from linked list that most students start to get stuck with the coding, though this time i can tell that the concepts were easily understood thx to Mr sathan :)

I think what should be done is to have some module on algorithm first, at least to inculcate concepts to students. then later teach them about the codes and so on using PM
at least we would be sure that concepts are in and its time to enter applications

I dont think many students will do like anon and try to discover the program themselves (well being a student i can tell: laziness power!!! lol)

should PM be in C++ or not, that is the question...
well having done only VB and C++ in my life i cant really answer this one since i dont know about the capabilities of the other programming languages...
but if there exists a program that could help teaching the programming concepts better than C++, then why not use it?

darklide

P.S
I second anon! i want to know about exams performance :P

G@V!N said...

Hi all,
Exam performance: As with all exams, there are those who pass and those who fail. Anon and Darklide, come one guys!!! Its time to chill ...its holidays...so do not worry about the exams results...

Anon: Try this http://norvig.com/21-days.html
I am sure you will laugh about learning things in 21 days...btw, Mr. Norvig is the guy in charge of R&D at google...so he is not 'a nobody'.

Darklide: Laziness power!!! Lol! Well hopefully they will change will change unless the only thing they will graduate in will be BSc(Hons) Reseats (Specialisation in Failures).

Anyways!I would like you to enjoy coz YR2 (for those who manage to get there) is not as easy as year one, and guess what....There is more Programming Down the line...so ENJOY your holidays NOW!!!

The modules are interesting!

Hopefully now you know what to expect at uni and how to plan your work:

Failing to plan something is planning to fail that very thing.

Enjoy your Holidayz!!!

G@V!N

p.s nous PM ine fane ene dal lor TV...He said'...les problèmes internationales...'- Problèmes c'est ene mot masculin...alors li ti supposer dire 'internationaux'.
De plus line fer sa erreur kan li La France...pheew!!Quelle honte!!
... If he needs a good French teacher i will gladly find him one. BTW i think he could take lessons off James Burty David, the guy is a reputed french teacher...who has written college textbooks as well.

Chaya said...

Lol...ben je crois c akoz so PS pa ti prepare so speech! lol

cheers

Chaya :)

Anonymous said...

stop reading a bit down (kinda tired here, apologize for that)

im thinking more abt either Java or C..would C would be nice given that its used in the 3rd year in Operating Systems and its a plus for other application related (linux and others,cant think -_-)

rather that the programming language itself, i think the method of teaching and the example/labs used should be tailor made in the view to make the student understand that concept..hell i still get problem to understand the concept of pointers in some cases and its so simple..why? i dunno...the lazyness has its part of the job bt the hhmm how to say it...i still recall the drive, motivation and bah laugh if you want, bt happiness behind when i managed to make a program during the first lab (i thk Fibonacci's series) bt despite the fact that it was actually showing us how to assign variables and use control stuff, it was fun and i still know it now and can apply on piratically most language...the concept is here...cant say the same for others... bt i think the fun aspect is often not accounted for...maybe (i dunno for sure bt its worth looking at) adding the fun factor to this might solve the issue of the fear of the language

anyway good luck wiz that :)

Anon said...

OMG! The world is going haywire? A lecturer is actually telling students to chill? :P

MBC stuff amazes me. How come in past years, we used to get most matches live, and now, we can't even get 10 matches for Euro 2008 live? Is it some kind of MBC/Satellite TV conspiracy??

Yr2 huh. More programming huh? Hope I do get there? I just hope they keep the Maths away from me! (Sorry Darklide!). Seems fun though. Wonder how it will be. (Tips..Tips!)

I gotta agree though. Perhaps an "Algorithm and Problem-solving skills" semi-module might be a good prelude to P.Methodology. Then students will know how to think to solve problems, and what should be applied to solve it.

Anon :)

Anonymous said...

Anon get lost! lol maths power :D XD lol
I checked my modules and i have many more interesting things to do in the second year though its going to be a pain lol

Hmmm why dont all lecturers think like him :P
Yeah we are going to have as much fun as possible for the hols, tho its a pain at times with the weather PFFFFF

Well MBC ratings were already not that good with MBC being Ministers Boardcasting Corperation. now with the football thingy i think that MBC will start to get on the nerves of mauritian ppl. "Luckily" England is not taking part of Euro else i think the reaction from ppl would have been worst

darklide

G@V!N said...

I will just throw a quick question to you lot:
What do you think makes programming seem such a difficult subject.

You might as well chk out the link below:
http://www.ariel.com.au/a/teaching-programming.html

Your responses are important!

Gavin

Chaya said...

Well I tend to believe that


1) the approach to teaching the module is ............. (i dn't know what word to fit in here--a negative word). To be honest--MIS people missed the very first lecture of programming due to the bla bla bla at the beginning of the semester...and for almost a whole semester we were Lost in the lectures. And that's why we have always been complaining as concerns programming except for some very few.

MAYBE, had I been a teacher/lecturer for programming, most probably I would start with an analogy between mathematics and programming--both being learning concepts and applying them to different situations.

As concerns, the part on the programming language, I would start by explaining that any language whether it's english, french, hindi,urdu or tamil has it's own "rules and regulations" which I in programming terms we call "syntax and semantics".

Furthermore, MAYBE I would take an example of the hindi alphabets of how they evolved over time, to explain evolution of C to C++.

A next explanation, would be the choice of the programming language or maybe the explanation of whatever be the programming the language, understanding of concepts is of prime importance.

I also tend to believe that if programming is taught via analogy between real life aspects and programming concepts, it would be easier for students to understant--just like you took the examples of the Daltons for explain AddInOrder to a linked list. That's about the approach.


2) what makes programming tough secondly, is the fact that it is being lectured (except for your case--it was being taught). Ben bon, on est a l'universite and we only have lectures. High time to accept this as a fact...though there are some really very dedicated lecturers.


For me, those two were the only reasons why I found programming difficult. As for now, I enjoy it.

A final word, no offense on what I said.

Cheers

Chaya

vicks said...

The ideal programming language to start with, well maybe something that doesn't give 5-6 error messages when we forget a ';'

something very close to english with a basic syntax. very few keywords. only one way to do things.. having all sorts of ways to do 1 thing can be confusing to start with

well thats my opinon :P

during the past 3 years there has been many debates on blogs, passionate discussions with lecturers about the best language to start programming methodology in.

many might say well we've been doing c++ for many years, y change now? why should we change a winning formula??

but the question remains.. is this a winning formula :)?

starting with java i think will be too complicated, everyhting being object oreinted.

many of my friends who did PL this year have been praising Scheme.

i think we should revert to how its done in colleges. taught on paper, with pseudo codes :P and then once they master every construct and develop the skill to solve a problem.. choose a language and start coding.

G@V!N said...

I agree with you Vicks, The error messages in C++ can be annoying at times.

Well it is a winning formula...for sure...but i do not know who the winners are!

I am tempted to go for Scheme, its soo nice and easy! Though Python is simpler.

Trust me..Pseudocodes and flowcharts are definitely coming back!

We have to teach them to conceptualise the solution, only then shall we move on to implementing it!

Gavin