Tools and techniques for use of theScheme programming language in Undergraduate