Sunday, July 7, 2019

Summer Learning

Summer Learning

I didn't attend the CSTA conference or the ISTE conference, and admit that I wish that I could.  I enjoy conferences, attending sessions, talking to the speakers, visiting the booths, and finding those connections with others.  However, my summer learning is proving to be very comprehensive, deep, and best of all I get to sleep in my own bed every night!

I attended the one day RockCS conference at the beginning of the June.  What a great day of
Jake Baskin presenting at RockCS
learning!  It kicked off with a keynote from CSTA executive director, Jake Baskin who reminded us all of the value in getting together as CS teachers since we are often CS islands at our schools without others to lean on and learn from.  Then I attended a full morning of cryptography with Python which had many great teaching tips for introducing students to Python as well as getting into some simple crypto algorithms.  At lunch we had a second key note from Ruthe Farmer of CSForAll who did a great job of reminding us about equity in our classrooms as well as some hands on computing making a simple circuit -- I might need to bring this into my classroom to start the year in August!  The afternoon was spent learning about using the Agile development process and scrums in the classroom for projects and also about equipping students for the workforce.

The second week of June, I was at Colorado School of Mines for a class on Web Design and JavaScript.  This course was very timely as I will be teaching a class on Web Design next semester, and I need to develop better Java Script skills and experience before the semester begins.  I appreciated that students taking the course were given pre-class assignments so that we could hit the ground running when we arrived at class.  As a result we touched on HTML/CSS for part of day one and then dug into JavaScript for the remainder of the class.  The lectures were brief and to the point, and the labs we took part in were open ended enough that if we finished early we could explore other areas.  The class covered a variety of topics from driving actions from HTML elements such as buttons, to fun animations using the Canvas element.  After the class we needed to complete a post-class assignment as well.  I appreciated the good teaching strategy of making these assignments be independent.  I completed one on forms processing as that is something I want to dig into for the class I will teach.

The third week of June was a custom class on learning to use SolidWorks with an eye towards industry certification of CSWA (Certified SolidWorks Associate) plus the fun of using a 3D printer.  This class was personally much more challenging for me.  It was open-ended and student driven -- yep, I work much better with structure and deadlines.  The other part that challenged me was using a new tool, SolidWorks.  I struggled with placing elements, zooming in and out as needed, rotating the elements to see things from different angles.  I was fortunate to have an expert available (CATT) as I had questions and struggles.  This definitely showed me that my students will also be going through some struggles that can hopefully be turned into product struggles, and making sure that I have enough check-ins to make sure that students aren't struggling in silence and becoming increasingly frustrated.  Again a timely class as this will be one of the offerings for the Independent Study class that we will be offering at Pinnacle.

The last week of June, I was back at Colorado School of Mines for a class on Cryptography.  This was more of a traditional class with longer lectures covering some heady mathematics concepts that I haven't used since I was in college (back in the 80s).  The class was sprinkled with labs that had me using Linux with the openssl commands and libraries.  This was a great class that really made me push hard to keep up with the topics of symmetric and asymmetric ciphers, hash functions, and digital certificates and keys.  While these topics are not ones that I will be directly teaching my students, I do have ideas on some possible demonstrations.  Also, I find that teaching topics that I feel completely comfortable with does not push me to think deeply and taking a class like this is invaluable to me.

Finally, I will be taking one more class on data science at Colorado School of Mines in mid-July.  This will be another class that I won't be directly teaching but hope to come away pushing my thinking and a demonstration or two that I can bring to my classes.  The class will be using Python and a new package for me, Pyret.  So I am looking forward to it as well.

I am grateful for all of the many opportunities for CS professional development right in my backyard.  A big shout out to Dr. Tracy Camp and all of the classes she creates with the C-START program.  One of these years I would like to get to CSTA and ISTE, but until then I want to keep my brain engaged over the summer months to avoid a summer slump for me!

Sunday, June 2, 2019

Summer Learning: Java Sciprt

This Week at Pinnacle

The first full week of summer break is complete!  I had to make a trip back to school to ship off 4 of the CTE laptops to have Dell fix an issue.  Since I was back in the building, I also stopped by my classroom to see how it looked after the demolition was complete.  Yep!  All of the long desks that were fixed to the floor and to the wall are gone!  So my days of walking up and down long aisles of desks are over.

With the new design the total number of students in the room will drop from 26 to 20.  There will be individual desks so the placement of desks can change depending on what is happening in the room.  There will also be room for a table with a PC and laptop for practice repairs and another table to be a 3D Printer station.  Finally, a couple of off-to-the-side work areas for students working on projects that want to be (or need to be) separated.  I will be saving off a few of the PCs that are being removed to start the PC repair area (Thanks for the suggestion Garth Flint!)

Learning JavaScript

One of the wonderful things about CS Education is that there is always something new to learn.  This summer's topics are IT Administration (which I blogged about last week) and JavaScript.  I plan to dig into JavaScript in three ways -- an online class, an in person class, and a weekly meetup.

In order to teach the new Web Design class next year, I need to pick up some JavaScript skills this summer.  I have been listening to the Syntax podcast by Scott Tolinski @stolinski and Wes Bos @wesbos for almost a year.  While this has opened my eyes to many things happening in the JavaScript world, I have only been listener and not a practitioner.  So to start my JavaScript journey I am taking the 30 day challenge and using a free online course from Wes Bos to build 30 JavaScript projects in 30 days.  I am hopeful that some of these projects might be able to be converted into something I can use in my classroom as well.

I am also planning to attend a in-person class at Colorado School of Mines.  The class is coming up  in two weeks, but I am impressed already as there is a set of pre-class homework to complete.  The C-START program at Mines is an incredible offering for Computer Science teachers in the Denver area.  Combined with the CS Education grants that are offered by the Colorado Department of Education, these classes can be taken at no charge.

The final way that I plan to dig into JavaScript is by attending a weekly Meetup in Denver -- The Coders Workshop which is part of the BootCampers collective.  I have attended one meeting and am impressed with how it is run.  Meetings begin with a lightning talk on a topic that typically shows up on technical interviews.  It moves into a introduction of the topic of the day.  Then the bulk of the meeting is spent working with others on a challenge.  The first topic was 2D arrays and algorithm design.  The people at the meetup are a great mix of professionals in the field as well as currently learning JavaScript on their own or in a bootcamp.

Image from

Sunday, May 26, 2019

More than programming

This week at Pinnacle

Finals are done and the grades are finalized.  Before leaving for the summer I packed up my room because it is receiving a remodel.  The current classroom has three long rows of desks that are a attached to the floor and connected to the wall on one side.  It means that I need to walk up and down the rows in order to check on students' work and to answer questions.  There are no short cuts or quick ways to get from one student to another.  The remodel will remove the long rows of desks and replace them with individual student desks.  Best of all the old tower PCs that run slow and take so long to boot up each day are being replaced with spiffy new laptops.  I am one happy CS teacher!

I had students draw up different room designs and there were many creative submissions, but we are going with one that has room for a hardware/ PC repair area on one side of the room and a 3D printer on the other side of the room with desks and a small quiet collaboration area in a corner.  It has all of the areas that I hoped for.

High School CS:  More than programming

As we build out a Career and Technical Education (CTE) CS program for Pinnacle High School, it needs to be more than languages, programming and web design.  Some students are interested in careers in CS but are not interested in a university degree either because of cost or because some students simply aren't interested in staying in a classroom setting for another 4 years after high school. 

To ensure that our program meets the needs of all students, we will be starting a new class for students to learn the basics of being an IT Administrator.  Because this isn't in my area of expertise, we will be using an online course from TestOut

Again, because this is not my area of expertise, I am running through the course this summer and putting together a class structure to go with the online course.  As I walk through the material I am very impressed with their LabSim environment.  Students learn concepts through online lectures and notes, such as attaching disk drives to a server and configuring a RAID array.  Then they can practice this in the LabSim environment where students can virtually remove items such as drives from a shelf, attach the drives with SATA cables, and then use the system to configure the RAID array.

Finally, with the classroom remodel we will have space for a table where we can performs some actual hands on work with systems to put into practice the concepts from the lessons and LabSim environment.  As we all know, reading something is good,  being able to look at things in a simulated environment is much better.  But when we actually try to attach cables, put in screws, and configure items on an actual system things go wrong and that is when some excellent learning occurs.

The net is that I am very impressed with the courses offered by TestOut and I am excited about the new offering that we can provide to students at Pinnacle!

Sunday, May 19, 2019

Python and Robotics: Edison

This Month at Pinnacle

I've been absent blogging for a while.  It's been a busy few weeks with our last programming competition at Lockheed Martin, getting ready for the AP CSA exam, graduation, and a trip back to Iowa to see my niece graduate college.  This year Pinnacle sent two teams to compete at Lockheed Martin's Code Quest programming competition and our novice team placed just out of the trophy range, coming in at fourth; and our advanced team also did well.  It was a beautiful day and I must say that the Lockheed Martin facility has some beautiful views from their patio area!  Many thanks for their continued leadership in putting this competition together.  We just finished the AP CSA material with a week and a half to spare for final reviewing.  Nine students took the AP test, and the students I saw after the test came out and gave thumbs up, so I am hopeful that they were prepared enough to do well.  Graduation was a fun event and I am so happy to see that three of the graduating seniors are considering CS majors in college.

ECS Unit - Robotics with Edison and Python

In Exploring Computer Science we are finishing our last unit which is on robotics. For this unit, we use Edison robots.  Students learn about the basics of robotics and then move through a set of lessons provided by Edison.  I have students work in pairs to program the robots and complete lessons which I have moved into a set of Google Forms. 
make use of

The robotics lessons are powerful because the students get to write code in an easy to use web-based IDE and then see real-world physical results of their computer program running.  After completing a set of lessons, I turn the students loose on creating their own unique projects where they have their robots play music, move, and flash LEDs.  Edison has a fun feature that allows students to create a String to play notes and create a tune.  For students that don't read music, I provide a set of strings that students can use for that portion of the project.  Students that do read music enjoy creating their own tunes as well as adding to the collection.

Most of the students have enjoyed putting together a set of movements that create a fun dance.  In some cases, they build representations so that the robot's moves are coordinated with the music.  Then they add flashing lights.

At the end of the dance when the music and movement have finished, most robots get programmed to listen for clapping and when the clap sensor is activated the robot will come out and take a bow.

Changes for Next Year

As with most units, there were things that went well and other things that didn't.  Overall, I count the unit a success with a lot of good learning happening.  I suspected that some students would be very engaged by the robots and want to move ahead quickly, so I made the unit a discovery set of lessons.  For the engaged students, this was more than enough, but those those who were less engaged, the lessons alone were not enough.  Next year I will allow students to move at their own speed but I will also be doing explicit instruction. 

I added the Google Forms this year for answering the questions in the lessons.  I will continue to use these next year but I also want to change these up a bit.  Right now each lesson has 3-5 forms with 3-5 spreadsheets.  This meant that when it came to entering grades, I spent 30-45 minutes flipping through multiple spreadsheets and summarizing them on a single sheet of paper.  Next year I want to add some result collections so that results are summarized in a single Google sheet.

Finally, the dance project is very engaging for the students and I want to add a second project checkpoint in the middle of the lessons that will give students another chance to get their creativity going.  Overall a good unit and many thanks to the folks at Edison!