CS Ed – to water or not to water, that is the question

April 17, 2018

I started to write this as a comment to Mike Zamansky’s post but it got way to long.  As usual he brings up some excellent points.  Mike and I have the same goals but our knowledge, experience and backgrounds are vastly different.

I came into CS Ed with no background in CS other than an ancient course in FORTRAN (punch card era) and a horrible course in Java (Gandolf and plug the phone receiver into a weird phone receptacle era). Everything I presently teach I learned on-the-job from books and the internet. I teach no “canned” curriculum so everything I teach I had to learn from scratch.  (This is not exceptional.  Most CS teachers that are not teaching a “canned” curriculum learned what they presently teach from scratch.)  My present job (tech coordinator/IT dude and CS/Math teacher at a smallish K-12 Catholic school) requires I have knowledge of K-12 CS, not just high school or pre-college.  As a result I need a tremendous breadth and very little depth. (I wish I had time for depth.)  Mike and my skill sets have us looking at CS Ed in different ways, which for me is a huge asset.  So here is my comment to his post.

My “Math for Math Teachers” course was a real ass kicker. Number theory, math history (why the Egyptians did it that way and why it was cool), devolution of algorithms (how the long hand division algorithm actually works) and how to teach all that stuff. It was one of the hardest math courses I ever took. (Abstract Algebra with groups, rings and other mysterious, magical and imaginary things was the winner.) I also taught “Math for Elementary Teachers” at the Univ of Montana. Drop out rate was about 25%. These math courses were far from watered down math. They were “understanding how this stuff works” on steroids. When I started teaching I did not need that Abstract Algebra course work, I needed course on how kids see math and how to help them see math. That is what those “Math for Math Teachers” courses try to do. Prospective math teachers could use four semesters of that “math for math teachers”.

I see the same thing for CS. A CS Ed program should not focus on CS content, it should focus on how to teach that content. But the program has to give enough content to build more content on top of.  A CS teacher needs to be familiar with a large number of languages, from things like MakeCode, Scratch and Alice to Python, Java, Visual Studio and maybe a couple of game engines like Unity and Lumberyard. Throw in some Blender and Gimp in case the teacher wants to start a game programming curriculum because the APCS course has only two kids in it. They need to be able to discuss the basics of networking, computer hardware and all that “techie” stuff.  Oh, and do not forget that apps course that needs a teacher: MS Office, Photoshop, Audacity, etc.  The required breadth is intimidating. Remember I am looking at this from the direction of a small school CS teacher.  Getting the right depth is the issue that bothers me. Two semesters of Java (or whatever language is the flavor of the month) or a “Java for Teachers” that teaches some Java and but focuses on teaching how kids are going to struggle with Java and how to address that struggle?  Both would be the perfect solution but there are only so many hours in the day. Finding that middle ground should keep us CS teachers talking for many years.

Is a “Java for Teachers” a watered down Java course?  As far as Java (or whatever language) goes, yes.  As far as teaching Java, no.  Teaching programming is much harder than learning to program.  Ask any CS teacher.  The Java element as such is not watered down because it is unimportant, it is watered down because there is only so much time in a course and somehow the instructor has to squeeze in Java AND how to teach Java.  The “how to teach Java” is the hard part of the course.  Experience has taught me teaching math is a cupcake compared to teaching programming.  Will that “Java for Teachers” turn into an “APCS-A for Teachers”?  I wish it did not but it may.  The shortage of K-12 CS teachers and the shortage of college level K-12 CS teacher trainers may drive that trend.  If a school wants an APCS program their only option right now is an “APCS for Teachers” in-service.  (I am actually taking an “APCS-P Mobile” in-service this summer.  I do not teach APCS and have no desire to teach APCS but it will increase my breadth and will give me more material to cherry pick from for my courses.  Depth?  Not so much.)  Arguing the good or bad of this “take it then teach it” approach does not change the necessity.  It is better than nothing.

So where was I?  Oh, yes, breadth vs. depth.  A CS teachers has to have that breadth.  Non-negotiable.  You may find yourself teaching 6th graders Scratch or helping a 3rd grade teacher teach Kodu.  On the other hand you may end up teaching in a high school that prides itself on sending CS prepped students directly to an upper level university CS program.  Going to need some serious depth for that.

Are we watering down CS Ed by building and offering “CS for Teachers” type courses?  Yes and no.  We are watering down the CS part and (what is the opposite of “watering down”?) adding more body to the Ed part.  At least that is what I hope will happen.  Individual courses and programs will vary and for sure some are going to be pure schlock.

Can the need for K-12 CS teachers be filled by offering a comprehensive CS Ed degree with a near CS major depth and still fill the K-12 breadth requirement?  I do not see it happening.  Presently the number of jobs for CS Ed majors is limited.  All the CS teachers I know (admittedly not a lot) were hired to teach something else (usually business or math) and ended up teaching a CS course or two.  There is simply no market for CS Ed majors to interest prospective teachers.  This is somewhat location driven but on average I would claim the statement to be true.  So the CS Ed part needs to be some kind of minor or certification program.  Something fairly quick and “easy”.  Something with a lot of breadth that will make a job seeking teacher more marketable.  This is not necessarily a good approach but it is better than an alternative of no CS teachers.

So back to breadth vs. depth.  I am a breadth kind of guy.  My job requires it.  I try to develop depth as needed.  Not a great solution but it is all I got.  I look at Mike’s former high school position and I see it the other way around.  For what he was doing more depth was needed and not quite so much breadth.  He was not going to deal with 3rd graders and Kodu.  So, given a limited amount of time available in a practical CS Ed program, which approach is better?  Yeh, right.  Good luck getting an answer most CS educators will agree on there.


Microsoft in Education? Maybe not so much.

April 4, 2018

I just posted this to the Microsoft Yammer Computer Science Teachers Network site.  I figured I might as well get double use out of it.


“The sudden death of Touch Develop and CCGA has me deep into an expounding mood. Reading some of the comments by teachers that use TD and CCGA makes me feel for them. I did not use TD or CCGA because I have other directions in my curriculum but a few years ago I did attend one of the multi-day CCGA training sessions given my Microsoft . It was very worthwhile and I figured Microsoft’s interest in education was well grounded and they had a plan. Now I am sure they have neither. It seems to me they do not have anyone involved in their education software department that actually knows anything about education or educators. The death of CCGA is the perfect example. There is nothing wrong with fazing out a program, CS evolves, but that change should be over a year or two to give teachers time to plan, rewrite and train. Adopting a curriculum is not an easy job. A good teacher will not just take something like CCGA and use it exactly as written. They have to adapt it to their own experience, the needs of their particular student group and the hardware they have available. This takes a lot of time on their part. Time is not something teachers have a lot of hanging around. MS seems to have completely missed this. If the MS education department had a couple of experienced K-12 teachers wandering around the office I am sure those teachers would have said something like “Are you nuts!? You cannot kill it like that! There are teachers using this right now and they have hours and hours invested into this curriculum! You do this and you are going to lose the faith of all the teachers that use MS based curriculum. Are you really that nuts!?”. The idea that the CCGA curriculum can simply be replaced by MakeCode demonstrates MS’s lack of understanding even more. Curriculum is not plug-and-play.


Years ago MS used to have Education Advocates. There were experienced teachers that were online to help answer teaching questions and promote MS education. Perhaps MS needs to rehire these positions. They need somebody out there that has teaching experience, somebody listening to classroom teachers and somebody to help MS plan a long term education strategy. They need to have someone with K-12 experience look at what teachers are doing in the classroom and give practical advice to the higher powers.


MS is not going to make a fortune on education, most of us are too broke to spend money on education software, especially when there is so much good stuff out there for free. But education software lays the foundation for what kids are going to be familiar with when they get into the job market. It builds a dedicated user group. Right now MS is losing that dedicated user group of teachers. My school is leaving Office for Google Apps, I was all ready to dive big time into Project Spark when it died, I now use Unity, my VB curriculum has been almost completely replaced by Python and Chromebooks are replacing all the PCs in our elementary school. At this rate MS is going to lose the education race, especially when they alienate a few thousand teachers.


MS obviously has people working for it that are interested in education products. Small Basic is the perfect intro line code language, MakeCode will be great for the middle school (until MS kills it that is), little kids love Kodu and VB/C# have an understandably dedicated core of teachers. All MS has to do now is to figure out what K-12 education is all about. Long range strategic planning is a good thing.”


I actually like MS.  They make some great free stuff that makes teaching CS much easier.  Some of their stuff is just down right cool.  Kodu and (when it was alive) Project Spark are and were just so dang fun that I figured I would be able to suck kids into the black hole of programming for years with those two.  After two years I am still grieving the loss of Project Spark.  The death of Touch Develop and CCGA just sends up a flag that MS is simply out of touch with their education community.  We still use Kodu in the elementary school but I will make sure the teacher there does not rely on it as a core to a lesson group.  Luckily Small Basic, one of my mainstays, does not appear to be controlled by MS.  If it were to die I would be hurting.  It is a standalone but having the support group is incredibly useful.


The lack of expertise in understanding the education market just seems odd to me.  There are undoubtedly thousands of teachers out there that would love to help MS figure out a plan for a continuous K-12 strategy that would not have any sudden death moments.  A couple of face-to-face conferences and then use online collaboration and something good might occur.  And probably a lot cheaper than pissing off a few thousand teachers.


From Unity back to Python

March 2, 2018

My sophomore Unity students were getting bored watching the Unity education series of videos I had them working through.  I was identifying.  I was bored watching videos also.  We had pretty much proved to ourselves that we could do anything we wanted in Unity if we found the right tutorial.  The kids were confident they could learn whatever they needed to do in Unity.  That was what I was after.  They were not afraid to learn on their own.  One of the kids asked if the class could do some Python programming.  (Be still my heart.)  I had not planned to do Python with this group until next year.  Next year they would be eligible for the dual-credit from the University but I figured why not, we can always quickly repeat what we do this year next year and then go on to bigger and better things.  Now this group is a bunch of programming geeks.  They like coding and tinkering with computers.  I had done a little Python with them in a brief programming language parade earlier in the year and they have coded in Scratch and Small Basic.  The group understands the fundamentals of coding so this should not be a great problem.

There is a problem.  They are doing the projects at home for fun.  They are looking at the book (“How to Think Like a Computer Scientist: Learning with Python 3 Documentation” by Wentworth, et al.) out of class.  What I had planned to do in two or three class periods is taking less than one.  I had a whole class lecture laid out on doing the program in outline form and some kind of pseudo code before sitting down to type.  I started in on my talk and one of the kids holds up a piece of paper with a program outline.  “We did that last night.”  Smart kids can really mess with a schedule.  What am I supposed to do?  Ah, the burdens we teachers bare.  I will suffer along no matter what the hardships.

Anyway we have started on the first major programming project.  Major in the sense it is not one of the assignments in the book (none of which I had assigned but they were doing them for fun so I did not need to assign them) and requires assembling knowledge from several chapters to do the project.  The project uses turtle graphics to draw a circular pattern of bricks.  Initially the variables are the distance from the center to the inner edge of the first row of bricks and the number of rows.  Later we make the brick dimensions variables.

I have done this project for years.  It is my test project for a language with drawing capabilities.  It is not a complex project but it tests multiple programming ideas: user input, modularity, parameters, loops, program organization and, most important of all, thinking before typing code.  It is also expandable.  Color the bricks, use a shape other than a rectangle for the bricks (this can be really tricky with some interesting math depending on the shape), draw the bricks in a spiral, and so on.  I typically have the kids complete the project in the language we are working in then tell them to do it in two different languages.  I give them a list of languages I know will work.  They have to find the resources to learn the language and learn the language well enough to do the project.  Since this is not a project I have seen a solution for yet on the internet they usually have some good hair pulling time involved.  Good stuff.

The challenge for this class, at least as I see it at the moment, is seeing how far and long I can drag out this project.  June is a long ways away and at the speed these kids are moving I have to have enough challenges laid out for them to last until the end of the school year.

Ah, the burdens we teachers bare (or is it bear?).  Thank goodness for beer.

And Magic Occurs

February 8, 2018

We use Powerschool for out grades and attendance.  Part of my job is maintaining the updates and general odds and ends software like this requires.  Well yesterday I tried to install an SSL certificate on it so a piece of third-party software would work.  I got the certificate from GoDaddy and found the documentation to install it on Powerschool’s site.  I am good to go.  Shut down PS, go through the process of importing and checking the right boxes, startup PS.  No startup.  Hummm.  Restart the server.  No startup.  Undo what I did. No startup.  Usually PS take about two minutes to startup.  I wait for thirty minutes several times.  Nope.  It is 6:30.  Nuts.  Dinner calls and I head home.  I start a help ticket with PS support before I leave thinking I will call then in the morning.  I leave PS on so I will have the error messages available in the morning.  I get an email in the morning from PS support saying they see PS is running.  If there any further issues contact them.  I get on line and sure enough PS is up and running.  I get to school and the PS is really working.  The PS monitor that shows the status says it is not.  I close the monitor screen and reopen it and the yellow button turns green.  This is a live monitor.  It should not do that.

I have no idea what happened.  Overnight the software fairy waved her wand and made PS actually fix itself.  As Arthur C. Clarke said “Any sufficiently advanced technology is indistinguishable from magic.”

I still have to get that SSL certificate installed but I think I will wait for a break.

Teaching with Videos: For better or for worse

February 5, 2018

(OK, I admit “teaching” with videos is an inappropriate use of the word “teach”.  It should be more like “have students try to learn with videos”.  Even that is a bit weak.)

I am teaching a couple of programming classes using videos.  One class is learning Unity using Patrick Felicia’s series “Getting Started with 3D Animation in Unity” (https://learntocreategames.com).  $15 for a series of good video lessons.  They are pretty straightforward tutorials.  Patrick also writes a series of books on Unity.  I own his book series and have found it very usable.  I am also teaching an independent study for non-programmers.  The course is a dual-credit with the University of Montana and is intended for students with little to no programming experience and who may be looking at going into education.  Again the course is based around a series of videos or on-line tutorials.

I have used videos before (what teacher has not) but never to this extent.  I am learning some things.  First, no matter how focused or entertaining, programming videos are great for curing insomnia.  After about 15 minutes of listening and following directions, I am ready for a good nap.  The kids are good for about 15 minutes then they lose all focus.  Is it the video format or just the tutorial format that is the culprit?  I have to say videos are worse than text.  When using a book or text format I have a tendency to try things to see what happens.  I tinker.  I tell the kids to tinker.  If it blows up it is easy to go back a page or two and start over.  Videos just do not seem to give that feeling of flexibility or experimentation.  Going back in a video to find where you deviated is just not as easy as it is in a text document.

Second, it is hard to decide how far the kids should be at a certain time.  If the student misses a step in the tutorial process it could take them a while to figure out what went wrong.  Some students are interested in the material and enjoy building the project in the video.  Others are not as motivated and have a tendency to lose focus and wander into YouTube.  I cannot get too excited at students that do this because I do the same thing.  With Unity there is also the occasional technical issue.  Fummph, and something weird happens.  Start over from the last save.  (If they saved.)  Now that student is doing catch-up.

Third, and perhaps the most important to me, videos make really poor reference materials.  It is simply not practical to “thumb through” a video to refresh on something you have forgotten.  Last year I had an independent study student transcribe a Unity video tutorial to text.  He typed out the voice instruction and edited it so it made sense in text format.  He did screen shots of the video and of the Unity screen to use as graphics in his text document.  This translation took a lot of time but the result was great.  The text document is much more useful than the video. I also like something in an editable format (paper or digital) so I can add comments.

So now some of the “solutions” I have come up with to help alleviate some of the problems.

First, do not be a taskmaster.  The kids cannot sit there for 50 minutes (in my case 90 minutes) and watch these things.  It is simply not possible for the normal human being.  Let them wander every now and then to break up the monotony.  Have a game day every now and then.  If your schedule is so tight that there is no room for some days away from the videos then you have a problem.  Loosen up and let the kids have some fun.  Remember, this is a game making course so there should be time for some games.  I also deviate from Unity every now and then.  Alfred Thompson had a post on the FizzBuzz problem.  We took a day off from Unity and discussed this problem.  No programming language, just an algorithmic approach.  If the kids know a programming language have them refresh their memory by actually coding the problem.  I could not do this because I have one student who is pretty light in the language area.

Second, set some goals.  “By this date you should be able to do this with your character.”  Be flexible because it is computers and kids, weird things happen.  Since I only have four students they are all working in my smallish office.  I can see where they are and listen to what they are doing.  If I was in a bigger lab I would be sure to wander a lot, look over shoulders and keep a close eye on progress, taking a break from videos for a while, and totally gone into Never-never Land.

Third, reference materials.  I do have some print Unity books and the translated video available but the best reference I have by far is the students themselves.  I have four students in the class.  If one of them cannot get something to work at least one of the others can see the problem.  Collaboration is king.

Fourth, dual monitors.  The kids must have a dual monitor setup, one for the video and one for the software.  I have done videos in a lab.  I made sure there were enough computers so each student had two computers.  Without dual monitors progress is massively slow.

The biggest thing I am learning from this video learning/teaching experience, in this particular instance, is that using a lot of videos or a video curriculum is a pain in the rear.  This is not a labor saving invention.  You cannot just say “here, watch these” and walk away and expect good results.  Sometimes the video skips over something without enough detail.  There is very little “why” particular steps are done.  Overcoming the “bored to the point of brain dead” requires extra resources and planning.

Inexperienced programming teacher should not use a video curriculum like this.  There are just too many unexpected consequences.  Videos are a great tool but they will not do the trick as the only tool.  A good amount of experience is needed to make them a really usable tool.

I will continue to use videos to learn and teach, after all, there are just too many good ones out there, but trying to build a whole course around them is not the way to go.

New semester, new course.

January 13, 2018

Thursday was the end of the semester.  Nobody failed.  Close but they made it.

So far I have three students signed up for the new CSCI 100 course spring semester.  Thank goodness.  I have been spending a lot of time building and testing the course.  I would have been majorly bummed if I had done all that work for nothing.  The course is tailored for students interested in going into education.  I figure if the university will not promote CS for education majors I might as well do it.  This is a dual-credit course so the kids will get college credit for it.  Courses for future teachers need to be broad, both in languages and concepts.  In Montana a new teacher rarely has a well-defined CS program to step into if they are hired to teach a CS course, so they have to know how to find course material and be able to learn a language/IDE quickly.  Depth is not critical for a beginning teacher, especially when the time involved to acquire depth is not justified by the hiring opportunities, that will come with time.  Being able to build something, possibly from scratch, is what I consider the primary skill for a new CS teacher.  The CSCI 100 course is intended to be a show-and-tell, here are a number of ideas that can be used to build courses.  The students that have signed up for the course have little to no CS or programming experience so the material is very basic.  These are not students who are interested in teaching upper level CS (at least not at the moment) but hopefully they will get enough out of this course to be able to do an introductory course and have enough background to get a CS program started in a school.  It will also hopefully give them enough to help in a school with a developed CS program.  There is the little detail of getting certified for CS in Montana.  The only way is with business degree or a CS degree.  (Business degree?  I am still stumped by that one.)  This is at least a step for these kids.  They can put “Computer programming course” on their resume.

It has been so long since I have taught non-computer geek students that this might be a bit of a challenge.  I know the rate at which geeks learn programming but total rookies, especially non-techie rookies, will be interesting.  I have planned due dates for assignments but to tell the truth I am just not sure how realistic those are.  The three students, all girls, are bright but I am not sure about their enthusiasm.  I will have to decide how strict I am going to be on those due dates.  Since these girls will be working without a lecture period (this is sort of an independent study since the period they are signed up for is the same period I teach Algebra 2 to three math underachievers) I will have to keep a sharp eye on how they are or are not struggling.  There is also the factor of teaching girls CS.  Women learn differently than men.  (This is a statement made with thirty years of teaching behind it.  There is undoubtedly research out there proving and dis-proving this statement.)  I have not taught mainstream girls in many years.  I have had a female student for the last three years (she is a junior now) but she is an uber-geek with an IQ that is just scary and is probably going to major in a computer field.  I just stay out of her way.  I am not worried about teaching these girls, it is just something I need to pay attention to in regards to my teaching style.  I am teaching two sophomore computer geek boys CS at the moment.  I do not think how I deal with those boys will work with three senior girls.  Chuckle.

This course is taking me well out of my comfort zone.  Non-techie girls in a course I have not tested on students.  It is going to be fun.

Beginning with App Inventor

December 18, 2017

In the process of writing the curriculum for the CSCI 100 course I have to learn a few odds and ends.  One new to me odd thing is App Inventor.  I had looked at App Inventor previously but not to the point where I could teach it.  I worked through the App Inventor site tutorials (Beginner, PaintPot and Mole Mash).  Pretty easy.  I figured I better find something a bit more challenging.  Nothing super fancy but enough to explain a bit more about the IDE and programming techniques.  Google to the rescue.  I found one PDF tutorial that had excellent graphics and readable text.  After spending 10 minutes of confusion I discovered that there is a big difference from App Inventor v1 and v2.  Using a v1 tutorial when coding with v2 is not a good thing.  After a few minutes of digging through YouTube I found David Wolber’s eight part series “Code “Pong” with App Inventor II”.  The tutorials are straightforward and I would categorize them as excellent.  I have learned one really important thing from working in App Inventor.  This will not be a revelation to those that work in drag and drop regularly.  That important thing is have a really big monitor.  DnD blocks take up room.  Yes, they do collapse but then they have to be expanded to see what is in there when you forget 5 minutes later.  Doing App Inventor on a 13-inch laptop would require young eyes.  I have a 29-inch monitor.  I am good.

DnD is a bit of a shift.  I think it is slower than text programming.  You have a lot of mouse work which is slower than typing (even my typing).  Also the overall setup is just so different.  Creating variables, building If statements and the general flow of the code is very different.  Not bad, it just takes a shift in the way to read code.

Would I want to produce a professional level app in App Inventor?  Nope but then that is not its intent.  Is it a good way to learn and have some fun writing simple apps?  For sure.

I now need to write something semi-original (no YouTube) to truly test how hard it is to chase down coding issues.

Don’t need no silly CS degree or background

December 13, 2017

Someone just sent me the link to Pythonroom.com, an online curriculum for Python.  The claim by Pythonroom is “Pythonroom lets anyone teach computer science.”  You mean I spent all those years learning pedagogy, multiple languages, hardware, software, binary numbers, programming logic and so on for nothing?  Shucks.

Building a new CS dual-credit course

December 11, 2017

I offer dual-credit courses for juniors and seniors.  These are fully accredited courses from University of Montana that I teach on my high school campus.  The kids are fully registered UM students and will receive a UM transcript.  The kids get the grade on their transcript that they get in my course.  No big final like an AP course.  It is a nice setup for them and me.  My course simply has to fit the broad requirements of the UM course.  I do not have to use the UM book or follow the exact UM course plan.  At the moment we offer four dual credit courses: Pre-calc, Stats, CSCI 100 (general credit) and CSCI 135 (CS credit).  The CSCI 100 used to be an intro to Python course with the CSCI 135 being a hard-core Java course.  The university just revamped these two courses.  The CSCI 100 is now a programming survey course, seven “languages” in the semester, and the CSCI 135 is a Python course.  Changing the CSCI 135 was not a big deal for me.  I just renumber my CSCI 100 course to CSCI 135.  My old CSCI 100 Python course was a year long so I did more than the university’s old CSCI 100 by a long shot.  My course now matches their new CSCI 135.  Sweet.  The university’s new CSCI 100 on the other hand will be a completely new course.  I talked to the CSCI 100 instructor (a friend of mine) who rebuilt and teaches the course.  His course consists of these seven topics:

  1. Code.org – fundamentals of DnD programming
  2. Scratch – simple coding in DnD
  3. Studio Code – mobile apps
  4. Alice – stories and interactive animations
  5. HTML – a basic web site
  6. Processing – visual programming
  7. Python

He also sent me his assignments for the semester.  After a quick look I decided his material would be perfect for the seniors looking at an education degree and have no programming experience.  Not so perfect for those of my students who have taken any programming from me or looking at going into CS.  A bit too basic.  I like the concept of the course, hitting a number of topics lightly so students have a starting point at building a tool set for programming.  I just have to redesign the course so it fits my knowledge set.  I do not know any HTML (something I should fix some day), Code.org is a bit too simple, most of my students will have seen Scratch, I am not sure what Studio Code is and I have a better idea for Processing.  OK, so I need to rewrite 90% of his course.  Not a problem, I have ideas for substitutes.

Here is my altered CSCI 100 that suits my skill set and hardware availability:

  1. Code.org – just so the students can see Code.org
  2. App Inventor – build an Android app
  3. Micro:bit – make music with DnD
  4. Alice – build a scene from Shakespeare
  5. Small Basic – intro to a simple line code language
  6. Arduino – line code and hardware (Processing is the IDE Arduino uses)
  7. Python – back to micro:bit along with some pure coding projects

Nothing earth shaking there.  I think I am hitting all the bases for a good cross section of programming tools and still providing enough rigor to justify 3 college level credits.  I have eighteen weeks to cover this material.  With some heavy math and some head scratching logic here is my time schedule:

(We have block periods so classes are 90 minutes every other day.)

  1. Course set up and Code.org – 1 week
  2. App Inventor – 2 weeks
  3. Micro:bit – 2 weeks
  4. Alice – 2 weeks
  5. Small Basic – 2 weeks
  6. Arduino – 2 weeks
  7. Python – 4 weeks

That gives me 3 weeks of slack in there.  This seems like a lot of time but I know from experience that spring semester is pure hell on the seniors.  Sports, senior projects, college visits, extended spring breaks and general weird events really cut into the spring semester.  If I see extra time looming there are several other topics I can pull up in a hurry; Unity, Code Combat, or just flesh out some of the previous topics that were of special interest.

My biggest issue will be to have good assignments ready to go.  Some, maybe all, of the seniors will be doing this course independent study or with minimum supervision.  I have to have things laid out for them in a manner that will minimize confusion.  In a classroom setting confusion is minimized on the fly, no so with independent study.  So for this first offering I am being very select as to who I allow take the course.  I need the students that can think for themselves, not get hung up when something does not work out perfectly and give helpful feedback.  I have already eliminated one prospective student.  She asked if the course was going to be hard because she did not want any hard courses her senior year.  Good luck in college.

I really hope I can get five or six students to sign up for the course.  I think it will be a fun experience for them and for me.

How PD should be done.

November 28, 2017

“The best PD is when you get a bunch of teachers together (with at least a few strong in content and experience) and just let them talk shop.”

Mike Zamansky – http://cestlaz.github.io/posts/election-day-pd-2017/


The weekend before Thanksgiving was spent in a room with about twenty experienced and neophyte programming teachers.  There were a couple of high-speed college CS professors present.  There was also a teacher from a local junior college who used to work for NASA doing photo interpretation of the Mars Rover pictures using Python to do color filtering.  Really high-speed.  These two days were by far the best professional development days I have ever had.  The experience talked about experiences, the neophytes asked questions on “how do I …”.  We compared notes.  We talked CS philosophy, pedagogy, apps, hardware, PD training needs, and what we needed to do in order to solve the problems of the world.

Absolutely the best CS PD and learning experience.