[Edu-sig] assigning homework

Jeffrey Elkner jeff@elkner.net
09 Sep 2001 14:24:01 -0400


On Sat, 2001-09-08 at 09:59, agauld@crosswinds.net wrote:
> On 7 Sep 01, at 22:00, Dustin Mitchell wrote:
> > On Thu, 6 Sep 2001, Timothy Wilson wrote:
> > > Any pearls of wisdom from the experienced programming teachers 
> 
> As a non teacher I was going to stay out of this one but 
> I can't resist...
> 
> On the subject of students swapping code - I'd see that as 
> inevitable and structure the homeworks around that assumption.
> Sharing code is a good thing(TM), encourage it.
> 
> One other thing to encourage is not to create from scratch 
> but take a working program and extend it.
> - Make it menu driven
> - Add an extra function to the menu
> - Improve error handling
> etc...

I completely agree with Alan.  The most exciting learning happens when
students are working on real projects that someone is really going to
use.  Having them work together and reuse code is what open source is
all about.

We had 5 students at Yorktown work on a project they called pyIOS.  It
was a CISCO IOS simulator.  They even set up a sourceforge site and got
other folks to contribute.  That was definitely the most exciting
project of the year, but there were several other similar efforts.

I always encourage students who get that far (and many do) to reach out
to the Python community to help with their projects.  That is one of the
great strengths of using Python and they way I would like to see them
learn to work.

> > about team programming in terms of program structure.  Algorithmic
> > abstraction, functional abstraction, object abstraction, procedural
> > abstraction -- all of these are ways that real programmers break
> > programming problems into smaller chunks for individual team members.  
> 
> This is good too but I'd leave it till at least after functions and 
> modules are covered. Then you start giving out homeworks 
> where 4 modules are required to solve the problem, divide 
> the class into 4 and each must solve on quarter, then get 
> the 4 bits to join together.

I cut the number of computers in my lab in half this year, so that two
students share each computer rather than having each student have their
own.

I did this to make collaboration a necessity.  I plan to use peer
programming methods (extreme programming) for projects throughout the
year.  In the beginning I will be the client and the students will be
the programmers.  Later in the year I would like to try setting up
situations where the students can play both client and programmer roles
for each other.

Tim talked about doing this last year.  He convinced me to give it a
try.

I'll keep you all informed as to how it goes...

jeff