CSC151.02 2013F, Class 13: Transforming Colors
==============================================

_Overview_

* Preliminaries
    * Admin. (Lots!)
    * More comments on six P's.
    * Questions on the exam.
    * Questions in preparation for the quiz.
    * Quiz!
* Lab

_Admin_

* Warning!  It's Friday the 13th (class).
* If you choose to drink alcohol this weekend, please drink responsibly.
    * And make sure the people around you do the same.
* We're keeping lab partners for one more day.  
* If you send me email that you want me to look at, please title it
  something like QUESTION or HELP or something similar.  If you title
  it "CSC 151 Homework", I'll probably just file it in my "to grade
  later" folder.
* Mentors and tutors
    * Sunday night mentor session moved to 7pm
    * Mentor sessions are focused times - The mentors will answer questions,
      but they've also usually prepared some activities to help you learn.
      They also know the class really well.
    * Tutoring times are a chance to ask assorted questions, but the tutors
      won't know things as well and may have less time to spend with you.
* Lab Writeups
    * Typically one or two problems.
    * Due before the next class period (with some slack for those due
      Tuesday and Wednesday)
    * When grading labs, I'll generally add a few notes and then say
      something like "fine" or "acceptable".  (Or perhaps "unacceptable",
      if it's unacceptable.)  I then record either 1 or 0.
    * OK if it's wrong, but note that you know it's wrong and come talk to me.
    * When submitting labs, please title your email something like 
      "CSC 151.02 Lab Writeup *N*: *Title*".  (No quotation marks)
        * Today's should be "CSC 151.02 Lab Writeup 4: Transforming RGB Colors"
* Grading
    * Distributed last night.  Our email system worries that I'm a spammer
      and delays some grades.  I watched email cross.  
    * CORRECT ME WHEN I'M WRONG (or when you think I may be wrong)
    * If you have zeros and shouldn't let me know.
    * I'll send updated grade info after I grade the quizzes and try to make it
      a policy to send out updated grade info each time I grade something
      of reasonable size.
* It sounds like there may be room for one or two more people to switch
  to Dr. Davis's section, but the form probably has to go in today.
* Today is the add/drop deadline.  
    * You can still drop after today, but after today a "W" appears on your transcript.
    * I did not and would not design the system this way.
* Notation issues
    * A dash is traditionally used between words in Scheme names.
    * An arrow, as in `drawing->image` is traditionally used for transforming
      one thing to another.
    * An exclamation point, as in `image-select-rectangle!` is used to
      indicate that the procedure changes one or more of its parameters.
    * A question mark, as in `drawing-rectangle?` is used to ask a
      true/false question.
    * We try to name many procedures with the type they work with.
      So `image-select-rectangle!` expects an image.
      (The notation is not perfect.)
* Work for Monday
    * Think about the exam
    * Reading for Tuesday: Transforming Images
    * Lab writeup 4: Problems 6a and 7b from Transforming RGB Colors.  
      Due before class on Tuesday
* EC Opportunities:
    * CS Extras Thursday @ 4:30: Jennelle Nystrom on working at Microsoft
    * CS Table next Friday (The Story of Mel)
    * Soccer 1:30 Saturday / Sunday
    * Other?

_A bit more about documentation_


;;; Procedure:
;;;   rectangle
;;; Parameters:
;;;   left, a real number
;;;   top, a real number
;;;   width, a positive real number
;;;   height, a positive real number
;;;   color, a color (whatever that is)
;;; Purpose:
;;;   Create a rectangle with the specified characteristics.
;;;     OR
;;;   Create a rectangle with left edge left, and top edge top, and width width,
;;;     and height height, colored color.
;;; Produces:
;;;   rect, a drawing
;;; Preconditions:
;;;   color is an element of (context-list-colors)
;;; Postconditions:
;;;   (drawing-rectangle? rect) is #t
;;;   (drawing-width rect) is width
;;;   (drawing-height rect) is height
;;;   (drawing-top rect) is top
;;;   (drawing-left rect) is left
;;;   rect is colored color
;;; Problems:
;;;   If (left+width < 0) this drawing will not render as given.

Additional

;;; Practica
;;; Props
;;; Philosophy/Ponderings

The produces section should give a *name* and a *type* so that we can talk about it.

Postcondition possibliities

;;;   [No additional]
;;;   vs.
;;;   color is an element of (context-list-colors)
;;;   vs.
;;;   (left + width) > 0
;;;   (top + height) > 0

One set of postconditions (problem: Talk about algorithm, rather than the goal.)

;;; Post-conditions:
;;;  drawing-hshift moves the drawing to the left or right depending on the value given
;;;  drawing-vshift moves the drawing to the up or down depending on the value given
;;;  drawing-hscale stretches the drawing horizontally to provide the drawing with its width
;;;  drawing-vscale stretches the drawing vertically to provide the height of the drawing
;;;  drwaing-recolor gives the drawing the color based on the choice of color desired in the list of default colors

_Questions about the exam_

_Questions before the quiz_

_Quiz_

Lab
---
