In-Depth Post #3

Last Thursday I had my second meeting with my mentor, Jeff. In our previous meeting, Jeff recommended that I watch a Netflix documentary on design called Abstract. The documentary showed the life of Paula Scher, a famous graphic designer. During our meeting, I decided to talk to Jeff about parts of the documentary, including how typography impacts logo design. We had an interesting conversation and Jeff brought up some excellent points such as “font is the first thing clients see” and “the type of font depends on the brand”. I now know that choosing the appropriate font is an important step in creating a logo. I will use this information when creating my logo design flowchart.

Jeff also gave me good advice on how I should review and edit my logos. When Jeff edits his logos, he shows them to his team, and he receives constructive criticism. Jeff suggested that I don’t get my parents to review my logos because “they will just say that everything is great”. It is important who I ask for advice from because some people won’t give the best constructive criticism. It is also important that I don’t receive too many edits because eventually, the logo will lose its meaning. Meaning is important when it comes to logo design. This advice that Jeff has given me is crucial when it comes to the editing step of the logo design process.

nikelogo 1200px-google_2015_logo-svg

 

 

I was able to use some techniques from Edward de Bono’s How to Have a Beautiful Mind in my meeting with Jeff. I supported Jeff’s point with my own research. When Jeff stated that simplicity is important in a logo, I supported his point with research I completed that verified his statement. I was also able to modify an idea that Jeff presented to make it more acceptable to myself. During our meeting, Jeff stated that “motion logos are becoming more popular in the digital age”. Motion logos are the 1-2 second GIFs that present the logo of the brand. I agreed with his statement, but since I’m focusing on standard logos for my in-depth, I modified his idea to fit my project. Instead of using GIFs in my logos, I will make my logos active instead of passive. Active logos are ones that imply motion, such as the Nike logo. Passive logos are static, such as the Google logo. Active logos are particularly effective in sports because the logo fits the market. I was also able to elaborate and pull interest out of our conversation. When Jeff and I were talking about how companies change logos, I brought up how Jeff changed the logo of his company a few times. This made our conversation more real and interesting.

I’m excited to continue my in-depth journey!

In-Depth Blog Post #3: Progress!

In the two weeks since last post, I have been working hard on moving my In-Depth Project forwards, and have a hefty load of content to show for my efforts. The two apps I have made in addition to the last week’s are still simple, but are moving away from ‘proof-of-concept’, and are heading towards some fun, playable, glitch-free games. I also tried to configure my screen recording software so that I could record myself coding (like I proposed initially) but had no luck. For this week, I will be describing the process of what I learned, and include videos of the final products.


Status Update:


 

Animated Movement Test:

Though this next app was a continuation of last week’s movement test app, I had to make drastic changes to the code to add in the factor of a moving animated image. I also learned that each frame in an animation is not many individual images, but rather a collection of images in a row, which is ‘cut’ up into pieces by the code.

private int frameCount = 12;

Above is the line that tells the program to split the spritesheet into 12 parts, giving us 12 frames of animation, which can be looped to create a fluid animation, and in my case, a walking cycle.

In addition to adding animations, I also figured out how to make the app landscape, by going through the AndroidManifest and adding in the line

android:screenOrientation=”landscape”

This one proof of concept app will set the scene for the rest of what I make, as movement and animations will be important in my final product.

Code at the bottom of the post


Snake Game:

Moving on from simpler apps, I decided to learn how to make something playable. My mentor recommended that I try to make the classic game “snake”. After working on this project for a couple of days, I finally got the game to begin to work, as well as learned new functions regarding touching the screen. The function is not shown in the video below for gameplay purposes, but I coded the game so that touching the right side of the screen moves the direction of the snake right 90 degrees, while the other side does the opposite. This function can also be incorporated into making buttons in specific places, and not just large portions of the screen.

As always, code is at the bottom of the post!


How to Have a Beautiful Mind:


#2 to ask for clarification whenever you are unclear or in doubt about something the mentor tells you or shows you:

Me: Wait, so this snippet of code actually controls how fast the image moves across the screen, right?

Mentor Yes, just don’t change it too drastically.

After my mentor taught me some more about how to position my code I asked for clarification on where and how to place snippets into the code. After hearing it for the second time, I felt much more confident that I would remember this for future projects, as well as got more information on how the function works.

#3 to support a point your mentor makes with additional facts, figures, evidence etc:

When my mentor and I discussed setting values for sizes, frames, frames per second and other value related inputs, my mentor mentioned that I should be sure that the input of the value is for the correct variable. I affirmed his point by intentionally switching the height and width values to prove to myself that his point was a valuable lesson, as I had spent a large amount of time troubleshooting something that I could have easily fixed in 2 seconds.

#5 to share a personal story that illustrates the conversation topic:

In sort of a joking manner, my mentor had me try to create a sprite sheet of his dog walking for an example of how to make a sprite sheet. I did so, and came back the next week, where we applied the animation and made a somewhat silly idea into a working project, which strengthened our communication, and also made the conversions we had much more interesting.

#10 to modify an idea to make it more acceptable to yourself and to make it stronger or more practical:

While my mentor and I were messing with the code of the animation test I made, I initially thought that this was pointless fun. But after sleeping on it, i realized that messing with this code may help me in my final project, and came to realize that it is possible to borrow portions of the code, rearrange the numbers, and create a fully functioning app out of borrowed code. (Not what I am going to do, but may help if I get stuck on a problem)


~ In-Depth is well on it’s way, so I will be working hard to hone my new knowledge! (and also type faster)


Code:


 

Animation Movement Test:

MainActivity.java

package com.dpoon.animatedmovetest;

import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.RectF;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

public class MainActivity extends Activity {
    GameView gameView;                                   // The view and the sprite sheet animation logic

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        gameView = new GameView(this);                        // Initialize gameView and set it as the view
        setContentView(gameView);
    }

    // Here is our implementation of GameView. It is an inner class.
    // Notice we implement runnable so we have A thread and can override the run method.
    class GameView extends SurfaceView implements Runnable {
        Thread gameThread = null;                                                     // This is our thread
        SurfaceHolder ourHolder;        // We need a SurfaceHolder when we use Paint and Canvas in a thread
        volatile boolean playing;                        // Set and unset when the game is running- or not.
        Canvas canvas;                                                       // A Canvas and a Paint object
        Paint paint;
        long fps;                                               // This variable tracks the game frame rate
        private long timeThisFrame;                               // This is used to help calculate the fps
        Bitmap bitmapBob;                                               // Declare an object of type Bitmap
        boolean isMoving = false;                                              // Bob starts off not moving
        float walkSpeedPerSecond = 250;                             // He can walk at 250 pixels per second
        float bobXPosition = 10;                                       // He starts 10 pixels from the left

        // New for the sprite sheet animation
        private int frameWidth = 90;                       // These values can be anything, as long as the
        private int frameHeight = 150;                          // ratio doesn't distort the sprite too much
        private int frameCount = 12;                       // How many frames are there on the sprite sheet?
        private int currentFrame = 0;                             // Start at the first frame - where else?
        private long lastFrameChangeTime = 0;               // What time was it when we last changed frames
        private int frameLengthInMilliseconds = 100;                     // How long should each frame last

        // A rectangle to define an area of the sprite sheet that represents 1 frame
        private Rect frameToDraw = new Rect( 0, 0, frameWidth, frameHeight);

        // A rect that defines an area of the screen on which to draw
        RectF whereToDraw = new RectF( bobXPosition, 0, bobXPosition + frameWidth, frameHeight);

        // When we initialize (call new()) gameView, this special constructor method runs
        public GameView(Context context) {
            super(context);                                // Ask the SurfaceView class to set up our object.
            ourHolder = getHolder();                                // Initialize ourHolder and paint objects
            paint = new Paint();
            bitmapBob = BitmapFactory.decodeResource(this.getResources(), R.drawable.bobby);        // Load Bob

            // Scale the bitmap to the correct size. Android automatically scales bitmaps based on screen
            bitmapBob = Bitmap.createScaledBitmap(bitmapBob, frameWidth * frameCount, frameHeight, false);

            playing = true;                                        // Set our boolean to true - game on!
        }

        @Override
        public void run() {
            while (playing) {
                long startFrameTime = System.currentTimeMillis();   // Capture the current time in milliseconds
                update();                                                                   // Update the frame
                draw();                                                                       // Draw the frame

                // Calculate the fps. Use the result to time animations and more.
                timeThisFrame = System.currentTimeMillis() - startFrameTime;

                if (timeThisFrame >= 1) { fps = 1000 / timeThisFrame; }
            }
        }

        // Everything that needs to be updated goes in here. In later projects we will
        // have dozens of objects. We will also do other things like collision detection.
        public void update() {
            // If bob is moving (the player is touching the screen)
            // then move him to the right based on his target speed and the current fps.
            if(isMoving){ bobXPosition = bobXPosition + (walkSpeedPerSecond / fps); }
        }

        public void getCurrentFrame(){
            long time  = System.currentTimeMillis();
            if(isMoving) {                                                   // Only animate if bob is moving
                if ( time > lastFrameChangeTime + frameLengthInMilliseconds) {
                    lastFrameChangeTime = time;
                    currentFrame++;
                    if (currentFrame >= frameCount) { currentFrame = 0; }
                }
            }
            //update the left and right values of the source of the next frame on the spritesheet
            frameToDraw.left = currentFrame * frameWidth;
            frameToDraw.right = frameToDraw.left + frameWidth;
        }


        public void draw() {                                                // Draw the newly updated scene
            if (ourHolder.getSurface().isValid()) {     // Make sure our drawing surface is valid or we crash
                canvas = ourHolder.lockCanvas();                               // Lock the canvas ready to draw
                canvas.drawColor(Color.argb(255,  26, 128, 182));                  // Draw the background color
                paint.setColor(Color.argb(255,  249, 129, 0));            // Choose the brush color for drawing
                paint.setTextSize(45);                                            // Make the text a bit bigger
                canvas.drawText("FPS:" + fps, 20, 40, paint);          // Display the current fps on the screen
                whereToDraw.set((int)bobXPosition, 0, (int)bobXPosition + frameWidth, frameHeight); // Draw bob
                getCurrentFrame();
                canvas.drawBitmap(bitmapBob, frameToDraw, whereToDraw, paint);
                ourHolder.unlockCanvasAndPost(canvas);                         // Draw everything to the screen
            }
        }

        public void pause() {                     // If MainActivity is paused/stopped shutdown our thread.
            playing = false;
            try { gameThread.join(); }
            catch (InterruptedException e) { Log.e("Error:", "joining thread"); }
        }

        public void resume() {                         // If MainActivity is started theb start our thread.
            playing = true;
            gameThread = new Thread(this);
            gameThread.start();
        }

        // The SurfaceView class implements onTouchListener, so we can override this method.
        @Override
        public boolean onTouchEvent(MotionEvent motionEvent) {
            switch (motionEvent.getAction() & MotionEvent.ACTION_MASK) {
                case MotionEvent.ACTION_DOWN:                                  // Player has touched the screen
                    isMoving = true;                         // Set isMoving so Bob is moved in the update method
                    break;
                case MotionEvent.ACTION_UP:                            // Player has removed finger from screen
                    isMoving = false;                                        // Set isMoving so Bob does not move
                    break;
            }
            return true;
        }
    }                                                      // This is the end of our GameView inner class

    @Override
    protected void onResume() {                   // This method executes when the player starts the game
        super.onResume();
        gameView.resume();                                    // Tell the gameView resume method to execute
    }

    @Override
    protected void onPause() {                     // This method executes when the player quits the game
        super.onPause();
        gameView.pause();                                      // Tell the gameView pause method to execute
    }
}

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.dpoon.animatedmovetest">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
            android:screenOrientation="landscape"
            >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Snake Game:

MainActivity.java

package com.dpoon.snake;

import android.app.Activity;
import android.graphics.Point;
import android.os.Bundle;
import android.view.Display;

public class MainActivity extends Activity {
    SnakeEngine snakeEngine;                                        // Declare an instance of SnakeEngine

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Display display = getWindowManager().getDefaultDisplay(); // Get the pixel dimensions of the screen

        Point size = new Point();                              // Initialize the result into a Point object
        display.getSize(size);

        snakeEngine = new SnakeEngine(this, size);        // Create a new instance of the SnakeEngine class

        setContentView(snakeEngine);                           // Make snakeEngine the view of the Activity
    }
    @Override
    protected void onResume() {                                          // Start the thread in snakeEngine
        super.onResume();
        snakeEngine.resume();
    }

    @Override
    protected void onPause() {                                          // Stop the thread in snakeEngine
        super.onPause();
        snakeEngine.pause();
    }

}

SnakeEngine.java

package com.dpoon.snake;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Point;
import android.media.AudioManager;
import android.media.SoundPool;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

import java.util.Random;

class SnakeEngine extends SurfaceView implements Runnable {
    private Thread thread = null;                                 // Our game thread for the main game loop
    private Context context;                                         // To hold a reference to the Activity

    private SoundPool soundPool;                                                // for plaing sound effects
    int eat_bob;
    int snake_crash;

    public enum Heading {UP, RIGHT, DOWN, LEFT}                            // For tracking movement Heading
    private Heading heading = Heading.RIGHT;                               // Start by heading to the right
    private int screenX;                                               // To hold the screen size in pixels
    private int screenY;
    private int snakeLength;                                                       // How long is the snake
    private int bobX;                                                               // Where is Bob hiding?
    private int bobY;
    private int blockSize;                                         // The size in pixels of a snake segment
    private final int NUM_BLOCKS_WIDE = 40;                    // The size in segments of the playable area
    private int numBlocksHigh;
    private long nextFrameTime;                                          // Control pausing between updates
    private final long FPS = 10;                                     // Update the game 10 times per second
    private final long MILLIS_PER_SECOND = 1000;                 // There are 1000 milliseconds in a second
    private int score;                                              // How many points does the player have
    private int[] snakeXs;                                  // The location in the grid of all the segments
    private int[] snakeYs;
    private volatile boolean isPlaying;    // Everything we need for drawing is the game currently playing?
    private Canvas canvas;                                                        // A canvas for our paint
    private SurfaceHolder surfaceHolder;                                          // Required to use canvas
    private Paint paint;                                                       // Some paint for our canvas
    public SnakeEngine(Context context, Point size) {
        super(context);

        context = context;

        screenX = size.x;
        screenY = size.y;

        blockSize = screenX / NUM_BLOCKS_WIDE;                      // Work out how many pixels each block is
        numBlocksHigh = screenY / blockSize;     // How many blocks of the same size will fit into the height

        soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);                      // Set the sound up
        eat_bob = soundPool.load(context, R.raw.eat_bob, 1);              // Prepare the two sounds in memory
        snake_crash = soundPool.load(context, R.raw.snake_crash, 1);

        surfaceHolder = getHolder();                                        // Initialize the drawing objects
        paint = new Paint();

        snakeXs = new int[200];                // If you score 200 you are rewarded with a crash achievement!
        snakeYs = new int[200];

        newGame();                                                                          // Start the game
    }

    @Override
    public void run() {
        while (isPlaying) {

            if(updateRequired()) {// Update 10 times a second
                update();
                draw();
            }
        }
    }

    public void pause() {
        isPlaying = false;
        try {
            thread.join();
        } catch (InterruptedException e) {
            // Error
        }
    }

    public void resume() {
        isPlaying = true;
        thread = new Thread(this);
        thread.start();
    }
    public void newGame() {
        snakeLength = 1;                                                 // Start with a single snake segment
        snakeXs[0] = NUM_BLOCKS_WIDE / 2;
        snakeYs[0] = numBlocksHigh / 2;
        spawnBob();                                                               // Get Bob ready for dinner
        score = 0;                                                                         // Reset the score
        nextFrameTime = System.currentTimeMillis();          // Setup nextFrameTime so an update is triggered
    }
    public void spawnBob() {
        Random random = new Random();
        bobX = random.nextInt(NUM_BLOCKS_WIDE - 1) + 1;
        bobY = random.nextInt(numBlocksHigh - 1) + 1;
    }
    private void eatBob(){
        snakeLength++;                                             // Got him! Increase the size of the snake
        spawnBob();                                                                             //replace Bob
        score = score + 1;                                                                 //add to the score
        soundPool.play(eat_bob, 1, 1, 0, 0, 1);
    }
    private void moveSnake(){
        for (int i = snakeLength; i > 0; i--) {                                              // Move the body
            snakeXs[i] = snakeXs[i - 1];        // Start at back and move to position of segment in front of it
            snakeYs[i] = snakeYs[i - 1];        // Exclude the head because the head has nothing in front of it
        }

        switch (heading) {                                        // Move the head in the appropriate heading
            case UP:
                snakeYs[0]--;
                break;
            case RIGHT:
                snakeXs[0]++;
                break;
            case DOWN:
                snakeYs[0]++;
                break;
            case LEFT:
                snakeXs[0]--;
                break;
        }
    }
    private boolean detectDeath(){
        boolean dead = false;                                                          // Has the snake died?
        if (snakeXs[0] == -1) dead = true;                                             // Hit the screen edge
        if (snakeXs[0] >= NUM_BLOCKS_WIDE) dead = true;
        if (snakeYs[0] == -1) dead = true;
        if (snakeYs[0] == numBlocksHigh) dead = true;

        for (int i = snakeLength - 1; i > 0; i--) {                                          // Eaten itself?
            if ((i > 4) && (snakeXs[0] == snakeXs[i]) && (snakeYs[0] == snakeYs[i])) {
                dead = true;
            }
        }

        return dead;
    }
    public void update() {
        if (snakeXs[0] == bobX && snakeYs[0] == bobY) {                 // Did the head of the snake eat Bob?
            eatBob();
        }

        moveSnake();

        if (detectDeath()) {
            soundPool.play(snake_crash, 1, 1, 0, 0, 1);                                           //start again
            newGame();
        }
    }
    public void draw() {
        if (surfaceHolder.getSurface().isValid()) {                               // Get a lock on the canvas
            canvas = surfaceHolder.lockCanvas();
            canvas.drawColor(Color.argb(255, 26, 128, 182));      // Fill the screen with Game Code School blue
            paint.setColor(Color.argb(255, 255, 255, 255));   // Set color of the paint to draw the snake white
            paint.setTextSize(90);                                                        // Scale the HUD text
            canvas.drawText("Score:" + score, 10, 70, paint);

            for (int i = 0; i < snakeLength; i++) {                       // Draw the snake one block at a time
                canvas.drawRect(snakeXs[i] * blockSize, (snakeYs[i] * blockSize),
                        (snakeXs[i] * blockSize) + blockSize, (snakeYs[i] * blockSize) + blockSize, paint);
            }


            paint.setColor(Color.argb(255, 255, 0, 0));           // Set the color of the paint to draw Bob red
            canvas.drawRect(bobX * blockSize, (bobY * blockSize),                                   // Draw Bob
                    (bobX * blockSize) + blockSize, (bobY * blockSize) + blockSize, paint);


            surfaceHolder.unlockCanvasAndPost(canvas);  // Unlock canvas and reveal the graphics for this frame
        }
    }
    public boolean updateRequired() {
        if(nextFrameTime <= System.currentTimeMillis()){                    // Are we due to update the frame
            // Tenth of a second has passed. Setup when the next update will be triggered
            nextFrameTime =System.currentTimeMillis() + MILLIS_PER_SECOND / FPS;
            return true;                      // Return true so that the update and draw functions are executed
        }
        return false;
    }
    @Override
    public boolean onTouchEvent(MotionEvent motionEvent) {
        switch (motionEvent.getAction() & MotionEvent.ACTION_MASK) {
            case MotionEvent.ACTION_UP:
                if (motionEvent.getX() >= screenX / 2) {
                    switch(heading){
                        case UP:
                            heading = Heading.RIGHT;
                            break;
                        case RIGHT:
                            heading = Heading.DOWN;
                            break;
                        case DOWN:
                            heading = Heading.LEFT;
                            break;
                        case LEFT:
                            heading = Heading.UP;
                            break;
                    }
                } else {
                    switch(heading){
                        case UP:
                            heading = Heading.LEFT;
                            break;
                        case LEFT:
                            heading = Heading.DOWN;
                            break;
                        case DOWN:
                            heading = Heading.RIGHT;
                            break;
                        case RIGHT:
                            heading = Heading.UP;
                            break;
                    }
                }
        }
        return true;
    }

}

In Depth #3 – Life Cycle of a Blow Fly

Currently, In Depth is going smoothly. I have been continuously attending classes on forensic entomology at SFU, while Caitlin has been going to classes concerning forensic science. This week, we’ve begun learning about the life cycle of a blow fly and will continue to learn about how the blow fly relates to forensic science.

One thing I’ve found interesting in class, is that while estimating time of death, you don’t give a maximum (at least my mentor doesn’t). I was confused at first, but as my mentor continued her lesson, it made a lot of sense. Insects tell you a lot about the body and the stage of life they are at can often tell you how long they’ve been on that body. However, there is a time span where the insects have NOT yet reached the body and there is no way to know how much time has passed. Additionally, I learned that there are many variables that can significantly impact the estimation. Rain, temperature, and whether the victim has been physically exerting themselves before their death, all play a role in estimating the time of death and can heavily change the result if they are not factored into observations.

Working towards having a beautiful mind has once again proved difficult for me. As I’ve mentioned before, the aspects of having a beautiful mind focus on scenarios where you’re a part of a conversation. In the book it states that without the aspects of having a beautiful mind, the “other person might as well be giving a lecture” (3-4). Unfortunately, my mentor is quite literally giving a lecture. However, I did feel aspects of the 4 tips below while attending lectures and if not, I’ve definitely felt these in day to day conversations.

 

#2 to ask for clarification whenever you are unclear or in doubt about something the mentor tells you or shows you.

During the lectures, people in the class often raise their hands and ask clarifying questions or questions that lead to other topics. While listening to my mentor answer these questions, the concept becomes much clearer to me, even if I’ve thought that I understand it. After class, I’ve asked clarifying questions as well. From these experiences, it is evident that questions are important to making sure one’s learning and understanding is solid and comprehensive, not only during conversations, but during classes and lectures as well!

 

#3 to support a point your mentor makes with additional facts, figures, evidence etc.

When presenting lectures, my mentor always backs up their points with evidence, whether it be with specific cases or data. This evidence makes the point easier to understand. Unfortunately, it’s difficult to support my mentor’s points with evidence of my own, as I don’t have much previous learning about the specific subject. However, in conversations with other people, when I find an example that matches with their point, it becomes much clearer and easier to understand, as I’m presenting something that I already have previous knowledge of.

 

#5 to share a personal story that illustrates the conversation topic.

It’s definitely a struggle to find a personal story that aligns with the topic of forensic entomology. I did hear a lot of personal stories from my mentor, but I myself have not worked on blow flies in a lab or examined a dead body! However, in my personal life, if a conversation topic is something I have previously experienced, I can relate with the topic on a personal level, making me much more engaged in the conversation. For example, running in the rain. If I recall a personal experience of running in the rain, I have firsthand experience I can speak about and add to the conversation.

 

#10 to modify an idea to make it more acceptable to yourself and to make it stronger or more practical.

Once again, it’s hard to modify an idea if I don’t know much about the topic! If my mentor is speaking about a research method that they prefer, I don’t have the sufficient background knowledge to step in and say I would modify a certain aspect of the research process to make it fit for me. However, I have used this tip many times! Whether it be in research, where I take a method and alter it to fit my situation or during a conversation where someone presents an idea and I add onto it, changing and modifying ideas is something I do often. For example, during adventure trip planning or leadership event planning, we always present ideas to each other. During the planning process, we take those ideas and build upon them, adding suggestions and omitting certain aspects to make the idea grander than before.

 

Hopefully, when Caitlin and I begin to prep our final presentation, I will be able to utilize these tips in conversations with my mentor! For now, I must first gain the base knowledge needed to create this final presentation.

T10: R+J Act 2 Preview

Talons 10,

For homework tonight, please pre-read Act 2.2, and identify / prepare at least two passages that either reveal how Romeo and Juliet’s conception of love is similar or different. Write these out an explain them (I will check at the beginning of class).

Be prepared to share at the beginning of class tomorrow.

In-Depth 2

Ciao! Finally, in week three of in-depth, I have secured a mentor! She is a teacher for an online Italian course, and I am enrolled in her class. I have started the course, but I am also hoping to meet up with her once a week.
Originally, we had planned to meet up over the weekend, but unfortunately she was unable to make it. Instead, we rescheduled for a Monday afternoon for our first official meeting as mentor and mentee. During the meeting, we talked a bit about ourselves and our passions, but we mostly talked about my progress so far in the course. I have completed the intro unit to the course, and am starting on the first level. Each level is designed to take about one month, so two blog posts from now, I should be done level one. I am learning really fast, I already know the alphabet, numbers one to ten, and some common phrases and words. My mentor has been extremely helpful, and she is always encouraging me to expand on my learning and to implement it in my daily life.
In Edward de Bono’s How to Have a Beautiful Mind, three important sections are How to Agree, How to Disagree, and How to Differ. During my meeting with my mentor, I tried my best to implement these three aspects into our conversation. I think I did a good job, but to be honest, we did not have many disagreements. The only thing that I brought up was the fact that each unit is supposed to take one month. I thought that that seemed a bit long, and also very even. What if I needed more time on lesson four than on lesson three? However, my mentor assured me that although the course was designed to be completed at a rate of one month per lesson, you can go about it at your own pace. I made sure to explain my point respectfully, as she has obviously been teaching the course for longer than I have been enrolled, and she is more knowledgeable in that area. After she explained how everything works, I was convinced that she was right and that I had nothing to worry about.
Some constructive criticism I received and agreed with was about the pronunciation of some of the letters in the alphabet. I’ve been learning which sounds correspond with which groupings of letters, and how to know what sound a letter is making based on the letters before and after it. I need to work on the pronunciation of the letters d and p, as I still have a very French pronunciation of the two. I listened to the feedback carefully, and I am making an effort to implement the feedback into my speech.
I am very excited for my next meeting with my mentor, and until then I will be working on my Italian course every day. My friends and my family have begun to notice how I replace certain simple words, such as hello or yes, with the Italian translations. I am having a lot of fun, and I can’t wait for in-depth! Arrivederci!

In-Depth BP #2

It’s been a hectic first couple weeks that’s for sure! The first few steps towards my goals were finding a mentor and actually finding a film camera that I could actually use. With the mentor, I have asked Ms. Learmonth, the photography teacher to help me with my endeavor. I looked out into the community but the main problem I saw with other possibilities was the fact that I need to have access to a dark room. I actually ended up emailing a past photography teacher who also offered to help me with portraits and product photography and I’ll be sure to meet up with her soon and learn some new aspects of photography. I met up with Ms. Learmonth during Tuesday CL last week and we discussed my goals and what I wanted out of this. This was where A Beautiful Mind helped me. We talked about how film photography is a very artistic concept to learn as you physically have to wait and anticipate for the photos to be developed. I mentioned the word “patience” and she completely agreed that having patience makes you stand out from other photographers. When discussing film cameras, she said that she preferred the medium format camera over the 35mm. We didn’t disagree, but we did differ in opinions as I much rather prefer the 35mm. Nonetheless, Ms. Learmonth is a lot more experienced than I am and has a better view of both cameras. It’s been a great start to In-depth and I’m stoked for what is to come in the near future.

T09: MND Letter to Theseus

Task:

Based on our role-play in class today, select a character (Egeus, Lysander, Demetrius, Helena, Hermia) and craft a letter to Theseus that persuades him to give rule in your favour.

This response should be no longer than one page AND posted on your blog no later than Wednesday, February 6th, BEFORE CLASS.

Consider:

• What does your chosen character want?

• What do they fear will happen if they do not get what they want?

• What is their main argument / arguments?

• How will they present themselves to the king?

• How does the Athenian law effect them in this matter?

YOUR WORK WILL BE ASSESSED ON THE ‘AT A GLANCE’ SCALE PROVIDED ON THE COURSE OUTLINE.

T10: R+J Text Conversation 1.1 and 1.2

Q: What would Benvolio text to Romeo about the skirmish between the Montagues and Capulets, as well as Romeo’s strange behaviour?

Rules

• Demonstrate clear understanding of plot

and character of Act 1.1 –1.2.

• Focus on wants / fears

• Language and emojiuse must fit character.

• Response no longer than one page, double sided.

MARKED BASED ON ‘CHECK SCALE’ PROVIDED IN COURSE OUTLINE

Post #4: Keep it going

In-depth post #4 (week six and seven)

A good listener respects the speaker, pays attention, is genuinely interested, and values what is heard. At the beginning of your in-depth project, you probably spend more time listening than speaking with your mentor. Make sure you are patient and do not interrupt the speaker. De Bono states, “If you listen carefully and attentively you will get more value from listening than talking” (p. 67). Listening gives you new ideas, new information, new facts, new insights and new discoveries. When listening, take notice of the vocabulary being used, repeat or paraphrase part of the conversation, ask questions (more about this later), or ask for more details. According to de Bono, there are two foci: what is the speaker trying to tell you and what are you hearing and is it relevant to what the speaker is trying to say? For example, listen to the argument as well as the content of the argument.

Try to address some of the following possibilities during your next visit with your mentor:

  • #4 What new information are you getting and what questions did you ask to probe further into the topic?
  • #5 Discuss any new points of view you developed while in conversation with your mentor.
  • #6 What were some of the alternative perceptions that are new to you.
  • #9 How do your mentor values differ from yours?
  • #12 What questions did you ask to check on facts and details? Elaborate.

In addition to how to listen, it is also important to ask questions to generate interaction. De Bono states, “A question is simply a way of directing attention” (p. 81).  Are you able to distinguish between shooting and fishing questions? Which type do you tend to use most of the time? Why? Questions allow you, for example, to check on the source and the validity of the information being shared, ask for more details, ask for an explanation, offer alternatives and possibilities, modify the proposition form the speaker, state multiple choice options and clarify values. Asking about the basis of someone’s thinking, someone’s feelings, someone’s decisions, or someone’s proposal will clarify the conversation.

Try the following during the next session with your mentor:

  • #1 Ask questions. Record them. Why did you ask these questions?
  • #8 Ask for an explanation for a certain skill you are learning. Discuss what happened.
  • #11 Ask a multiple choice question. Was this useful? Explain.
  • #12 Ask the speaker to clarify his or her underlying values for doing, thinking and feeling the way they do.

Keep the interest level high.

Quirien Mulder ten Kate