CSC151 2010S, Class 04: An Introduction to Scheme Overview: * Why use programming languages? * Scheme basics. * Scheme history. * Lab. Admin: * Reading for Monday: Programming the GIMP Tools. * Assignment for Wednesday: Algorithms for Drawing. * Quiz 1 released. Email me an answer by midnight tonight. * The joy of ambiguity: Suppose someone doesn't fill in the course number on an add/drop form Writes in section 01 Has me sign it What should happen? * I'm working on responses to assignment 1. I hope to have them done this evening. About Programming Languages: * Computer scientists like to design languages in which to express algorithms. * Why? * The feeling of superiority one has when it can use jargon that no one else understands * A design language can be more concise * Lack of ambiguity * Easier to "parse" * Two important characteristics to each compuetr language: * The "syntax" - HOW you say things * The "semantics" - WHAT those things mean * Time flies like an arrow * Fruit flies like a banana About Scheme: * Designed at MIT as a teaching language * Really simple syntax * Supports multiple models of algorithm design * Basic activity: Apply a defined routine to some values (OPERATION VALUE VALUE VALUE) (+ 1 2 3) (* (+ 1 2) 3) * Basic activity: Naming values (define NAME value) (define PI 3) (* 2 PI) (define add +) (add 2 3) (add 2 3) Lab/Reflection * Nora says: "Be sure to trade off who is at the keyboard." * Sam says: How did you confirm your sqrt answer?