Programming C, C++, Java, PHP, Ruby, Turing, VB
Computer Science Canada 
Programming C, C++, Java, PHP, Ruby, Turing, VB  

Username:   Password: 
 RegisterRegister   
 Teaching CS and "mainstream" languages: An Open Challenge
Index -> General Programming
Goto page 1, 2  Next
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
wtd




PostPosted: Thu Apr 19, 2007 1:03 pm   Post subject: Teaching CS and "mainstream" languages: An Open Challenge

An open challenge to the compsci.ca community:

Tell us what unique advantages "mainstream" programming languages such as C, C++, Java, C#, VB, Pascal, and x86 ASM have to offer educators introducing computer science to students for the first time.

Yes, this was inspired by Tony's blog entry on Ruby as an intro programming language.
Sponsor
Sponsor
Sponsor
sponsor
klopyrev




PostPosted: Thu Apr 19, 2007 1:47 pm   Post subject: Re: Teaching CS and "mainstream" languages: An Open Challenge

What "mainstream" programming languages offer to educators is that they are widely used in the community and thus, there are many resources available to students learning such languages. There are many books covering these languages and many websites dedicated to documenting them. When I was learning Java in my computer science course, I frequently used online help. Some languages don't have such tools or they are hard to get ahold of. Therefore, all questions are directed to the educator. In general, it is easier for educators to teach the students "popular" languages for various reasons.

KL
bugzpodder




PostPosted: Thu Apr 19, 2007 2:52 pm   Post subject: Re: Teaching CS and "mainstream" languages: An Open Challenge

the main advantages is that policy makers understand its mainstream, and therefore will allow it in the classroom. a proposal to teach Ruby in the school for a schoolboard will likely get shot down. also, most compsci teachers only know the main stream language. it is actually fairly unlikely they know ruby or haskell, not to mention being proficient at it.
Tony




PostPosted: Thu Apr 19, 2007 3:12 pm   Post subject: RE:Teaching CS and "mainstream" languages: An Open Challenge

Though there are exceptions to all those points as well. Just because "Java" is mainstream, use of Ready To Program libraries is counter productive. I've seen C++ butchered with the use of non-standard headers.

And I've heard of teachers teaching mainstream languages without having any experience with that particular syntax. Usually it's in situations where the teacher is new, and the curriculum is passed down from previous year.

Even if one was to try and update the class plan, it would likely revolve around picking out a new textbook, which is likely to end up being for a mainstream language because this is a closed loop of a system. *sigh*
Latest from compsci.ca/blog: Tony's programming blog. DWITE - a programming contest.
wtd




PostPosted: Thu Apr 19, 2007 3:33 pm   Post subject: RE:Teaching CS and "mainstream" languages: An Open Challenge

I was hoping to get some discussion of what advantages the languages themselves offer. What about them makes it possible to convey fundamental concepts more easily or thoroughly than were some alternative used?
bugzpodder




PostPosted: Thu Apr 19, 2007 6:20 pm   Post subject: RE:Teaching CS and "mainstream" languages: An Open Challenge

actually, ready to program isnt too bad. it gave GUI support without the usual hassle, which is good for beginner cs students.
Drakain Zeil




PostPosted: Thu Apr 19, 2007 8:06 pm   Post subject: RE:Teaching CS and "mainstream" languages: An Open Challenge

You won't have to work backwards in thought, going from turing's

for i : 1..2 by 1

Which is garbage, when you are faced with the cold reality of c:

for(i=fac(4);unrelated-asdf;i*=2)
Martin




PostPosted: Thu Apr 19, 2007 11:40 pm   Post subject: RE:Teaching CS and "mainstream" languages: An Open Challenge

C++ offers very close work with the computer's hardware, so students are given the opportunity to gain a better understanding of exactly what is going on. You'd be hard pressed to find a C++ programmer who can't pick up Ruby (or really any non functional programming language) in a couple of days, yet I really doubt that someone who only knows how to program in Ruby would have an easy time learning C++.
Sponsor
Sponsor
Sponsor
sponsor
wtd




PostPosted: Thu Apr 19, 2007 11:51 pm   Post subject: RE:Teaching CS and "mainstream" languages: An Open Challenge

That is an interesting point. Of course, one might counter by asking if understanding such things is important in an introductory course. Smile
haskell




PostPosted: Fri Apr 20, 2007 5:32 am   Post subject: RE:Teaching CS and "mainstream" languages: An Open Challenge

Mainstream languages today show them where the industry is now. If they look around they can get a feel of where the industry has been and where its going, completing the tri-fecta.

Plus mainstream languages due have the advantage of basically being heavily scrutinized. This means that these languages tend to be very conservative in regards to their changes and such. Usually meaning what is compatible code now, will be compatible code 5 years down the road. Which is of great value. This being said, it also means that it gives jobs to new programmers of these languages. Since legacy code and code re-usability is pretty big, people who know these mainstream languages could be hired to maintain, modify, or integrate existing code.
Drakain Zeil




PostPosted: Fri Apr 20, 2007 3:44 pm   Post subject: RE:Teaching CS and "mainstream" languages: An Open Challenge

Taking baby steps in C or CPP at first is fine as a starting point. "Teach yourself C++ in 21 days" is an excelent example.
McKenzie




PostPosted: Fri Apr 20, 2007 6:02 pm   Post subject: Re: Teaching CS and "mainstream" languages: An Open Challenge

wtd @ Thu Apr 19, 2007 3:33 pm wrote:
I was hoping to get some discussion of what advantages the languages themselves offer. What about them makes it possible to convey fundamental concepts more easily or thoroughly than were some alternative used?


I know what you are saying, but the problem is it seems you want to talk about "why teach mainstream?" out of the context of reality. Granted there is some merit to talking about the educational advantages/disadvantages of one language or paradigm sperate from the context of High School in Canada, but I think that to do an honest evaluation of the issue you need to look at context as well. I think in looking at the context you can better evaluate how valid a particular point is. e.g. If I say I teach Java because the books I use come with nice shinney posters which look really cool in my classroom well then you can say... well, that's just garbage. Whereas, If I say my friends in industry say they prefer students trained in language X for co-op well then that has a little more weight.

bugzpodder @ Thu Apr 19, 2007 2:52 pm wrote:
the main advantages is that policy makers understand its mainstream, and therefore will allow it in the classroom. a proposal to teach Ruby in the school for a schoolboard will likely get shot down.


Sounds like Bugz is being hypercritical of administration? Well last summer I decided that, At Massey, It might be best to drop Turing in favour of either Ruby or Python. After carefully looking at each I decided that Python would better meet the needs of my students. So I did a lot of prep. work, and when I was sure It would work I sent an e-mail to the Technician to ask him to install Python In my classroom. Well, I soon found out that I needed to get approval from the "powers that be", and apparently that takes some time (They needed to make sure Python was "safe".) To make a long story short, it's April and I still don't have an OK from the board office.

Outside of the reality of the situation this argument boils down to the same one we always have. Do we start at the machine level and build on tools to handle complexity as the complexity arrises or do we start from a high level so that students never make bad habits that they later have to break. I tend to agree more with the first model, but I honestly think that the right answer is far more personal. I think some students would do better from the first approach, and some would do better from the second.

I personally teach Turing in grade 11(maybe Python next year) and Java in grade 12. I think Java in grade 12 is essential. It allows students to go to University and have the first semester be review. This gives them lots of time to adapt to the social setting and do minimal work to stay on top of their academics. Again, out of context, this is not the best reason to teach Java. In context, I think it is the absolute best thing I can do for my students. That being said, I still think Java is a good language to learn.
rizzix




PostPosted: Wed Apr 25, 2007 8:31 pm   Post subject: Re: Teaching CS and "mainstream" languages: An Open Challenge

BTW: If you rather remove mainstream languages, for the sake of "fun", so be it. But why replace it with ruby? Its not like ruby is any more interesting.


Anyway. As an intro language IMHO Python does a better job. It is more predictable. There are less surprises. Ideal for an introduction to programming.
wtd




PostPosted: Wed Apr 25, 2007 11:14 pm   Post subject: RE:Teaching CS and "mainstream" languages: An Open Challenge

Oh, I never suggested Ruby. At least not in this thread. Smile
Martin




PostPosted: Thu Apr 26, 2007 8:34 am   Post subject: RE:Teaching CS and "mainstream" languages: An Open Challenge

A bit of a tangent, but the University of Waterloo is dropping their Java based first year CS courses in favour of Scheme and C++.

Engineering students go with C++ and C#, I believe.
Display posts from previous:   
   Index -> General Programming
View previous topic Tell A FriendPrintable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

Page 1 of 2  [ 16 Posts ]
Goto page 1, 2  Next
Jump to:   


Style:  
Search: