Differences between revisions 1 and 14 (spanning 13 versions)
Revision 1 as of 2002-09-29 12:56:37
Size: 547
Editor: ipd54b5995
Comment:
Revision 14 as of 2003-11-23 03:57:32
Size: 3120
Editor: dsl254-010-130
Comment: Block Patterns.
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
I am a student currently in the last year of VWO, and will study Computer Sciences at the University of Utrecht next year. I use Python for a wide variety of tasks, including replacing shell scripts and automatically converting Microsoft Word documents to websites. See Wiki:JohannesGijsbers for more on me, but I'm subscribed to this page, so you can leave me messages here.
Line 3: Line 3:
I'm currently working on a syntax highlighter for complete projects, making it easy to browse through all of the code. I use [http://www.program-transformation.org/twiki/bin/view/Tools/XT XT], a bundle of program transformation tools to ease the parsing.---- '''Email:''' jlgijsbers at planet dot nl

----
So, if we had a nice pattern repository wiki, we could write about ''decorate-sort-undecorate'' there and link to it... ''{;D}='' -- LionKimbro [[DateTime(2003-11-21T22:18:39Z)]]

Wiki:PortlandPatternRepository? ;) -- JohannesGijsbers

Two thoughts:

  * I'd like a ''focused'' design patterns community.
  * I'd like a ''block'' patterns community.

I think that there is a type of pattern that people use within a procedure.

For an example of a basic one, there is the ForLoop.

But there are also others, like First``Time``Seperate versus First``Time``Integrated.

That is, do you:

{{{
#!python
first_time_a()
always_b()
first_time_c()
always_d()

while condition:
  always_b()
  always_d()
}}}

...or do you...

{{{
#!python
first=1

while condition:
    if first: first_time_a()
    always_b()
    if first: first_time_c()
    always_d()
    first=0
}}}

Surely, there are advantages to each one, no?

I taught beginning programmers for 2 years. I found that I didn't have words for a lot of things that I was trying to explain to them. Now I think I have the word for it: a "block pattern."

I think a site of block patterns would be interesting, and very beneficial for study by beginners.

Decorate``Sort``Undecorate may be a block pattern. But maybe not- maybe it's an algorithmic pattern. But are they that different?

Speaking of algorithms- we need multiple algorithms wiki. {:)}=

Good talking with you. Feel free to delete whenever you like.

-- LionKimbro [[DateTime(2003-11-22T04:45:20Z)]]

Well, if I understand the code correctly, I would just do:

{{{
#!python
first_time_a()
first_time_c()
while condition:
    always_b()
    always_d()
}}}

But that isn't really the point. What do you mean with a block pattern? It seems like another level of Scope (as in the Wiki:DesignPatternsBook). -- JohannesGijsbers

----

Well, I meant that "a" has to come before "b", which has to come before "c", which has to come before "d".

As for DP: Yes, it is a matter of scope.

My design patterns book isn't about how you arrange your lines and variables within a function. It's about how you arrange your collection of classes, objects. I want "block design patterns," to give my students who are just trying to figure out how to write a function.

Like: "Nested``Loops," to do things like cycling over lists of lists, and hitting all of them.

I've been programming since I was 7 years old. When I took CS in college, I got to watch people smarter than I am struggle with how to calculate out a multiplication table, or follow two pointers in a row.

I don't think they're stupid. I think that I just figured out, through trial and error, in my first years of programming, how to make these basic structures.

It'd be nice to have a systematic way to teach those basic "block" patterns. (I'm just making up the term.)

-- LionKimbro

----

See JohannesGijsbers for more on me, but I'm subscribed to this page, so you can leave me messages here.

Email: jlgijsbers at planet dot nl


So, if we had a nice pattern repository wiki, we could write about decorate-sort-undecorate there and link to it... {;D}= -- LionKimbro DateTime(2003-11-21T22:18:39Z)

PortlandPatternRepository? ;) -- JohannesGijsbers

Two thoughts:

  • I'd like a focused design patterns community.

  • I'd like a block patterns community.

I think that there is a type of pattern that people use within a procedure.

For an example of a basic one, there is the ForLoop.

But there are also others, like FirstTimeSeperate versus FirstTimeIntegrated.

That is, do you:

   1 first_time_a()
   2 always_b()
   3 first_time_c()
   4 always_d()
   5 
   6 while condition:
   7   always_b()
   8   always_d()

...or do you...

   1 first=1
   2 
   3 while condition:
   4     if first: first_time_a()
   5     always_b()
   6     if first: first_time_c()
   7     always_d()
   8     first=0

Surely, there are advantages to each one, no?

I taught beginning programmers for 2 years. I found that I didn't have words for a lot of things that I was trying to explain to them. Now I think I have the word for it: a "block pattern."

I think a site of block patterns would be interesting, and very beneficial for study by beginners.

DecorateSortUndecorate may be a block pattern. But maybe not- maybe it's an algorithmic pattern. But are they that different?

Speaking of algorithms- we need multiple algorithms wiki. {:)}=

Good talking with you. Feel free to delete whenever you like.

-- LionKimbro DateTime(2003-11-22T04:45:20Z)

Well, if I understand the code correctly, I would just do:

   1 first_time_a()
   2 first_time_c()
   3 while condition:
   4     always_b()
   5     always_d()

But that isn't really the point. What do you mean with a block pattern? It seems like another level of Scope (as in the DesignPatternsBook). -- JohannesGijsbers


Well, I meant that "a" has to come before "b", which has to come before "c", which has to come before "d".

As for DP: Yes, it is a matter of scope.

My design patterns book isn't about how you arrange your lines and variables within a function. It's about how you arrange your collection of classes, objects. I want "block design patterns," to give my students who are just trying to figure out how to write a function.

Like: "NestedLoops," to do things like cycling over lists of lists, and hitting all of them.

I've been programming since I was 7 years old. When I took CS in college, I got to watch people smarter than I am struggle with how to calculate out a multiplication table, or follow two pointers in a row.

I don't think they're stupid. I think that I just figured out, through trial and error, in my first years of programming, how to make these basic structures.

It'd be nice to have a systematic way to teach those basic "block" patterns. (I'm just making up the term.)

-- LionKimbro


CategoryHomepage

JohannesGijsbers (last edited 2008-11-15 14:01:21 by localhost)

Unable to edit the page? See the FrontPage for instructions.