Sunday, October 28, 2018

Grants and Funding

It was a good week for Pinnacle High School.  Our football team broke a long losing streak -- Go Timeberwolves! 

1 Us Dollar Bill
The challenge of funding a high school CS program
I am anxiously looking forward to the arrival of some new laptops that were purchased with our CTE Perkins Funding.  And with the help of our grants person, we have put in a request with the state department of education so that I can attend some professional development over the summer.  A good week indeed!  Although this does give me pause to think about the challenges that a high school computer science program has in getting funding.  It is so much more challenging than what I saw in industry.

CTE Funding for CS

Before talking about the Career and Technical Education (CTE) funding, I want to point out the challenges that we have trying to support a Computer Science program at a small school with limited funding.

Last year our school had two teams competing in security competition called Cyber Patriots (https://setanothergoal.blogspot.com/2018/08/cyberpatriot.html), but we had a considerable amount of difficulty competing because we were using 8 year old laptops.  The students competed and did quite well, making it to the National Semifinal round.  But the technology issues definitely held them back from competing at their peak.  There was no good solution at the time, so we made the best of it.

This year I am teaching a Game Design class and had planned to use the Unity engine which requires a 64-bit operating system.  Unfortunately, the computers in my classroom are quite old and our IT department was not able to get a new image pushed out to the PCs.  We spent the first nine weeks doing game design on paper and learning a bit about Python to learn the programming concepts that we will eventually use with Unity.  One of the students got very creative and downloaded a version of Unity that was several years old but did run on a 32-bit version of Windows.  So now we are working with Unity, and completing our second tutorial.  But some things don't seem to work and we get to be creative and problem solve each one that is encountered.

Entering our first full year with a Career and Technical Education (CTE) program in place for Software Engineering also comes with funding which is greatly appreciated.  We are spending part of our funds on a new set of laptops.  The students in our Cyber Patriots competition will soon be competing on nice new laptops that won't slow them down.  The students in the Game Design class will be able to load and run the latest version of Unity.  Life is good!  I highly encourage any CS teacher in the USA to investigate getting a CTE program in place (https://www.acteonline.org/).

Department of Education Grants


With the CTE funding covering some of the physical needs of the program at our school, I am looking forward to areas that I want to expand.  Cyber Security, Data Science, Computer Aided Design, and Web Design and Programming are areas that I want to learn more about but have not worked with during my career.  The Colorado Department of Education offers grants for funding professional development for computer science education (https://www.cde.state.co.us/computerscience).  With the help of our school's grants person (who also manages our assessments and other things), we have applied for a grant so that I can spend a couple weeks this summer getting some education on JavaScript programming, Cyber Security, and Computer Aided Design.  This particular grant needs to be completed in only two days, so this is most likely not something others can apply for, but check out what your state offers.

Now I realize that not every teacher wants to spend two weeks of summer vacation in PD.  But as a computer science teacher and someone who enjoys learning new things, this PD is exciting and something that I am looking forward to.  As a side note, it is also one way to attract and keep computer science teachers -- offering these people ways to keep technical skills up-to-date through professional development.  There is of course the concern that if teachers are educated in the latest CS skills they may leave, but the alternative is that CS teachers are not offered PD and then stick around and teach our students outdated skills.

Grants and Funding -- Stepping Back


While I am delighted about the new laptops and the opportunity for additional PD (if the grant is approved), I also wonder about the need for this.  Having spent 26 years in industry there was no need to look for funding or apply for grants.  When I needed a new laptop, I would let my manager know.  For the most part, I didn't even need to ask for a new system, instead it would be replaced on a regular refresh schedule.  When I needed training on something new, there was funding for me to get education either internally or externally.

I become frustrated that there is a need to search for funding, fill out paper work, hope for the best and then if it is approved the need to report on how the funding was spent and the results from it.  I look forward to the day when secondary education can receive the same type of funding that we see in industry.

I do wonder if there can some day be an expansion of the CTE program that will have our high school students begin working with industry while still in high school and have that funding flow directly from industry to schools.

Image taken from: pexels.com

Sunday, October 21, 2018

Web Design with Exploring Computer Science

Another busy week!  Our school held a fund raiser on Friday night.  Based on the idea and a whole lot of hard work from one of our teachers, and pitching in from the rest of us, we turned our school into a Haunted High School.  It was a big success!  Saturday was our final home game in football.  A tough loss but perfect weather for a game.

One student's work with a scrolling marquee
Next week I will take my Exploring Computer Science class from working with web pages in .HTML to using Cascading Style Sheets (CSS).  However, they completed their first project -- a single web page using a basic set of HTML tags, inline style, and sizing images using GIMP 2.  I was so impressed with the results of what the students have put together.  I awarded extra credit for students who researched an included a tag that we did not cover in class, and I had students use marquees for scrolling text and others that included background music that played.

Teaching Web Design

I have broken down the web design class in the order suggested by the Exploring Computer Science (http://www.exploringcs.org/) curriculum:
  • introducing a basic set of HTML tags (paragraphs, headings, breaks, lines, bold, italics)
  • working with images (using GIMP 2 to resize images and using the <img> tag)
  • adding inline style and an internal style sheet
  • adding tables, ordered lists, and unordered lists
  • cascading style sheets
  • setting up grid layouts
  • creating a navigation bar
A student's web page that added image borders.
Unfortunately, the background image was not available.
The format I teach from follows a basic approach of "we do-guided practice-you do".   First, I provide students with an HTML file with the tags in place that we will be using.  We modify together the HTML file and create a second example of the tags together.  They are typing along with me.  I am using LAN School to project my screen image as a window on student screens, so they can set up with a side-by-side pair of windows and type in the HTML along with me.

Next, students have an assignment which is 4-5 exercises where they add to an existing HTML file with an example in place, add to an HTML file with the setup for the new tags, and then finally create an HTML file using their first exercises as a template to create something new.

After completing two or three lessons students create a larger project on their own which is something of their own choosing.  After the first three lessons, the students have created some very impressive web pages.

Good Questions and Student Thought


Teaching this unit is fun!  I find that students often ask questions that lead them into the next lesson. 
Another student's web page who worked on changing
jpg images to png.
As some of the students were creating their web pages, they were asking how they could create sections to their web pages, and I let them know that it was coming soon.  Others asked if they would need to duplicate their internal style sheets on each web page they create.  What a perfect introduction to CSS files!

The other impressive thing is seeing students investigate new things for their web pages.  Some students like the idea of an image as a background but then wondered how to make smaller images pop from that background.  They learned about creating a border around an image.

Some students wanted to add some life to their web pages (we won't get to JavaScript with this class), and they found the marquee tag to add that life with scrolling text.

Finally some ambitious students wanted to add background music and learned about embedding WAV files to add that music.  We did have a discussion that some viewers of a web page may not be impressed if music comes blaring out of their speakers, but the investigation, learning and accomplishment was wonderful to see.

Sunday, October 14, 2018

Task Cards -

I woke up to the first snowfall of the year.  It was enough to cover the grass, but the ground temperature was warm enough that the sidewalks and driveways didn't freeze up or accumulate any snow.  Now, that's the best kind of snow of all.  Looks nice without the negative side effects.  Earlier this year I used task cards to reinforce the lesson on creating classes.  My hope is that the use of task cards is similar -- a fun learning activity without the negative side effects of just writing a set of programs.

Task Cards

Task Cards for Java Programming - 1
Example set of task cards - part 1
When I teach students to create classes in Java I typically step through creating a step in the class and then a corresponding step in the runner for the class to test methods.  The order that I typically step through follows:
  1. Create the class and the private instance variables
  2. Create a constructor for the class that has a parameter for each of the instance variables
  3. Create a runner with a main() method; read in values from the use for each of the instance variables; and then create an object of type of the class.
  4. Add access methods (getters/setters) for each of the instance variables
  5. Use the getter methods in the runner to display the current values; read in new values from the user; and then update the instance variables with the setter methods.
  6. Add an additional method or two that does some sort of calculation with the instance variables of the class
  7. Update the runner to use these new methods
  8. Add a toString() method to the class
  9. Use the toString method in the runner to display the current values of the class after it is initially created and again after the instance variables are updated with the setters
  10. Add an equals() method to sensibly check for equality of two instances of the class
  11. Task Cards for Java Programming - 2
    Example set of task cards - part 2
  12. Update the runner to create a second instance of the class and check if the two instances are equal using the equals() method.
It's a long set of steps and students typically find creating classes to be long and tedious.  We typically create one class and runner together and then instead of having students create others on their own, I use task cards to change things up a bit.


Task Cards - Benefits


I like using task cards for this lesson for several reasons.  First, since this activity has so many steps it seemed like a natural to put each of these steps on a task card and students complete a task and then move on to the next task.  Because the students are compiling or compiling and running at almost every step there is lots of feed back for students.

Second, I like the change of pace and the students seem to like the change of pace as well.  I also do this activity with paired programming, so a student works on one task and then switches roles and then watches as the other partner types in the next task.  I let the students self select and this provides for some good differentiation in the practice.

Third, this one was unexpected, but my students turned this into a sort of competition.  The activity becomes one of calling out, "We are on step 5!"  Students actively watch their partners to make sure they are typing things in correctly and compiling the code mentally -- catching each others' mistakes and fixing them without needing to compile.  I have the cards setup at the front of the room and have students come up and take one card at a time.  Eventually, it becomes a race to run up and get the next card.

Task Cards - Things I wonder about


I have two things that I wonder about and think may be concerns down the road.  The first is a concern about the use of task cards themselves.  When there is simply a set of steps, whether they come in a list or a set of cards, I wonder if students are making the connections to be able to think critically and independently and know why they are doing these steps and when some of these steps may not be needed for a particular class.

I also wonder about the speed aspect.  When the students turn this into a race, I become concerned about how deeply they are learning the topic.  Does it stick or is it just a fun activity?  The testing at the end of this unit tells me that they actually are learning it well, so I am hopeful.  I am also hopeful that this snow will be short lived and melt into a return to some nice fall weather!

Sunday, October 7, 2018

The Long View: CTE 5-year Plan and Advisory Committee


Red Leaf Trees Near the Road
While driving down the fall roads of my classes,
it's good to take a step back and see where you are headed
Earlier this fall, I took a day and drove up into the mountains to look at some fall colors.  It was a day well spent and an enjoyable drive down some back roads with beautiful fall colors.  This week, Parent Teacher Conferences were held and are now over and we are in for the five-week stretch before Thanksgiving break.  It's a great time to make some real progress in the classroom.  It's also a good time to take a step back and make sure your classes are heading in the right direction as well as taking a some time to take the long view and look at where your school's program is going.  And that view is my CTE 5-year plan.