Making Progress on Robot

We’re making progress on our robot! Speaking as a teacher, it was great seeing the look on my students’ faces when the robot jumped to life.

Our first scrimmage meet of the season is set for Saturday, 19-November-2016 at 8:00am at Kaufman High School.

While it may not yet be much to look at, it is driving in both a teleoperated and autonomous mode! Now, we can get to our actual build.

Our robot has made it for almost 8 hours of off/on driving over 3 school days on a single battery charge. During that same time, we dropped only one set screw and that was early on in the testing. Once it was tightened down, it has held with no problems.

We have had a few issues with the OTG cable between the core distribution module and the on-board phone. We’re in the process of replacing that with a micro-USB (male) to full-USB (female) that will then mate with a full-USB (male) to mini-USB (male). This will allow us to interface with the phone only having to interact with a full-size USB which we hope is more robust than the micro-USB we are working with now.

Progress Report 3 Grades

It has been 3 weeks since the 1st quarter of the school year wrapped-up. As such, we’re at another grade check – Progress Report 3.

As this is a progress report, students cannot lose eligibility per UIL guideline, they can only regain eligibility if they lost it 3 weeks ago when the 1st quarter ended.

Following is how my 4 courses performed at this grade check.

Computer Science I

For the past 3 weeks, Computer Science I has had 1 quiz grade and 5 daily grades. One of those daily grades was eligible for a grade drop as there was an unusual disruption to the instruction that day.

Progress Report 3 - Computer Science I
Progress Report 3 – Computer Science I

As you can see, the grades are starting to separate considerably from where they were in prior grading cycles. This grading cycle has had a challenging concept covered for much of its duration: Base-2, Base-8, Base-10, and Base-16 numbering systems and conversions between and arithmetic within those systems.

Robotics

For the past 3 weeks, Robotics has had only 4 daily grades.

Progress Report 3 - Robotics
Progress Report 3 – Robotics

As is the case with Computer Science, the grades have started to separate considerably from where they were in prior grading cycles. Nothing during this grading cycle has been very difficult, but some students have elected to not participate and their grades reflect this decision.

Principles of Technology

For the past 3 weeks, Principles of Technology has had 3 daily grades, 1 quiz grade (Egg Drop Project) and 1 test grade (Unit 2).

Progress Report 3 - Principles of Technology
Progress Report 3 – Principles of Technology

Unlike the preceding two classes, this class is relatively tightly packed in the 70+ range with a peak in the 90+ range. Given the materials covered, I am relatively pleased with these grades.

Business Information Management I

For the past 3 weeks, all 4 of my BIM classes have had 4 daily grades and 1 test grade (Tables in MS Word).

Progress Report 3 - BIM 2B
Progress Report 3 – BIM 2B
Progress Report 3 - BIM 3B
Progress Report 3 – BIM 3B
Progress Report 3 - BIM 4B
Progress Report 3 – BIM 4B
Progress Report 3 - BIM 4A
Progress Report 3 – BIM 4A

As you can see, several of the BIM classes have multiples A’s as well as multiple failures with the exception of BIM 3B. Many students have elected to not submit class assignments or their tests or both. As such, this has had a major impact on their grades. All students who have submitted work are passing.

A Number Systems Calculator

I have assigned a single-day project for my Computer Science students to create a number systems calculator to wrap-up our discussions on numbering systems.

In this project, students have to create a converter that first asks which number system the original number is from (Decimal, Binary, Octal, or Hexadecimal). It will then ask for the number and will output the equivalent values in the other 3 number systems with each clearly labeled.

The students are starting with the following code from Github…

//Program Name: Number Converter
//Programmer Name: Eric Evans, M.Ed.
//Programmer Organization: Ferris High School
//Program Date: Fall 2016

import java.util.*;
import java.lang.*;
import java.io.*;

public class converter{
    public static void main (String[] args) throws java.lang.Exception{
        Scanner menuChoice = new Scanner(System.in);
        System.out.println("Number Converter");
        System.out.println("");
        System.out.println("Which number system are you converting from?");
        System.out.println("1 - Decimal - Base 10");
        System.out.println("2 - Binary - Base 2");
        System.out.println("3 - Octal - Base 8");
        System.out.println("4 - Hexadecimal - Base 16");
        System.out.println("");
        System.out.print("Enter Your Selection_ ");
        int menu = menuChoice.nextInt();
        
        switch (menu) {
            case 1:
                {
                    Scanner myNumber = new Scanner(System.in);
                    System.out.print("Enter Your Decimal (Base 10) Number_ ");
                    int myDecimalNumber = myNumber.nextInt();
                    String myDecimalNumberBin = (Integer.toString(myDecimalNumber, 2));
                    String myDecimalNumberOct = (Integer.toString(myDecimalNumber, 8));
                    String myDecimalNumberHex = (Integer.toString(myDecimalNumber, 16));
                    System.out.println("The Decimal Number " + myDecimalNumber + " is equal to the following:");
                    System.out.println("");
                    System.out.println("Binary (Base 2) = " + myDecimalNumberBin);
                    System.out.println("Octal (Base 8) = " + myDecimalNumberOct);
                    System.out.println("Hexadecimal (Base 16) = " + myDecimalNumberHex);
                    break;
                }
            case 2:
                {
                    Scanner myNumber = new Scanner(System.in);
                    System.out.print("Enter Your Binary (Base 2) Number_ ");
                    String myBinaryNum = myNumber.nextLine();
                    int myBinaryNumber = (Integer.parseInt(myBinaryNum,2));
                    String myBinaryNumberDec = (Integer.toString(myBinaryNumber, 10));
                    String myBinaryNumberOct = (Integer.toString(myBinaryNumber, 8));
                    String myBinaryNumberHex = (Integer.toString(myBinaryNumber, 16));
                    System.out.println("The Binary Number " + myBinaryNumber + " is equal to the following:");
                    System.out.println("");
                    System.out.println("Decimal (Base 10) = " + myBinaryNumberDec);
                    System.out.println("Octal (Base 8) = " + myBinaryNumberOct);
                    System.out.println("Hexadecimal (Base 16) = " + myBinaryNumberHex);
                    break;
                }
            case 3:
                {
                    //Code for Menu Option 3
                    break;
                }
            case 4:
                {
                    //Code for Menu Option 4
                    break;
                }
            default:
                System.out.println("Invalid Selection");
                break;
        }
    }
}

With the given information, they should be able to easily code cases 3 and 4 of the problem.

Students are asked to test their solutions using the following test case:

Base 10 Base 2 Base 8 Base 16
42 101010 52 2A

As you can see, the test case all comes down to a matter of “Life, the Universe and Everything!”.

Here is a possible final solution:

//Program Name: Number Converter
//Programmer Name: Eric Evans, M.Ed.
//Programmer Organization: Ferris High School
//Program Date: Fall 2016

import java.util.*;
import java.lang.*;
import java.io.*;

public class converter{
    public static void main (String[] args) throws java.lang.Exception{
        Scanner menuChoice = new Scanner(System.in);
        System.out.println("Number Converter");
        System.out.println("");
        System.out.println("Which number system are you converting from?");
        System.out.println("1 - Decimal - Base 10");
        System.out.println("2 - Binary - Base 2");
        System.out.println("3 - Octal - Base 8");
        System.out.println("4 - Hexadecimal - Base 16");
        System.out.println("");
        System.out.print("Enter Your Selection_ ");
        int menu = menuChoice.nextInt();
        
        switch (menu) {
            case 1:
                {
                    Scanner myNumber = new Scanner(System.in);
                    System.out.print("Enter Your Decimal (Base 10) Number_ ");
                    int myDecimalNumber = myNumber.nextInt();
                    String myDecimalNumberBin = (Integer.toString(myDecimalNumber, 2));
                    String myDecimalNumberOct = (Integer.toString(myDecimalNumber, 8));
                    String myDecimalNumberHex = (Integer.toString(myDecimalNumber, 16));
                    System.out.println("The Decimal Number " + myDecimalNumber + " is equal to the following:");
                    System.out.println("");
                    System.out.println("Binary (Base 2) = " + myDecimalNumberBin);
                    System.out.println("Octal (Base 8) = " + myDecimalNumberOct);
                    System.out.println("Hexadecimal (Base 16) = " + myDecimalNumberHex);
                    break;
                }
            case 2:
                {
                    Scanner myNumber = new Scanner(System.in);
                    System.out.print("Enter Your Binary (Base 2) Number_ ");
                    String myBinaryNum = myNumber.nextLine();
                    int myBinaryNumber = (Integer.parseInt(myBinaryNum,2));
                    String myBinaryNumberDec = (Integer.toString(myBinaryNumber, 10));
                    String myBinaryNumberOct = (Integer.toString(myBinaryNumber, 8));
                    String myBinaryNumberHex = (Integer.toString(myBinaryNumber, 16));
                    System.out.println("The Binary Number " + myBinaryNumber + " is equal to the following:");
                    System.out.println("");
                    System.out.println("Decimal (Base 10) = " + myBinaryNumberDec);
                    System.out.println("Octal (Base 8) = " + myBinaryNumberOct);
                    System.out.println("Hexadecimal (Base 16) = " + myBinaryNumberHex);
                    break;
                }
            case 3:
                {
                    Scanner myNumber = new Scanner(System.in);
                    System.out.print("Enter Your Octal (Base 8) Number_ ");
                    String myOctalNum = myNumber.nextLine();
                    int myOctalNumber = (Integer.parseInt(myOctalNum,8));
                    String myOctalNumberDec = (Integer.toString(myOctalNumber, 10));
                    String myOctalNumberBin = (Integer.toString(myOctalNumber, 2));
                    String myOctalNumberHex = (Integer.toString(myOctalNumber, 16));
                    System.out.println("The Octal Number " + myOctalNumber + " is equal to the following:");
                    System.out.println("");
                    System.out.println("Decimal (Base 10) = " + myOctalNumberDec);
                    System.out.println("Binary (Base 2) = " + myOctalNumberBin);
                    System.out.println("Hexadecimal (Base 16) = " + myOctalNumberHex);
                    break;
                }
            case 4:
                {
                    Scanner myNumber = new Scanner(System.in);
                    System.out.print("Enter Your Hexadecimal (Base 16) Number_ ");
                    String myHexNum = myNumber.nextLine();
                    int myHexNumber = (Integer.parseInt(myHexNum,16));
                    String myHexNumberDec = (Integer.toString(myHexNumber, 10));
                    String myHexNumberBin = (Integer.toString(myHexNumber, 2));
                    String myHexNumberOct = (Integer.toString(myHexNumber, 8));
                    System.out.println("The Hexadecimal Number " + myHexNumber + " is equal to the following:");
                    System.out.println("");
                    System.out.println("Decimal (Base 10) = " + myHexNumberDec);
                    System.out.println("Binary (Base 2) = " + myHexNumberBin);
                    System.out.println("Octal (Base 8) = " + myHexNumberOct);
                    break;
                }
            default:
                System.out.println("Invalid Selection");
                break;
        }
    }
}

 

FIRST in Texas Round 1 Grant Awards

FIRST in Texas Foundation Logo
FIRST in Texas Foundation

The FIRST in Texas Foundation began notifying recipients of their grant awards from the first round of grant application processing on Friday, 28-October-2016.

FTC 11242 (Error 404) from Ferris High School is proud to announce that it has received an award letter from the Texas Workforce Commission for a grant in the amount of 1,525.00 for the 2016/2017 FIRST Tech Challenge Season!

Texas Workforce Commission Logo
Texas Workforce Commission

Texas Workforce Commission is the first official sponsor for FTC 11242 and we are proud to have their support and thank them for their sponsorship.

The grant is set-up to cover the season league fees of $250.00 and can then be used for qualifying expenses for materials and resources. With $250.00 allocated for play within the Citrine League of North Texas, that leaves $1,275.00 for materials and resources.

We will be seeking reimbursement of our $275.00 national registration fee which can then be applied as a credit with Pitsco. We will be using that credit to purchase components where Pitsco is a sole-source supplier.

AndyMark Logo
AndyMark Logo

The remaining $1,000.00 will be used to purchase items from AndyMark such as components of the Velocity Vortex game and parts for the robot.

We are once again, very thankful for the support of the Texas Workforce Commission and their continued support of FIRST Tech Challenge and FIRST Robotics Competition.

Eggs Away! Look Out Below!

Egg Drop Experiment
Egg Drop Experiment

In my Principles of Technology class, we performed the classic “egg drop” rig building experiment. As this is a fundamental physics class, we’re using this to discuss Unit 2: Conservation of Energy and Momentum where we cover Newton’s 3 laws of motion.

The students were given three 90-minute class sessions to research ideas for their drop rigs and to build them.

Following these three class sessions, we performed the drops.

The first drop was done from the ground at a height of 2 meters (~6.56 feet). Of the 20 rigs that were dropped, 18 survived and 2 failed.

The second drop was done from the basket of a pneumatic boom lift at a height of 7 meters (~22.96 feet). Of the 18 rigs that were dropped, 10 survived and 8 failed.

The third drop was also done from the basket on the boom.lift at a height of 15.5 meters (~50.85 feet). Of the 10 rigs that were dropped, 5 survived and 5 failed.

The final drop was done like the third drop, but each rig was thrown as opposed to only being accelerated by gravity. Of the 5 rigs that were thrown, 3 survived and were declared the “winner” and 2 failed.

Panoramic Image from Lift of FHS
Panoramic Image from Lift of FHS

Following the last drop, I took a quick panoramic picture using Google Cardboard Camera. It was a nice view around Ferris today!

Base 10, 2, & 8 Addition and Subtraction Worksheet

A few weeks ago I covered base-10 (decimal), base-2 (binary), base-8 (octal), and base-16 (hexadecimal) number systems with my UIL Computer Science team. I am now getting to that same concept with my Computer Science I class.

I am starting with the basics of bases 10, 2, and 8 on the first day. We’ll cover what they are and then how to add and subtract numbers within those numbering systems. Of course, for base-10, this should be very easy. However, I realized that covering the mechanics of what actually happens when you add or subtract numbers in base-10 tremendously helps when covering the other numbering systems.

Following this exercise, we’ll add base-16 to the mix and then discuss how to convert between the systems.

Robotics Parts Are Coming!

PITSCO Education Logo
PITSCO Education Logo

After several weeks and months of preparing for this moment, we now have robotics parts on order!

Our first parts will be coming in from PITSCO shortly and will consist of our TETRIX Competition Kit of Parts set as well as additional TETRIX components that are needed that are not part of the basic KOP.

We also ordered a starter communications bundle from PITSCO which contains two Moto – G Second Generation phones, two Logitech control pads, OTG cables for the phones, and a USB hub to allow for the control pads to interface with the driver station phone.

AndyMark Logo
AndyMark Logo

We also have parts en route from AndyMark, which is providing the upgraded motors for our robot along with some of the competition field materials, such as the beacons for us to practice with for the season.

We are extremely happy to have AndyMark as one of our vendors this season and look forward to working with them in future seasons as we expand our program further.

McMaster-Carr Logo
McMaster-Carr Logo

McMaster-Carr is our supplier for general mechanical parts and fasteners. They are providing all of our nuts, bolts, washers, screws, and hand-tools for the robotics team. All of the parts we are using from McMaster-Carr are stainless steel to replace the aluminum parts provided in the PITSCO KOP.

We were going to use Grainger for these parts, but McMaster-Carr had exactly what we needed and Grainger had some of the exact parts and only approximations of others.

Amazon Logo
Amazon Logo

Finally, we have a our “catch-all” vendor – Amazon. We are receiving numerous items from Amazon that we could otherwise not get from other vendors easily.

We are also using Amazon to purchase all of the Anderson PowerPole products that we need that we cannot purchase from PowerWerx. Unfortunately, PowerWerx only sells products to pre-pay customers. Public school districts are typically post-pay. As such, we had to go with another vendor to get the parts that we needed.

In addition to these Anderson PowerPole products, we are also purchasing battery chargers, safety glasses, fuses, and numerous other components from Amazon for our competition team.

1st Quarter Grades

The first 25% of the 2016/2017 Academic Year is now in the books! Hard to believe – but, it’s true. This past Friday, 14-October-2016 marked the end of the first 9-week grading quarter of the year.

Here’s a recap of how the grades broke out for my various classes:

Computer Science I (1B)

Q1 2016 Grade Summary - Computer Science
Q1 2016 Grade Summary – Computer Science

This quarter ended with an introduction into iterations, which is one of the more challenging concepts for students to comprehend. As such, the grades fluctuated a little bit at the end of the grading cycle.

The only 2 failures were due to poor performance on the unit tests and not taking advantage of the opportunity to submit corrections to bring the grades higher.

Principles of Technology (2A)

Q1 2016 Grade Summary - Principles of Technology
Q1 2016 Grade Summary – Principles of Technology

The quarter ended with an introduction to Conservation of Energy and Momentum. The only two failures in the class were not a direct result of poor performance on a test, but due to lack of participating on projects.

The only 2 failing students elected to not participate on various major projects during the first quarter (e.g. air skimmer, water bottle rocket, etc…).

Robotics & Automation (3A)

Q1 2016 Grade Summary - Robotics and Automation
Q1 2016 Grade Summary – Robotics and Automation

Unlike the previous two classes, all students in this class passed all objectives for the quarter. Any low-grades were once again due to students not submitting work and not due to lack of understanding.

Business Information Management I (2B)

Q1 2016 Grade Summary - Business Information Management (2B)
Q1 2016 Grade Summary – Business Information Management (2B)

While the graph shows 1 student failing this class during this period, that grade was adjusted up to passing as it was within the 69.0 to 69.9 range. I personally do not let students sit on a “9”. I always override and round up the 69, 79, and 89.

As such, like the 3A Robotics and Automation class, this class had no failures!

Business Information Management I (3B)

Q1 2016 Grade Summary - Business Information Management (3B)
Q1 2016 Grade Summary – Business Information Management (3B)

Like the BIM class before it, this class had no failures! However, this class genuinely had zero failures and also held the highest average of all of my BIM classes! Way to go BIM 3B!

Business Information Management I (4A)

Q1 2016 Grade Summary - Business Information Management (4A)
Q1 2016 Grade Summary – Business Information Management (4A)

Like the BIM class before it, this class also genuinely had zero failures and came in a close second for the highest average of my BIM classes! Good work BIM 4A!

Business Information Management I (4B)

Q1 2016 Grade Summary - Business Information Management (4B)
Q1 2016 Grade Summary – Business Information Management (4B)

Like the BIM class before it, this class also genuinely had zero failures. However, this class had the highest number of low-C’s of any of the BIM classes. I am going to need to watch this class closely as there were far too many students who were too close to falling below the cut-off for my comfort.

What Will Be Changing

As we enter the 2nd Quarter of the year a few things will be changing in all of my classes.

  1. Seating chart will be established for Computer Science I to cut down on incidents of students disrupting class and interfering with learning.
  2. Seating chart will be established for Principles of Technology to address incidents of student disruptions.
  3. Seating chart will be established for Business Information Management (4B) to address student interactions that are preventing work from being completed in a timely manner.
  4. Students who fail to complete an assignment will be immediately assigned to come in for lunch/advisory on that day if in 1st or 2nd periods and on the next day if in 3rd or 4th periods.
  5. Students will not be allowed to take “breaks” on the computers when working. They will be allowed to listen to music, but video games will be blocked until complete and proper work is submitted.
  6. Campus late policy will be implemented as written. Work will no longer be taken after 5 days from assigned date except in rare and extreme cases.

Iterations Exam 1

In Computer Science I, we have now completed our first exam over iterations. This was a high-level look at basic iterative structures such as:

  • for loops
  • while loops
  • nested while loops
  • do while loops

The test was administered in a single 90-minute class and then reviewed for corrections which were submitted during the next class session.

Computer Science Unit 2 Test Grade Distribution
Computer Science Unit 2 Test Grade Distribution

The raw (uncurved) exam grades came in with a MEDIAN of 53% and a MEAN of 60.4%. The curved exam grades had a final MEDIAN of 74.05% and a MEAN of 77.8%.

Following validation of the 25 questions, it was determined that only 1 question (#6) was a bad question and was discarded. The remaining 24 questions were considered valid and correct.

Why Wait ‘Til the End?!?!?!?

As we rapidly approach the conclusion of the last day of our 9-weeks grading cycle, I have a plethora of students who are asking what they can do in order to bring their grades up.

While this in and of itself is not unusual (this is my 14th year working in education), what frustrates me is the number of them who are in what is arguably the easiest of my 4 classes (Business Information Management).

Everything in this class is handed to the students in step-by-step instructions with screen shots. All students must do is follow the instructions, whether they are reading on their own or following along with me, and then submit their work when done.

While I do not feel that I will ultimately have very many failures in this class, it frustrates me that many choose to wait until the end of the grading cycle to perform. Why just not perform the entire time and the stress level will be much lower?