Functional Problem Solving (CSC 151 2014S) : EBoards

CSC151.02 2014S, Class 11: A Design Perspective


Overview

Preliminaries

Admin

Upcoming work

About Exam 1

Some other notes.

Here's one group's set of tests, just fo isosceles triangles

(test-case "unit side length isosceles triangle"
  (check-equal? (classify-triangle 1 2 2) "isosceles")
  (check-equal? (classify-triangle 2 1 2) "isosceles")
  (check-equal? (classify-triangle 2 2 1) "isosceles")
  (check-equal? (classify-triangle 1 3 3) "isosceles")
  (check-equal? (classify-triangle 3 1 3) "isosceles")
  (check-equal? (classify-triangle 3 3 1) "isosceles")
  (check-equal? (classify-triangle 1 4 4) "isosceles")
  (check-equal? (classify-triangle 4 1 4) "isosceles")
  (check-equal? (classify-triangle 4 4 1) "isosceles")
  (check-equal? (classify-triangle 1 5 5) "isosceles")
  (check-equal? (classify-triangle 5 1 5) "isosceles")
  (check-equal? (classify-triangle 5 5 1) "isosceles")
  (check-equal? (classify-triangle 1 6 6) "isosceles")
  (check-equal? (classify-triangle 6 1 6) "isosceles")
  (check-equal? (classify-triangle 6 6 1) "isosceles")
  (check-equal? (classify-triangle 1 7 7) "isosceles")
  (check-equal? (classify-triangle 7 1 7) "isosceles")
  (check-equal? (classify-triangle 7 7 1) "isosceles")
  (check-equal? (classify-triangle 1 8 8) "isosceles")
  (check-equal? (classify-triangle 8 1 8) "isosceles")
  (check-equal? (classify-triangle 8 8 1) "isosceles")
  (check-equal? (classify-triangle 1 9 9) "isosceles")
  (check-equal? (classify-triangle 9 1 9) "isosceles")
  (check-equal? (classify-triangle 9 9 1) "isosceles")
  (check-equal? (classify-triangle 1 10 10) "isosceles")
  (check-equal? (classify-triangle 10 1 10) "isosceles")
  (check-equal? (classify-triangle 10 10 1) "isosceles")
  (check-equal? (classify-triangle 2 3 3) "isosceles")
  (check-equal? (classify-triangle 3 2 3) "isosceles")
  (check-equal? (classify-triangle 3 3 2) "isosceles")
  (check-equal? (classify-triangle 2 4 4) "isosceles")
  (check-equal? (classify-triangle 4 2 4) "isosceles")
  (check-equal? (classify-triangle 4 4 2) "isosceles")
  (check-equal? (classify-triangle 2 5 5) "isosceles")
  (check-equal? (classify-triangle 5 2 5) "isosceles")
  (check-equal? (classify-triangle 5 5 2) "isosceles")
  (check-equal? (classify-triangle 2 6 6) "isosceles")
  (check-equal? (classify-triangle 6 2 6) "isosceles")
  (check-equal? (classify-triangle 6 6 2) "isosceles")
  (check-equal? (classify-triangle 2 7 7) "isosceles")
  (check-equal? (classify-triangle 7 2 7) "isosceles")
  (check-equal? (classify-triangle 7 7 2) "isosceles")
  (check-equal? (classify-triangle 2 8 8) "isosceles")
  (check-equal? (classify-triangle 8 2 8) "isosceles")
  (check-equal? (classify-triangle 8 8 2) "isosceles")
  (check-equal? (classify-triangle 2 9 9) "isosceles")
  (check-equal? (classify-triangle 9 2 9) "isosceles")
  (check-equal? (classify-triangle 9 9 2) "isosceles")
  (check-equal? (classify-triangle 2 10 10) "isosceles")
  (check-equal? (classify-triangle 10 2 10) "isosceles")
  (check-equal? (classify-triangle 10 10 2) "isosceles")
  (check-equal? (classify-triangle 3 2 2) "isosceles")
  (check-equal? (classify-triangle 2 3 2) "isosceles")
  (check-equal? (classify-triangle 2 2 3) "isosceles")
  (check-equal? (classify-triangle 3 4 4) "isosceles")
  (check-equal? (classify-triangle 4 3 4) "isosceles")
  (check-equal? (classify-triangle 4 4 3) "isosceles")
  (check-equal? (classify-triangle 3 5 5) "isosceles")
  (check-equal? (classify-triangle 5 3 5) "isosceles")
  (check-equal? (classify-triangle 5 5 3) "isosceles")
  (check-equal? (classify-triangle 3 6 6) "isosceles")
  (check-equal? (classify-triangle 6 3 6) "isosceles")
  (check-equal? (classify-triangle 6 6 3) "isosceles")
  (check-equal? (classify-triangle 3 7 7) "isosceles")
  (check-equal? (classify-triangle 7 3 7) "isosceles")
  (check-equal? (classify-triangle 7 7 3) "isosceles")
  (check-equal? (classify-triangle 3 8 8) "isosceles")
  (check-equal? (classify-triangle 8 3 8) "isosceles")
  (check-equal? (classify-triangle 8 8 3) "isosceles")
  (check-equal? (classify-triangle 3 9 9) "isosceles")
  (check-equal? (classify-triangle 9 3 9) "isosceles")
  (check-equal? (classify-triangle 9 9 3) "isosceles")
  (check-equal? (classify-triangle 3 10 10) "isosceles")
  (check-equal? (classify-triangle 10 3 10) "isosceles")
  (check-equal? (classify-triangle 10 10 3) "isosceles")
  (check-equal? (classify-triangle 4 3 3) "isosceles")
  (check-equal? (classify-triangle 3 4 3) "isosceles")
  (check-equal? (classify-triangle 3 3 4) "isosceles")
  (check-equal? (classify-triangle 4 5 5) "isosceles")
  (check-equal? (classify-triangle 5 4 5) "isosceles")
  (check-equal? (classify-triangle 5 5 4) "isosceles")
  (check-equal? (classify-triangle 4 6 6) "isosceles")
  (check-equal? (classify-triangle 6 4 6) "isosceles")
  (check-equal? (classify-triangle 6 6 4) "isosceles")
  (check-equal? (classify-triangle 4 7 7) "isosceles")
  (check-equal? (classify-triangle 7 4 7) "isosceles")
  (check-equal? (classify-triangle 7 7 4) "isosceles")
  (check-equal? (classify-triangle 4 8 8) "isosceles")
  (check-equal? (classify-triangle 8 4 8) "isosceles")
  (check-equal? (classify-triangle 8 8 4) "isosceles")
  (check-equal? (classify-triangle 4 9 9) "isosceles")
  (check-equal? (classify-triangle 9 4 9) "isosceles")
  (check-equal? (classify-triangle 9 9 4) "isosceles")
  (check-equal? (classify-triangle 4 10 10) "isosceles")
  (check-equal? (classify-triangle 10 4 10) "isosceles")
  (check-equal? (classify-triangle 10 10 4) "isosceles")
  (check-equal? (classify-triangle 5 3 3) "isosceles")
  (check-equal? (classify-triangle 3 5 3) "isosceles")
  (check-equal? (classify-triangle 3 3 5) "isosceles")
  (check-equal? (classify-triangle 5 4 4) "isosceles")
  (check-equal? (classify-triangle 4 5 4) "isosceles")
  (check-equal? (classify-triangle 4 4 5) "isosceles")
  (check-equal? (classify-triangle 5 6 6) "isosceles")
  (check-equal? (classify-triangle 6 5 6) "isosceles")
  (check-equal? (classify-triangle 6 6 5) "isosceles")
  (check-equal? (classify-triangle 5 7 7) "isosceles")
  (check-equal? (classify-triangle 7 5 7) "isosceles")
  (check-equal? (classify-triangle 7 7 5) "isosceles")
  (check-equal? (classify-triangle 5 8 8) "isosceles")
  (check-equal? (classify-triangle 8 5 8) "isosceles")
  (check-equal? (classify-triangle 8 8 5) "isosceles")
  (check-equal? (classify-triangle 5 9 9) "isosceles")
  (check-equal? (classify-triangle 9 5 9) "isosceles")
  (check-equal? (classify-triangle 9 9 5) "isosceles")
  (check-equal? (classify-triangle 5 10 10) "isosceles")
  (check-equal? (classify-triangle 10 5 10) "isosceles")
  (check-equal? (classify-triangle 10 10 5) "isosceles")
  (check-equal? (classify-triangle 6 4 4) "isosceles")
  (check-equal? (classify-triangle 4 6 4) "isosceles")
  (check-equal? (classify-triangle 4 4 6) "isosceles")
  (check-equal? (classify-triangle 6 5 5) "isosceles")
  (check-equal? (classify-triangle 5 6 5) "isosceles")
  (check-equal? (classify-triangle 5 5 6) "isosceles")
  (check-equal? (classify-triangle 6 7 7) "isosceles")
  (check-equal? (classify-triangle 7 6 7) "isosceles")
  (check-equal? (classify-triangle 7 7 6) "isosceles")
  (check-equal? (classify-triangle 6 8 8) "isosceles")
  (check-equal? (classify-triangle 8 6 8) "isosceles")
  (check-equal? (classify-triangle 8 8 6) "isosceles")
  (check-equal? (classify-triangle 6 9 9) "isosceles")
  (check-equal? (classify-triangle 9 6 9) "isosceles")
  (check-equal? (classify-triangle 9 9 6) "isosceles")
  (check-equal? (classify-triangle 6 10 10) "isosceles")
  (check-equal? (classify-triangle 10 6 10) "isosceles")
  (check-equal? (classify-triangle 10 10 6) "isosceles")
  (check-equal? (classify-triangle 7 4 4) "isosceles")
  (check-equal? (classify-triangle 4 7 4) "isosceles")
  (check-equal? (classify-triangle 4 4 7) "isosceles")
  (check-equal? (classify-triangle 7 5 5) "isosceles")
  (check-equal? (classify-triangle 5 7 5) "isosceles")
  (check-equal? (classify-triangle 5 5 7) "isosceles")
  (check-equal? (classify-triangle 7 6 6) "isosceles")
  (check-equal? (classify-triangle 6 7 6) "isosceles")
  (check-equal? (classify-triangle 6 6 7) "isosceles")
  (check-equal? (classify-triangle 7 8 8) "isosceles")
  (check-equal? (classify-triangle 8 7 8) "isosceles")
  (check-equal? (classify-triangle 8 8 7) "isosceles")
  (check-equal? (classify-triangle 7 9 9) "isosceles")
  (check-equal? (classify-triangle 9 7 9) "isosceles")
  (check-equal? (classify-triangle 9 9 7) "isosceles")
  (check-equal? (classify-triangle 7 10 10) "isosceles")
  (check-equal? (classify-triangle 10 7 10) "isosceles")
  (check-equal? (classify-triangle 10 10 7) "isosceles")
  (check-equal? (classify-triangle 8 5 5) "isosceles")
  (check-equal? (classify-triangle 5 8 5) "isosceles")
  (check-equal? (classify-triangle 5 5 8) "isosceles")
  (check-equal? (classify-triangle 8 6 6) "isosceles")
  (check-equal? (classify-triangle 6 8 6) "isosceles")
  (check-equal? (classify-triangle 6 6 8) "isosceles")
  (check-equal? (classify-triangle 8 7 7) "isosceles")
  (check-equal? (classify-triangle 7 8 7) "isosceles")
  (check-equal? (classify-triangle 7 7 8) "isosceles")
  (check-equal? (classify-triangle 8 9 9) "isosceles")
  (check-equal? (classify-triangle 9 8 9) "isosceles")
  (check-equal? (classify-triangle 9 9 8) "isosceles")
  (check-equal? (classify-triangle 8 10 10) "isosceles")
  (check-equal? (classify-triangle 10 8 10) "isosceles")
  (check-equal? (classify-triangle 10 10 8) "isosceles")
  (check-equal? (classify-triangle 9 5 5) "isosceles")
  (check-equal? (classify-triangle 5 9 5) "isosceles")
  (check-equal? (classify-triangle 5 5 9) "isosceles")
  (check-equal? (classify-triangle 9 6 6) "isosceles")
  (check-equal? (classify-triangle 6 9 6) "isosceles")
  (check-equal? (classify-triangle 6 6 9) "isosceles")
  (check-equal? (classify-triangle 9 7 7) "isosceles")
  (check-equal? (classify-triangle 7 9 7) "isosceles")
  (check-equal? (classify-triangle 7 7 9) "isosceles")
  (check-equal? (classify-triangle 9 8 8 ) "isosceles")
  (check-equal? (classify-triangle 8 9 8) "isosceles")
  (check-equal? (classify-triangle 8 8 9) "isosceles")
  (check-equal? (classify-triangle 9 10 10) "isosceles")
  (check-equal? (classify-triangle 10 9 10) "isosceles")
  (check-equal? (classify-triangle 10 10 9) "isosceles")
  (check-equal? (classify-triangle 10 6 6) "isosceles")
  (check-equal? (classify-triangle 6 10 6) "isosceles")
  (check-equal? (classify-triangle 6 6 10) "isosceles")
  (check-equal? (classify-triangle 10 7 7) "isosceles")
  (check-equal? (classify-triangle 7 10 7) "isosceles")
  (check-equal? (classify-triangle 7 7 10) "isosceles")
  (check-equal? (classify-triangle 10 8 8 ) "isosceles")
  (check-equal? (classify-triangle 8 10 8) "isosceles")
  (check-equal? (classify-triangle 8 8 10) "isosceles")
  (check-equal? (classify-triangle 10 9 9 ) "isosceles")
  (check-equal? (classify-triangle 9 10 9) "isosceles")
  (check-equal? (classify-triangle 9 9 10) "isosceles"))

What could that group have done better?

That group could have tried at least one non-integer side length.

That group could have noted that their code is insanely repetitious and written a helper like the following.

(define check-issoc
  (lambda (same diff)
    (check-equal? (classify-triangle same same diff) "isosceles")
    (check-equal? (classify-triangle same diff same) "isosceles")
    (check-equal? (classify-triangle diff same same) "isosceles")))

On a separate note, over the long term, you want your tests to not only tell you that there is an error, but to help you identify the error. So coming up with useful names for your tests is always a good idea.

Questions

A bit about design

A bit about color theory

Exploring some images and design spaces

Sam attempted to discuss images from a deck by Matt Kluber.


Samuel A. Rebelsky, rebelsky@grinnell.edu

Copyright (c) 2007-2014 Janet Davis, Samuel A. Rebelsky, and Jerod Weinman. (Selected materials are copyright by John David Stone or Henry Walker and are used with permission.)

Creative Commons License

This work is licensed under a Creative Commons Attribution 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc/3.0/ or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.