# Teaching

### Site Tools

spcs:2015:day4

This is an old revision of the document!

# Day 4 - Thursday

## Activities

• Guest Speakers
• Egg Problem
• Physics
• Visual Sort
• Simulations

## Class Assignments

1. Processing: Visual Sort - Write a program that sorts 20 bars visually using various sorts or a sort of your choice.
1. Step 1: sort integers:
1. Input: a list of random numbers that you pick
2. Output: a list out numbers in order
2. Step 2: make it visual with rectangles
2. Processing: Seurat Painting - How do we make a Seurat Painting animation in Processing
1. Step 1: Make an animation
2. Step 2: Make it so that the user can change the size of the circle
3. Github - You can store your processing projects directly there and run them with Processing.js - Read: http://processingjs.org/articles/jsQuickStart.html (Similar to yesterday)

## Homework

• Blog Post: Every project should have a post. If you made 3 projects, then there are 3 posts. Have images for what you did. Link to the github.io website online so people can see each program.
• Blog Post: Write about programming languages. How do computers understand instructions? What language do they use? What language do we use to give computers instructions? Explain what are high and low level languages and how computers can understand our code (talk about compilers).
• 1) the address book must be able to look up friends
• 2) the address book must be able to tell you who is calling you
• Improve your past work: Double check your work, and make sure your blog is complete. Make sure you have completed all projects. Finish anything you didn't get to do today. Improve anything that you can! Lots of pictures!!!
• Blog Post: Game Review - You Only Live Once - www.kongregate.com/games/raitendo/you-only-live-once

Note: From now on ALL game reviews must address Ludus, Paida, and Narrative.

```// Selection Sort

int list[] = {2, 4 , 9, 6, 3, 8, 4, 1, 2, 5};
int min_index = 0;
int temp;

for (int i = 0; i < 10; i++)          // print the list to see it
{
print(list[i] + " ");
}

print("\n");                        // print a new line

for (int i = 0; i < 10; i++)          // start the sort
{
min_index = i;                      // set the min_index to the begining of the list
for (int j = i+1; j < 10; j++)      // search the rest of the list to find the min value
{
if (list[min_index] > list[j])    // if the there is a smaller value found, save it!
{
min_index = j;
}
}

temp = list[i];                      // swap the min value to the right place
list[i] = list[min_index];
list[min_index] = temp;
}

for (int i = 0; i < 10; i++)          // print the list again
{
print(list[i] + " ");
}```

## Teams

TA: Jeffrey

1. Evangelin, Wilson
2. Toby, Mike
3. Lisa, Billy

TA: Yinan

1. Cindy, Michael
2. Kyle, Jack, Bran

TA: Kevin

1. Hollis, Peter
2. Jeff, Samuel
3. Chris, Frank
```
// Visual Sort

int i = 0, j = 0;
int tempcheesestick;
int sticks = 40;

int[] cheesesticks = new int [sticks];
int[] oldsticks = new int [sticks];

void setup() {

size(500,400);
for(int fi = 0; fi < sticks; fi++){
cheesesticks[fi] = round(random(500));
oldsticks[fi] = cheesesticks[fi];
}
}

void draw() {

if(j>-1){

if(i>-1){
if(cheesesticks[i]>cheesesticks[i+1]){
tempcheesestick = cheesesticks[i];
cheesesticks[i] = cheesesticks[i+1];
cheesesticks[i+1] = tempcheesestick;
}

i++;
if(i >= sticks-1){
i = 0;
j++;
}
}

if(j >= sticks-1){
j = -1;
}

}

rectMode(CENTER);
background(255);
for(int fi = 0; fi < sticks; fi++){
if(cheesesticks[fi] == oldsticks[fi]){
fill(255,200,0);
} else {
fill(255,0,0);
}

rect(cheesesticks[fi]/2-1,(400/sticks)*fi+(400/sticks)/2,cheesesticks[fi],400/sticks);

oldsticks[fi] = cheesesticks[fi];
}
```

</code>

```// Credit: Neel

int[] cheesesticks = {200, 40, 170, 50, 70, 60, 80, 90, 190, 150, 100, 110, 120, 140, 180, 130, 20, 160, 30, 10};

int i = -1;
int j = 0;
int min;

void setup() {
size (250, 250);
}

void draw() {

background(200);

// only runs after j reaches 20
if ((j == 20) && (i < 19)) {

i++;
j=i+1;
min = cheesesticks[i];
}

// runs as long as j is less than 20
if (j < 20) {

if (cheesesticks[j] < min){
min = cheesesticks[j];
//swap
int temp = cheesesticks[i];
cheesesticks[i] = cheesesticks[j];
cheesesticks[j] = temp;
}
j++;
}

fill(#EA5353);

for (int i=0; i<20; i++)
{
rect(0, i*10,cheesesticks[i], 5);
}

}```