CS teaching approaches

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

CS teaching approaches

Daniel Ajoy-2
On Sun, 20 Dec 2009 06:00:01 -0500, <[hidden email]> wrote:

> hello,
> i will start introductory CS courses for middle school students (age 10 -13);
> i will mainly make use of logo-like languages and approaches, Turtle
> Art among a couple of others;
> i'd like to ask if you know which the most widespread approaches to CS
> teaching are today for young students, or if someone has collected on
> the web a simple classification among different approaches, showing
> similarities and differences;
> i'd like to let students taste something new and then report back to
> you the result of the courses


In my country some teachers still go through

Flowcharts
pseudocode
then actual programming: using visualfox, pascal, or visual basic

another conducting thread is the

"input - processing - output"   model

which leads to DFD diagrams http://en.wikipedia.org/wiki/Data_Flow_Diagram

and then to coding


I've seen many introductory courses focus on:

variables
types
type conversions
input and output commands
conditional commands
loops

In a Logo course we don't talk about types or type conversions. And loops and conditionals are approched together using tail-end recursion instead. Usually in the context of drawing stars or polygons.

Another approach is to start with Object Oriented concepts form the beginning. Thinking about which objects you want to model and which attributes and behaviours they should exhibit. Teaching Smalltalk is a lot about learning how to navigate the jungle (ecosystem they call it) that is the smalltalk image.


Teaching J or APL is again very different. They you just teach what the commands do, and how they go about changing the input until you obtain the desired output.

Daniel




_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: CS teaching approaches

kirby urner-4
On Sun, Dec 20, 2009 at 7:23 AM, Daniel Ajoy <[hidden email]> wrote:
On Sun, 20 Dec 2009 06:00:01 -0500, <[hidden email]> wrote:

> hello,
> i will start introductory CS courses for middle school students (age 10 -13);
> i will mainly make use of logo-like languages and approaches, Turtle
> Art among a couple of others;
> i'd like to ask if you know which the most widespread approaches to CS
> teaching are today for young students, or if someone has collected on
> the web a simple classification among different approaches, showing
> similarities and differences;
> i'd like to let students taste something new and then report back to
> you the result of the courses


In my country some teachers still go through

Flowcharts
pseudocode
then actual programming: using visualfox, pascal, or visual basic

Wow, visualfox. 

That's another language I've used plenty. 

Wish I could find another gig for that here in Portland -- maybe I will.

Is visualfox still used commercially a lot?  I hear it's big in Prague -- but that was some years ago.

Back to Python, I've been helping this polytech student in Indonesia with his Monte Carlo integration.  There's a simple Mathematica implementation I'm following, but I think my error term calc is screwed up. 

If anyone here has the time to give me some pointers...  help me spread Python user base in Indonesia! 

CS teachers probably do this in their sleep, or for breakfast [some other idiom].  This could be another area where our DM track (digital math track) segues to calculus (always looking for those segues).

http://math.fullerton.edu/mathews/n2003/MonteCarloMod.html

from random import randint
import math

def getpoints(n, a, b):
    interval = b-a   # assume a <= b
    points = []  # empty list
    for i in range(n):
        r = randint(0,100)  # some percent
        point = a + (interval * .01 * r)  # a plus some percent of interval
        points.append(point)
    return points

def g(x):
    """ the function to evaluate for its definite integral over an interval """
    # return x * x  # or x ** 2
    return math.sqrt(x)

def average(f, somepoints):
    n = len(somepoints)  # how many points
    thesum = sum( [f(x) for x in somepoints])
    return thesum/n

def geterror(f, guess, somepoints, a, b, n):
    """ I have some questions about this """
    thesum = (1.0/n) * sum( [f(x) * f(x) for x in somepoints])  # right?
    return (b-a) * math.sqrt(abs(thesum - guess*guess) / n)

def montecarlo(f, n, a, b):
    thepoints = getpoints(n, a, b)
    theaverage = average(f, thepoints)
    approx = (b - a) * theaverage
    error = geterror(f, approx, thepoints, a,b, n)
    return (approx, error)
 
def tests():
    print getpoints(10, 1, 4)
    print getpoints(10, 0, 10)
    print average(g, getpoints(10, 0, 4))
    print montecarlo(g, 100, 0, 4)
 
if __name__ == "__main__":
    tests()
      


Kirby

--
>>> from mars import math
http://www.wikieducator.org/Digital_Math


_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig