Programming by choice: urban youth learning programming with scratch
LogoBlocks: A Graphical Programming Language for Interacting with the World