Programming Forums

Programming Forums (http://www.programmingforums.org/forumindex.php)
-   Python (http://www.programmingforums.org/forum43.html)
-   -   Teaching methodology question (http://www.programmingforums.org/showthread.php?t=13970)

nisim777 Sep 15th, 2007 11:30 AM

Teaching methodology question
 
I am the computer science professor at a Junior College in my area. For my Applied Programming course I am teaching Python. This is my first year at the school, and I have been teaching the way I learned from books (I'm self taught). Most programming books are set up similarly: 1) Printing, 2) Types, 3) Statements, 4) Loops, 5) Tuples, Lists, etc, 6) Functions, 7) Files, 8) OOP, 9) GUI (if used in the book. That list is not a definite, but most are similar. So, in my class I have my lessons arranged similarly.

Here's my problem, I am beginning to think that teaching Python inside of the framework is much better than installing the kitchen sink with no walls put up. I am considering switching my style and teaching functions and OOP right out of the gate. I think that if done correctly the students can grasp it all quickly, and it will make it easier to see how everything works together rather than introducing a "new way" later. Using Java as an intro language seems to work for many students. I know that Java is only OO, but why not teach Python as such?

What do you all think? Any suggestions on how to implement this? Anyone know of any good Python texts that use this method? Heck, anyone know of any good Python texts for intro to programming students in the first place? I am using "How to Think Like a Computer Scientist". Like I said, I'm self taught so I'm sort of building my own curriculum with this course.

Arevos Sep 15th, 2007 8:03 PM

Personally, I feel that the traditional way of doing thing will yield better results.

People are used to thinking procedurally. They put the key in the lock, then turn the key, then open the door, etc. More sets of instructions that are conditional require more thought, but these too have direct analogues in the real world; if it's too hot, the turn down the themostat, otherwise leave it be.

Once you start getting into loops you're pulling away from the tasks that people are used to performing, and into a more abstract realm. Functions push this bar even further, and object orientation further again. Starting at the parts that are hardest to understand seems counter-intuitive to me.

Half the problem is that many things that seem obvious to seasoned programmers, can be pretty tricky to understand for neophytes. Take variable scope, for instance. I've found that people sometimes have a hard time understanding the concept of local variables; just because an argument to a function is named "x", doesn't mean it's the same as the global variable "x". I expect most programmers take this for granted, and don't expect the student to trip up on such a "trivial" thing.

I think you need to give students a good understanding of procedural programming first, without muddying the waters with objects.

DaWei Sep 15th, 2007 9:43 PM

I disgee. The lowet common denomitor is very low, but where else can one start?

Dietrich Sep 17th, 2007 3:07 PM

Quote:

Originally Posted by DaWei (Post 133862)
I disgee. The lowet common denomitor is very low, but where else can one start?

Talking about learning a language, what kind of English is this?

I would say keeping the lectures interesting is most important! Nothing wrong with throwing in some functions or classes early on, as long as they make sense.


All times are GMT -5. The time now is 12:48 PM.

Powered by vBulletin® Version 3.7.0, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Copyright ©2007 DaniWeb® LLC