Anyways, So is MHRD/(Whoever cares) doing something at School Level?
Wouldn't that solve the demand of Python teachers as needed by
"National Mission on Education through ICT & Python" and actually
reduce the friction to its adoptibility which I can obviously see at
engineering level, I'm sure not many of the profs/teachers at my
college would put efforts to try out Python.
Regards,
Abhishek Mishra
out for Day 2 :)
On Sun, Sep 27, 2009 at 08:14, Abhishek Mishra <idea...@gmail.com> wrote:
>
> I'm sure not many of the profs/teachers at my
> college would put efforts to try out Python.
Here is my experience after a few interactions : The school teachers
(i had met last year) were interested but the management does not
trust volunteers. Besides, each school has its own idea of how to
promote computer education in schools. Most of them force students to
buy text-books all teaching proprietary software :( Also the word
"computer education" preys on the parents desire --it is a
money-spinner in the name of 'making the student computer literate' --
parents are charged extra money per month as part of "computer
education", lab fees, etc... Students in grade1, grade2 were being
taught computers -- their notebooks had nice colored pictures of a
monitor, printer, laptop, with the teacher's red-ink ticked mark and
"good" sign for the color not going out of the lines. I kid you not.
One school principal lamented about Indians not writing their own
OS/compilers, etc.... when I politely suggested that he would set a
trend if he removed the pirated copies of a proprietary OS and
installed the Ubuntu CD that I gave him.
All this was about a year ago in Bangalore at the CBSE schools and one
government aided school. I doubt if things have drastically changed
for the better since.
IIRC, recently there was another effort to train the government teachers :
http://mailman.linuxchix.org/pipermail/indichix/2009-July/001674.html
--
vid
http://vid.svaksha.com ||
Yeah I want opinion of many people over this...
---------- Forwarded message ----------
From: Perica Zivkovic <perica....@gmail.com>
Date: Mon, Sep 28, 2009 at 1:25 AM
Subject: Re: [python-nl] Python at Schools
To: Dutch Python developers and users <pyth...@python.org>
Hi there,
I had contact with several schools/universities in US which are using
Portable Python in their classrooms. They install it on USB (or local)
drives and everything works, no permissions/ configuration hassle. If
kids broke installation it is simple matter of re-extracting Portable
Python again and viola they can continue programming.
On the homepage of the project in "Useful links" you can find couple
of links to free python books.
In the next version I plan to include (optional) documentation
together with Portable Python (http://www.PortablePython.com).
regards,
Perica
On Sun, Sep 27, 2009 at 9:48 PM, Abhishek Mishra <idea...@gmail.com> wrote:
>
> Hi,
>
> >From some source that I can't remember at this moment, I remember
> hearing about how Python is popularly used as a beginner's language to
> teach kids programming in European countries. Could some one verify
> this for me?
> And if yes, it is true that Python is being used in such a nice way,
> then I would like to ask as to what kind of teaching materials are
> being used for the purpose?
> Are they picked from the internet, or modified and
> simplified versions of guides like 'Dive into Python' ?
> Could someone point to Python teaching material for kids, if available
> on the internet ?
>
> Thanks,
> Abhishek Mishra
Correct. First understand the problem. Students aren't taught how to
think- they are made to memorize programs. We can't get rid of all
these problems magically by replacing programming language X with
Python. In fact, it'll make the problem worse with its complex data
structures, list comprehension, iterators, and generators. Until
recently, MIT had a fantastic introductory computer science course
structured around Scheme (Structure and Interpretation of Computer
Programs). Now they've built a course around Python. My point is quite
simple: several programming languages fit the bill. We need to design
a fantastic introductory course, not arbitrarily go around asking
schools to switch to Python.
> 2. Why not try to encourage the "hacker" mentality in children -
> change part of the code and see how the application behaves. Some of
> my earlier memories involve spending a lot of time with LOGO tweaking
> different parameters and seeing their effects.
Good point. As Abhishek pointed out, this isn't easy at all. See last
paragraph for more on this.
> Python eliminates the need for the ubiquitous boilerplate code
> synonymous with C(++). And thank you for saying it - the horrible blue
> Turbo C++ editor _must_ die. I recollect a friend telling me that
> she's actually forced to use it for her undergrad course.
How did anyone design a course around a compiler for an imaginary
programming language? Either teach a ANSI standard, or create a good
well-documented language just for the purpose of teaching. I don't see
the language Turbo C++ compiles documented anywhere, and I'm pretty
certain it wasn't created for the purpose of teaching.
> Anna University starts with C, then jumps to Bash (?!!?!) and then jumps
> back to C and C++. I've no idea where it is going (I'm in my third sem, and
> we're with a new curriculum), but I've seen glimpses of Flash(?!). 99% of my
> friends gave up on programming a month into the course - C isn't exactly the
> best first language, and Bash is just... curious.
C is terribly complex. The limitations on sizes of data types, highly
imperative style, and pointers give the student a window into
microprocessor design. However, this is sometimes, the desired result.
It is admittedly difficult to design a course around C to teach good
programming, but I'm attempting to do it. Why? Because it's easier to
convince schools to accept improvements to their existing C course,
than dump C for another programming language.
... And finally about designing that introductory course:
Designing a good course can be achieved through a long
teaching-redesigning cycle. I'll try to summarize the features of a
good introductory computer science course. Feedback is welcome!
1. Choose one easy-to-understand programming language; however,
encourage students to submit assignments in a different language.
2. One fantastic primary book is needed, along with good
language-specific reference manuals.
3. For routine assignments, prepare a huge problem set of ascending
difficulty, along the lines of ProjectEuler.
4. Teach programming, and not the programming language. Discuss only
discuss abstract ideas in class, and ask students to write
implementations in a language of their choice. Avoid building
language-specific patterns (for example, the double-for loop for
generating prime numbers in C got stuck in my head). Discuss
implementations AFTER the students have tried it themselves. Do not
restrict discussions to a single programming paradigm.
5. Collaborative programming sessions where students learn to
implement from each other. No one instructor will be able to provide
such a vast variety of implementations.
6. A huge reading list students can optionally read, including
articles on debugging, versioning, testing, and profiling. This is the
engineering aspect of programming, and I believe that this cannot
really be taught. It's important to make students write large programs
in steps, so that they will be able to appreciate the importance of
these tools.
7. Another optional reading list for theoretical computer science.
Give them insights into the latest work in every field.
8. Finally, it all boils down to grading. If you're going to ask
students to evaluate things like (i++) + (++i) in the exam, it's clear
that you're expecting students to know programming language
intricacies, and not programming methodology.
Practical steps: Teach! I'm trying to get a chance to teach an
introductory course in computer science myself. But it's much harder
for me, since I'm just an undergrad student.
--
Artagnon (.com)