Published using Google Docs
CS30 Regular Website Version 2017/18
Updated automatically every 5 minutes

CS30 Regular                                                                        2017/18

Block 4 - Semester 2

Computer Science 30 Regular - Complete Lesson Plan

Notes to Teachers



Class 81 - Thursday, June 14

Self Evaluation of Projects


Class 74 Tues, June 6 through Class 80 Wed. June 13

Work time on project

Class 77 - last chance to update Planning Doc with new Criteria for Success

Class 73 - Mon. June 5

Project Credit Class 3B

First 30 minutes - Finish up time

Remainder of the class - Project Planning Doc


Class 71 & 72 - Thursday, May 31- Fri. June 1

Project Credit Class 2

Day 4 and  5 to work on GUI project

Go over new rubric and ask for feedback (on next page).  We will do a self mark plus I will mark it.


Java Project Marking Rubric

5

4

3

2

1

Technical

Code works without errors

All functions work properly

Read me or other documentation created to help marking

Code works without errors

Some functions may not work as conceived but do not generate errors.

No documentation

Errors are in logic but do not cause computer to crash

Major errors

GUI & User Experience

GUI is fully implemented

Design is thoughtfully created (Layout, fonts & color scheme)

User experience is smooth

GUI is fully implemented but lacks in a smooth experience and/or design

GUI is partially implemented, supplemented with non-GUI

Or

Major flaws in design or lack of thought in design

GUI is uses sparingly.

Complexity

Program juggles multiple instance classes.

A variety of grade 12 algorithms are used to implement complex menu options.

A variety of advanced GUI concepts are implemented

Text Files effectively used for long term storage.

Program uses a variety of classes.

Program is sufficiently complex

Program is insufficiently complex for a CS30 project.


Class 69 - Tuesday, May 29

Project Credit Class 2

Discuss marking of project

Back up the folder.

Set a goal for the day.


Class 68 - Monday, May 28

Project Credit Class 2

Continue GUIFied Lawn Mower Example

Introduce and work on Java Wrap UP Project

How to Proceed

Stage 1 Analysis

Step 2 Design

Step 3 Impementation

Groups

Hamdi

Will

Spencer

Dani

Connor

Ty

Kevin

Suraj

Ryan

Jasvinder


Class 67 - Friday, May 25

Project Credit Class #1b

Only 3 in class due to Grad


Class 66 - Thursday, May 24

Project Credit Class #1

Sunny - Project self evaluation via Classroom

Suraj - Finish Iterative Algorithms basic then OOP

Discuss upcoming Java Wrap Up Project

GUI example

Turn the LawnMowing example into a GUI - Refactor… Copy and then:


Class 65 - Wednesday, May 23

Iterative Algorithms Class 16

Away at Iverson- catch up time.

Sub gave a short lesson on the Java Canvas.


Class 64 - Thursday, May 17

Iterative Algorithms Class 15

Sunny - Project self evaluation via Classroom

No Help assignment


Class 63 - Wednesday, May 16

Iterative Algorithms Class 14

Sunny - Project self evaluation via Classroom

Explain No Help assignment details (on Thursday)

Last 30 minutes - Dice Game GUI example (with slider by request)


Dice Game

public class DiceMain {

    public static int[] dieRolls = new int[3];

    public static void main(String[] args) {

        new DiceJFrame().setVisible(true);

    }

}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        

        int bet = jSlider1.getValue();

        int winnings = (DiceMain.dieRolls[0]+DiceMain.dieRolls[1]+DiceMain.dieRolls[2])*bet;

        jTextField1.setText("You win $ " + winnings);

    }

private void rollButtonActionPerformed(java.awt.event.ActionEvent evt) {                                          

        DiceMain.dieRolls[0] = (int)(Math.random() * 6 + 1);

        DiceMain.dieRolls[1] = (int)(Math.random() * 6 + 1);

        DiceMain.dieRolls[2] = (int)(Math.random() * 6 + 1);

       

        die1.setIcon(new javax.swing.ImageIcon(getClass().getResource(    DiceMain.dieRolls[0] + ".jpg"))); // NOI18N

        die2.setIcon(new javax.swing.ImageIcon(getClass().getResource(    DiceMain.dieRolls[1] + ".jpg"))); // NOI18N

        die3.setIcon(new javax.swing.ImageIcon(getClass().getResource(    DiceMain.dieRolls[2] + ".jpg"))); // NOI18N

       

    }


Class 62 - Tuesday, May 15

Iterative Algorithms Class 13b

In library - show rest of Bitcoin

Work time on other classes when done.


Class 61 - Monday, May 14

Iterative Algorithms Class 13

Discuss Thursday or Wednesday’s no help assignment

Tomorrow we are in room ___.  We will watch the end of the bitcoin documentary and then?

Today - finish up time.  


Class 60 - Friday, May 11

Iterative Algorithms Class 12

GUI Review - Creating our own GUI from scratch

Work time on assignments


GUI NotePad Class

package GUI_Notepad;

import java.awt.*;

import java.awt.event.*;

import java.io.*;

import javax.swing.*;

public class NotePad_GUI extends JFrame implements ActionListener {

    private JPanel innerWindow = new JPanel();

    private JButton read = new JButton("Load File");

    private JButton write = new JButton("Save File");

    private JTextField fileField = new JTextField(20);

    private JTextArea textArea = new JTextArea(50,50);

    private JLabel label = new JLabel("File name:");

    public NotePad_GUI() {

        super("Couprie's Block 4 Notepad Extravaganza");

       

        //this.add(innerWindow);

        innerWindow.setLayout(  new GridLayout(2,2,1,1)  );

        this.getContentPane().setLayout(new BorderLayout());

        this.getContentPane().add("North",innerWindow);

        this.getContentPane().add( new JScrollPane(textArea)  );

        this.getContentPane().add( "Center",textArea);

       

        innerWindow.add(read);

        innerWindow.add(write);

        innerWindow.add(label);

        innerWindow.add(fileField);

        //innerWindow.add(textArea);

       

        innerWindow.setBackground(Color.magenta);

        textArea.setBackground(Color.yellow);

       

        textArea.setForeground(Color.BLUE);

        Font font = new Font("ravie",Font.PLAIN, 20);

        textArea.setFont(font);

       

       

       

        read.addActionListener(this);

        write.addActionListener(this);

    }

    private void readTextFile(JTextArea textArea, String fileName) {

        try {

            BufferedReader inStream = new BufferedReader(new FileReader(fileName)); // Open the stream

            String line = inStream.readLine();            // Read one line

            while (line != null) {                        // While more text

                textArea.append(line + "\n");              // textArea a line

                line = inStream.readLine();               // Read next line

            }

            inStream.close();                             // Close the stream

        } catch (FileNotFoundException e) {

            textArea.setText("IOERROR: File NOT Found: " + fileName + "\n");

            e.printStackTrace();

        } catch (IOException e) {

            textArea.setText("IOERROR: " + e.getMessage() + "\n");

            e.printStackTrace();

        }

    } // end readTextFile

    //writes to a text file.  Netbeans will look for it at the Project Folder level.

    private void writeTextFile(JTextArea textArea, String fileName) {

        try {

            FileWriter outStream = new FileWriter(fileName);

            outStream.write(textArea.getText());

            outStream.close();

        } catch (IOException e) {

            textArea.setText("IOERROR: " + e.getMessage() + "\n");

            e.printStackTrace();

        }

    } // end writeTextFile()

//watches the button and waits until it is clicked    

    public void actionPerformed(ActionEvent evt) {

        String fileName = fileField.getText();

        if (evt.getSource() == read) {

            textArea.setText("");

            readTextFile(textArea, fileName);

        } else {

            writeTextFile(textArea, fileName);

        }

    }//end actionPerformed()

}

GUI Notepad MAIN

package GUI_Notepad;

import javax.swing.JFrame;

public class NotePad_Main {

    public static void main(String[] args) {

        NotePad_GUI window = new NotePad_GUI();

        window.setSize(400, 200);

        window.setVisible(true);

        window.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE  );

    }

   

}


Class 59 - Thursday, May 10

Iterative Algorithms Class 11

Announce No Help Assignment (in lieu of a credit exam) next Wednesday

Merge Algorithms

  1. Concatenating
  2. Interweaving

Thurs - Merge

Fri - Catch up time

Mon - Half GUI review, half catch up time

Tues - Half Gui review, half catch up time

Wed - No help assignment


Class 58 - Wednesday, May 9

Iterative Algorithms Class 10

Work time on Assignment 7 and 10


Public static void int[] concatenateArray(int[] arr1, int[]arr2){


Class 57 - Tuesday, May 8

Iterative Algorithms Class 9

Insertion Sort - 5 minute explanation https://www.youtube.com/watch?v=mXA1ICs3K4Y

Talk about the Selection sort algorithm but explain that any video you see will explain it but it is very similar to the Insertion Sort

Introduce Assignments


Class 56 - Monday, May 7

Iterative Algorithms Class 8

Prep - Copy a student’s sort and search algorithms into my SearchAndSort class

Bubble Sorting Parallel Arrays

Introduce the new assignment -


Class 55 - Friday, May 4

Iterative Algorithms Class 7

Catch up time

Banking on Bitcoin


Class 54 - Thursday, May 3

Iterative Algorithms Class 6

Quick Review of Bubble Sort

Work time on these 2 assignments only

Extra Activity - Watch Ted.com SpaceX interview


Class 53 - Wednesday, May 2

Iterative Algorithms Class 5

Code the DESCENDING order Bubble Sort from http://mathbits.com/MathBits/Java/arrays/Bubble.htm for an integer array.

Introduce them to IA9 - The Search and Sort Objects assignment

Finish Binary Search Activities


Class 52 - Tuesday, May 1

Iterative Algorithms Class 4b

Basic Algorithms Part 2

Introduce Sorting Algorithms without Actually Coding

And then this video: https://www.youtube.com/watch?v=WaNLJf8xzC4 - TED Ed Sorting Algorithms

Create your own sort algorithm

Specific Intro to the Bubble Sort

Code the DESCENDING order Bubble Sort from http://mathbits.com/MathBits/Java/arrays/Bubble.htm for an integer array.

Finish Binary Search Activities

Class 51 - Friday, April 27

Friday diversion - Monster Class example (created for the CS20s and prototyped with this class)


Class 50 - Thursday, April 26

Iterative Algorithms Class 3

Do a couple of other quick Array Algorithms reviews for future assignments

Demo the effects of String.compareTo();

Work on assignments 2 and 3


public class Ex1_BasicAlgorithms {

    public static void main(String[] args) {

        String[] countries = Files.loadStringArr("Happiness/countries_ranked.txt");

        String[] regions = Files.loadStringArr("Happiness/region.txt");

        double[] score = Files.loadDoubleArr("Happiness/score.txt");

       

        for(int i=0; i<countries.length; i++){

            System.out.println(i+ ". " +countries[i] + "    " + regions[i] + "    " + score[i]);

        }

       

        for(int i=0; i<countries.length; i++){

            if(   regions[i].equals("Central and Eastern Europe")     ){

                System.out.println(i+ ". " +countries[i] + "    " + regions[i] + "    " + score[i]);

            }

        }

       

        //count the number of countries in Central and Eastern Europe

        int counter = 0;

        for(int i=0; i<countries.length; i++){

            if(   regions[i].equals("Central and Eastern Europe")     ){

                counter++;

            }

        }

        System.out.println("The number of Central and Eastern Europe countries is " + counter);

       

        //total score

        //average score

        double total = 0;

        for(int i=0; i<countries.length; i++){

             total+=score[i];

        }

        double average = total/countries.length;

        System.out.println("The total score is " +  total);

        System.out.println("The average score is " +  average);

       

       

        for(int i=0; i<countries.length; i++){    

            System.out.println(countries[i] + countries[i].compareTo("Canada"));            

        }

       

       

       

       

    }//end main

   

}//end class

Class 49 - Wednesday, April 25

Iterative Algorithms Class 2

Note that basic algorithms have been added to assignment 1 for next year.  We may want to do some related review first.  See page up for example code

Discuss the credit as a whole

Check on yesterday’s lesson with the sub and the assignment

Introduce the 3 Binary Search assignments and let them roll.


Class 48 - Tuesday, April 24

Iterative Algorithms Class 1

Introduction to Binary Search Algorithms

Review on the whiteboard how a Linear search method worked

Ex1_BinarySearch

Last OOP work time


Class 47 - Monday, April 23

OOP Test

Finish up time


Class 46 - Friday, April 20

Major GUI review - Together, create a JFrame that will allow us to enter a new instance class for LawnMower

Review terms for test on Monday

Check if we need more finish up time


Class 45 - Thursday, April 19 - Sub plans

Day 17 of OOP



Class 44 - Wednesday, April 18- Sub plans

Day 16 of OOP

Activity 1: Work time

These students all have assignments to complete and are all aware of what to be working on.  Most will be on one of the following:

Activity 2: Big Data Video - Start showing at about 2:40

Go to this link: Big Data Revolution Documentary  or search "Big Data Revolution" - PBS Documentary on youtube.

Fast forward to the 14 minute mark as we already watched the first 14 minutes in a previous class. There are about 40 minutes remaining.

If a students asks to WORK during the video, you can give them permission to do so but it is work or watch, not free time.


Class 43 - Tuesday, April 17

Day 15 of OOP

Discuss exam format for next Monday

Review and add to  notes:

Class 42 - Monday, April 16

Day 15 of OOP

Review Inheritance concepts


Class 41 - Friday, April 13

Day 14 of OOP

Work time

Show Bitcoin Documentary  or Big Data in second half of class


Class 40 - Thursday, April 12

Day 13 of OOP

Use the Oracle Tutorial to discuss Inheritance.

Discuss with the BankAccount assignment.  There are many types of possible child classes of the BankAccount class:

Demo using the Store Example

Work time on Database


Class 39 - Wednesday, April 11

Day 12 of OOP

Work time

Class 38 - Tuesday, April 10

Day 11 of OOP

Prep: set up the student class and get them to copy it first

Lesson on Using CSV files

Work time on Database


TextFiles Example - Instance Class

Change this to an Actor class with name, sales, age, role

public class Student {

    public String name;

    public double feesPaid;

    public int grade;

    public String position;

    public Student(String n, double f, int g, String p) {

        name = n;

        feesPaid = f;

        grade = g;

        position = p;

    }

}

TextFiles Example - Main Class

import java.util.ArrayList;

import java.io.*;

public class TextFilesMain {

    public static void main(String[] args) {

        ArrayList<Student> allStudents = new ArrayList();

        loadFile("studentfile.txt", allStudents);

        for (int i = 0; i < allStudents.size(); i++) {

            System.out.println(allStudents.get(i).name + "  $" + allStudents.get(i).feesPaid);

        }

        allStudents.get(0).feesPaid += 100;

        allStudents.add(new Student("Dani", 50, 12, "Chucker"));

       

        saveFile("studentfile.txt", allStudents);

    }//end main

    public static void saveFile(String filename, ArrayList<Student> tempList) {

        try {

            PrintWriter file = new PrintWriter(new FileWriter(filename));

            for (int i = 0; i < tempList.size(); i++) {

//the next lines are customized for whatever data you are getting.

                String toSave = "";

                toSave += tempList.get(i).name;

                toSave += "," + tempList.get(i).feesPaid;

                toSave += "," + tempList.get(i).grade;

                toSave += "," + tempList.get(i).position;

                file.println(toSave);

            }

            file.close();

        } catch (IOException ex) {

            System.out.println(ex.toString());

        }

    }//end

    public static void loadFile(String filename, ArrayList tempList) {

        String temp = "";

        try {

            BufferedReader file = new BufferedReader(new FileReader(filename));

            while (file.ready()) {

                temp = file.readLine();

                String tempArray[] = temp.split(",");

//the next line is customized for whatever class you are creating.

//Here we create a new STUDENT so there are 4 variables

                tempList.add(new Student(tempArray[0], Double.parseDouble(tempArray[1]), Integer.parseInt(tempArray[2]), tempArray[3]));

            }

        } catch (IOException e) {

            System.out.println(e);

        }

    }//end loadFile

}//end class


Class 37 - Monday, April 9

Day 10 of OOP

Note - I am away at Faculty Council, ___ is covering

Work on assignments 3-6


Class 36 - Friday, April 5

Day 9 of OOP

Introduce OOP 5 Crossword Puzzle Assignment (worth less - likely only 10% - so those that are behind should skip)

Work time on Assignments 2 - 5

End of class?


Class 35 - Thursday, April 4

Day 8 of OOP

Introduce the Geometry Assignment

Work time on Assignments 2 - 4

OOP 5 Crossword Puzzle Assignment (worth less - likely only 10% - so those that are behind should skip)


Class 34 - Wednesday, April 3

Constructor Practice

Notes Continued

Visibility Indicators

Static and Abstract Classes

Other Considerations and Terms

Lawn Client Continued

Discuss before adding: How would you automatically generate a client ID number so that it increases each time?

                public static int counter = 100000;

                accountNum = BankingMain.counter;

                    BankingMain.counter++;

Finish 3 Bank Account



Class 33 - Tuesday, April 3

Day 6 of OOP

Post Constructor Practice to Classroom

Lawn Mower Major Example

Add to Notes - Visibility Indicators

Assignment 3 Bank Account


Lawn Mower Example - Private and Public

LawnMowerClients

public class LawnClient {

   //Instance variables

    public String name;

    public String address;

    public int lawnSize;                //in square metres

    public boolean hasDog;

    private double outstandingFees;

   

   

   //Contructor methods

    public LawnClient(String n, String a, int s, boolean dog){

   

        name = n;

        address = a;

        lawnSize = s;

        hasDog = dog;

        outstandingFees = 0;

       

    }

   

   

   //Instance methods

    public void calculateFee(){

        double total = lawnSize * 0.25;

        if(hasDog){

            total += 10;

        }

       

        System.out.println("Charging for this mow: $" + total);

        outstandingFees += total;

    }

    public void processPayment(double dollars){

        outstandingFees -= dollars;

        System.out.println("You still owe us: $" + outstandingFees);

    }

    public double getOutstandingFees(){

       

        if(outstandingFees > 50 && hasDog){

            hasDog = false;//we sent in the thugs

        }

       

        return outstandingFees;

    }

}//end LawnClient Class

public class LawnMain {

    public static void main(String[] args) {

       

        LawnClient c1 = new LawnClient( "Mr. Gardner", "Belgravia Road",80, false  );

        LawnClient c2 = new LawnClient( "Mr. Smyth", "Ottewell Road",60, true  );

        LawnClient c3 = new LawnClient( "Mr. Couprie", "199 Street",50, false  );

       

        LawnClient[] clientList = {c1, c2, c3};

       

        c1.calculateFee();

        c1.calculateFee();

        c2.calculateFee();

        c2.calculateFee();

        c2.calculateFee();

        c3.calculateFee();

        c1.processPayment(30);

        c2.processPayment(60);

        c3.processPayment(10);

       

        for (int i=0; i<clientList.length; i++){

        System.out.println(clientList[i].name + " still owes $" + clientList[i].getOutstandingFees()  );

        }

    }//end main


Class 32 - Friday, March 23

Day 5 of OOP

Finish Coins, some started Bank Account


Class 31 - Thursday, March 22

Review parts of an instance class by opening notes

STor

StoreProducts Review example

OOP2 Coins example


Class 30 - Wednesday, March 21

Day 3 of OOP

Add to OOP Notes - Instance Classes

        Parts of an Instance Class

BikeAThonTeams Brainstorm

Bike-a-thon v1 Major example

Finish Assignment 1


Class 29 - Tuesday, Mar. 20

Notes on Types of Non-Instance Classes (AP student in mind)

Review the setup of the Static Classes

Create a new package called OOP Calculator.

Finish Arduino


Class 28 - Monday, Mar. 19

Day 1 of OOP

Introduction to the Object Oriented Programming Credit

Create a OOP Notes Google Doc

Big Java Review Day 1- Poker Game Example creating a GameUtilities static class

Work on Arduino


TwoCardPoker Main Class

package BigReview;

public class TwoCardPoker {

    public static void main(String[] args) {

        int[] playerhand = new int[2];

        int[] casinohand = new int[2];

        playerhand[0] = GameUtilities.getRandom(13) + 1;

        playerhand[1] = GameUtilities.getRandom(13) + 1;

        casinohand[0] = GameUtilities.getRandom(13) + 1;

        casinohand[1] = GameUtilities.getRandom(13) + 1;

        String[] playerSuits = new String[2];

        String[] casinoSuits = new String[2];

        playerSuits[0] = GameUtilities.getSuit();

        playerSuits[1] = GameUtilities.getSuit();

        casinoSuits[0] = GameUtilities.getSuit();

        casinoSuits[1] = GameUtilities.getSuit();

        System.out.println("The player has a ");

        for (int i = 0; i < playerhand.length; i++) {

            System.out.println(GameUtilities.printCard(playerhand[i], playerSuits[i]));

        }

        System.out.println("The casino has a ");

        for (int i = 0; i < playerhand.length; i++) {

            System.out.println(GameUtilities.printCard(casinohand[i], casinoSuits[i]));

        }

        if (GameUtilities.isFlush(playerSuits[0], playerSuits[1]) && !GameUtilities.isFlush(casinoSuits[0], casinoSuits[1])) {

            System.out.println("The player wins with a flush");

        } else if (!GameUtilities.isFlush(playerSuits[0], playerSuits[1]) && GameUtilities.isFlush(casinoSuits[0], casinoSuits[1])) {

            System.out.println("The casino wins with a flush");

        } else if (GameUtilities.isFlush(playerSuits[0], playerSuits[1]) && GameUtilities.isFlush(casinoSuits[0], casinoSuits[1])) {

            if (GameUtilities.getHighest(playerhand[0], playerhand[1]) > GameUtilities.getHighest(casinohand[0], casinohand[1])) {

                System.out.println("The player wins with a higher flush");

            } else {

                System.out.println("The casino wins with a higherflush");

            }

        }

        else if (GameUtilities.isPair(playerhand[0], playerhand[1]) && !GameUtilities.isPair(casinohand[0], casinohand[1])) {

            System.out.println("The player wins with a pair");

        } else if (!GameUtilities.isPair(playerhand[0], playerhand[1]) && GameUtilities.isPair(casinohand[0], casinohand[1])) {

            System.out.println("The casino wins with a pair");

        } else if (GameUtilities.isPair(playerhand[0], playerhand[1]) && GameUtilities.isPair(casinohand[0], casinohand[1])) {

            if (GameUtilities.getHighest(playerhand[0], playerhand[1]) > GameUtilities.getHighest(casinohand[0], casinohand[1])) {

                System.out.println("The player wins with a higher pair");

            } else {

                System.out.println("The casino wins with a higher pair");

            }

        } else if (GameUtilities.getHighest(playerhand[0], playerhand[1]) > GameUtilities.getHighest(casinohand[0], casinohand[1])) {

            System.out.println("The player wins with the highest card");

        } else {

            System.out.println("The casino wins with a highest card");

        }

    }//end main

}//end poker

GameUtilities Class

//This is a static class

//We will use the methods

package BigReview;

public class GameUtilities {

   

    public static int getRandom(int max){      

        return (int)( Math.random() * max  + 1  );        

    }//end getRandom

   

    public static String getSuit(){

        int num = getRandom(4);

        if ( num == 1) return "clubs";

        else if (num == 2) return "diamonds";

        else if (num == 3) return "hearts";

        else return "spades";

       

    }//end getSuit

   

    public static String printCard(int cardNum, String suit){

        if (cardNum < 11) return cardNum + " of " + suit;

        else if (cardNum == 11) return "jack of " + suit;

        else if (cardNum == 12) return "queen of " + suit;

        else if (cardNum == 13) return "king of " + suit;

        else return "ace of " +  suit;

    }//end print suit

   

    public static boolean isPair(int num1, int num2){

        return num1==num2;

       

    }//end isPair

    public static boolean isFlush(String s1, String s2){

        return s1.equals(s2);

    }

    public static int getHighest(int num1, int num2){

        return Math.max(num1, num2);

    }//

}


Class 24-27

Monday - finish up theory

Tues-Thurs - Arduino Final Project


Class 21 & 22 - Wednesday, Mar. 7 & 8

Careers assignment

Circuit practice

Next Up

Hiding a secret message in an Image

Class 20 - Tuesday, Mar. 6

Split logic gates into 2 assignments

Add a question about flipflops

Return infographic marking

Logic Gates Review and New

Complete the Grade 10 Practice, marking it immediately afterwards

Adders

Start Digital Circuits #2


Class 19 - Monday, Mar. 5

Flippybit - get to 10 to win a candy

Binary Bonanza challenge - beat your last best score to win a candy

Discuss Negative Numbers in Binary and the final 5% assignment

Hex Colors Assignment Takes about 15 minutes to complete

Logic Lab Review

Rules:

Monday

Hex Colors Assignment

Tuesday

Look for review video in old lesson plans

Grade 10 Logic Gates Review

Careers Assignment

Wednesday

Intro to new logic gates, adders and flip flops

Digital Circuits Assign

Thurds

Digital Circuits

Ffri

Binary, Hex and Logic Quiz


Class 18 - Wednesday, Feb. 28

Go over the project document part 1 by having them skim through the textbooks, instructables and make magazine

Finish Mr. Piano Man

Flippybit - get to 10 to win a candy

Binary Bonanza challenge - beat your last best score to win a candy


Class 17 - Tuesday, Feb. 27

Prep: Finalize test format and announce

Discuss test - Will be coding only.  It will include multiple buttons, and LED and a motor/servo.  Will be after the project which will be after Theory which means after next week.

Hex & Binary numbers review and practice

Discuss Project Options

Continue Mr. Piano Man


Class 16 - Monday, Feb. 26

Check on progress of Mr. Piano Man

Discuss Arduino Wrap Up Project Possibilities

  1. Use your own idea to do something cool
  2. Complete one of the student designed projects (to be shown below)

Show Students Projects from last year (in notShared folder)

Announce Timeline

We need a type of ‘test’ to end the credit.  What do you suggest?

Ask for Arduino volunteer(s) for open house


Class 13-15 - With Sub


Class 12 - Tuesday, Feb 20

Prepare them for the sub by walking through the timeline

  1. Finish the Arduino 6 - Sensor Demo, including the poster.  Please also create a video of it in action to show me when I return.
  2. Arduino 7 - Mr. Piano Man
  3. Careers Theory Assignment

Remind them that I will mark Infographic soon (tonight?)

Walk them through the Careers Assignment which will likely happen on Friday. They will access that assignment via CLASSROOM


Class 8 - Tuesday, Feb. 13

Project Idea - watch a POV video

Walk through remaining assignments

Buttons R,P,S demo

Assign 5 Tug of War/Binary Counter


Class 7 - Monday, Feb. 12

Prep: set up document camera

Finish InfoGraphic - Give 20-30 more minutes.  Will mark starting mid-week.

Finish Meltdown - both are cut off today

Assign 4 Theory becomes final 10%


Class 6 - Friday, Feb. 8

Work on Infographic

Finish Arduino 3

Work on Arduino 4


Arduino Reminders

LEDs - long lead goes to positive (usually to the Pin), short to the resistor

Remember to use the 'Green-Blue-Brown' resistor for the LED

Arduino New Activities to Add Next year?

Combination Lock Exam or Project


Class 5 - Wednesday, Feb. 7

Prep:

CES 2018 Highlights Video (4:33) https://www.cnet.com/videos/best-tech-of-ces-2018/ 

Continue Infographic Assignment

Work on Arduino 2&3


Class 4 - Tuesday, Feb. 6

Prep:

Arduino Lesson - What is the Serial Monitor

Serial Monitor Example 1 from http://www.ladyada.net/learn/arduino/lesson4.html

Serial Monitor Example 2

Work time - Finish Assignment 2 and start assignment 3

Tomorrow we will continue work on Infographic


Class 3 - Monday, Feb. 5 - With Sub

Prep:

Activity 1: Information Highway Infographic (40 minutes)

Have them open the assignment via Google Classroom.  You can access the instructions here.

You are going to give them about 40 minutes to work on it.  They are to aim to complete all of Section 1 and to start on Section 2 during this time.

Activity 2: Arduino Assignment and Video

Have them open the assignment called Arduino Assignment 4 - About the Board via Google Classroom. You can access it here.

Before they begin the assignment itself, watch this video with them.  Warn them that it is quite dry but it is only 6 minutes and some of the answers in the Component Table (end of first page) are discussed directly in the video.  They may want to record the answers at that time.

Video: Youtube - Arduino Uno tutorial Basic microcontroller overview - Linked here

They are to work on Arduino Assignment 4 for the remainder of the class.  If they finish early, tell them to continue working on Assignment 2 which most started but did not finish on Friday.

Complete Info Revolution Infographic Section 1 - first half of class

Arduino - Learning about the board assignment

Complete Learning Assignment

Complete Assignment 1


Class 2 - Friday, Feb. 2

Prep:

Watch this video to explain the board (warning it is dry) : https://www.youtube.com/watch?v=4dXC9XrZT1Q 

Set up External LED together.  

Complete Info Revolution Infographic Section 1

Can be done in partners IF it is done collaboratively (rather than splitting up the work)


Class 1 - Thursday, Feb. 1

Prep:

Welcome back and discuss the small class size

Go through course outline and discuss the final project

Waterloo CCC - Discuss the exam- I must register tomorrow

Introduction to the Arduino Credit

Unbox and prepare their kit

Complete the learning activities from assignment 1  together in class