CS for All?

There was an interview last month with the governor of Rhode Island, Gina Raimondo, posted at http://freakonomics.com/podcast/modern-democrat-win/. The governor sounds like an eminently reasonable person (to my political sensibilities), and at one point in the conversation, to subject of Computer Science came up.

From the posted transcript:

DUBNER (Interviewer):
In terms of preparing the populace for the labor scenario that’s coming down the road, I know you’ve been pushing to have every student in Rhode Island take computer-programming classes. Is that a thing already?

RAIMONDO: It’s happening now. We set a goal, I think a year or so ago, that by the end of this year we would be teaching computer science in every district and every grade, starting in kindergarten. And we’re going to hit that goal this year.

DUBNER:
So, I hear about this kind of thinking a lot, and I certainly understand the appeal and the resonance. But I do also wonder if there’s a proven upside of having everyone learn computer science or programming. It strikes me a little bit like the equivalent of having every student in America during the boom of the internal combustion engine learn to take apart a carburetor. And then I think, if you look at the history of economics and progress, that one of the main strengths of economic progress is the division of labor and specialization, rather than everybody chasing after the latest trends. So I’m curious what the evidence was that inspired that move of yours.

RAIMONDO:
I think of it as access and exposure, and also just providing people with a basic level of essential skills. So, everyone has to take math. They may become a writer, they may become an actor, but they ought to have a certain basic level of math skills. First of all, because it’s an essential skill to function. And by the way, they might like math. I think digital skills are the same thing. No matter what job you have, you have to have some basic familiarity with computer skills and digital skills. And so it is as essential in this economy as any other skill that we teach. But also, we know — and there’s loads of data on this girls, people of color, and low-income folks are less likely to go into I.T. fields, which tend to be higher-paying. However, if they’re exposed to some computer training, they’re much more likely to go into the field and do well at it.

“Access and exposure.” That about sums it up. Without even weighing in on the question of whether or not students should be required to take computer science, how do we go about providing them with “access and exposure” to this subject?

There’s some degree of irony in all of this given that most of us who are computer scientists now never had anything close to the degree of “access and exposure” students have available to them now. My “first computer” was a teletype with a modem link to a PDP-11 at the local hospital, and we were lucky to have it. (Cue the obligatory reference to Monty Python’s “Four Yorkshiremen” sketch, at https://youtu.be/26ZDB9h7BLY.) Today, students have access to smartphones, inexpensive laptops, even Raspberry Pis, and more YouTube tutorials that you could hope to watch explaining how to program, how to develop, how to download…

It seems to me that students do have access, but the exposure is what’s missing at this point.

And that’s where CS teachers can be most valuable.

For those of you who teach at the high school level, does your school require a Computer Science class for graduation? What do you think of the idea of requiring Computer Science for graduation–yea or nay?

I’m B-A-C-K!

It’s been a very long time (208 days according to my to-do list) since I’ve had the chance to post anything here.

Let me tell you about it.

There have been two unrelated changes that got in the way of me posting anything new on here for the past seven months or so. One is the fact that I changed hosts over the summer. I’d had a good run with JaguarPC.com, but the time had come to switch to a new host. I settled on DreamHost.com, and over the course of a week or two managed to get most of my websites transferred over to the Virtual Private Server there. This WordPress-based blog, however, requires a MySQL database, and although I’d done a good job of archiving everything from the old server, I had to do a bit of futzing around to get it all up and running on the new server. Not a lot of futzing, but a little, and it took me this long to get around to taking care of that.

Software. Am I right?”

The second reason I haven’t posted is that I’ve been going through the existential struggle associated with the “mission creep” of this site. The Hybrid Classroom blog was initiated when I was a Physics teacher using some amount of Internet-based technology in the classroom. My teaching role at my school has changed significantly over the past few years, and now I spend the majority of my time in Computer Science classes. I’m pleased with this transition—I’ve always enjoyed teaching computer science, and it brings with it a unique set of joys and challenges—but I find myself wanting to write less about Educational Technology and more about Technology Education. The name of this site no longer reflects my primary interests… and I guess I’m just going to have to be okay with that.

It did briefly occur to me that I could start the site up with a new name, but I’d have to get a new name, and transfer posts over, or just let them rot on this site, and none of that appealed to me. So we’re just going to go with Hybrid Classroom and let people be a little confused about that.

I haven’t been completely absent from the Internet during the time this blog has been languishing. I have lots of things to share with you; we have some catching up to do.

One other thing I’m doing is taking down many of the old sites that I used to link to. Most of those related to Educational Technology, and to be honest, I don’t regularly read most of those sites any more. I have a new set of blogs that I rely on for Computer Science Education inspirations.

Oh, and comments are on again! I’m looking forward to some great conversations with you.

Volunteering: YouTube comments as community service

Volunteering: YouTube comments as community service
===================================================

2017-07-14
———-

by Richard White
—————-

My school has a “Community Service” component to the graduation requirement for students. They must volunteer for a given number of hours in service to the community, and there are a variety of ways they can do this. Some opportunities are described by the school, but it’s certainly possible to develop your own community service opportunity and have that count towards your requirements.

Is it possible that commenting on YouTube might count towards Community Service?

I think of this possibility as I consider my own activity on my YouTube channel (https://www.youtube.com/rwhite5279), where I post videos occasionally, most of them related to computer science and computational thinking. I’ve built up a small following since I began posting 9 years ago: nearly 750,000 total views, and nearly 3000 subscribers as I write this. Increasingly, viewers of some of the computer science tutorials have begun leaving questions in the comments section.

This one, for example, on a tutorial on how to use object-oriented programming in Python to simulate a Magic-8 Ball toy that predicts the future (at https://www.youtube.com/watch?v=6drqLGdXHQA ) :

You can see the question there, followed by a response from me. Here’s another example, a question and response for the same Magic-8 Ball tutorial:

I have a number of friends, teachers or no, who volunteer time in their local community: serving food at the local soup kitchen, visiting people in nursing homes, tutoring students after school. I occasionally get the question “What are you doing on the computer there?” and sometimes find myself answering “I’m responding to a question someone left for me on YouTube.”

Isn’t this a form of Community Service? Isn’t this a form of Volunteering?

Another introduction to object-oriented programming (at https://www.youtube.com/watch?v=wYYzteRKU7U ) prompted this selection of comments (and accompanying responses):

I’m well aware of the fact that online comments—”where nobody knows you’re a dog”—can be challenging: to respond to, to clean up (in cases of misuse or spam), to moderate. Some “discussions” become downright toxic, to the extent that some communities with a broad appeal have had to shut down the comments sections on their sites: if the conversation can’t be civil, there’ll be no conversation at all. In those cases, that strategy is probably the only one that makes sense.

In my little corner of the Internet, however, things are just fine, for the moment anyway. There’s not much fun to be had trolling computer science tutorials, and maybe that has helped to keep things a little more in-focus and on-topic.

Now, if you’ll excuse me, I have to get back to answering more questions. There is volunteering to be done, and I’m just the guy to do it. :)

Battle for the Net

Battle for the Net
==================

by Richard White
—————-

2017-07-12
———-

This is the second time in the last few years that I’ve devoted some time and some of my website resources in the interest of maintaining internet neutrality.

If you already know what net neutrality is, you should go to battleforthenet.com and do something about it. Write a letter using their form, donate some money, and call your congressional representatives. These are all things that cost little in the way of time and/or money, and are vitally important to maintaining the way the Internet—and therefore your world—works.

If you’re not sure on the details, or maybe have only heard the term but nothing more, here it is, in a nutshell.

Access to the Internet isn’t (usually) free: most people I know pay an Internet Service Provider (ISP) like Charter, Spectrum, Comcast, etc. for home access to the Internet. You probably have a service plan that vaguely promises deliver your internet content and some minimum speed. But once you’re “on the Internet,” anything and everything goes. There are no restrictions on how you can travel the World Wide Web: you can go to Facebook, you can surf websites, you can buy plane tickets, you can watch Netflix, you can register for college classes, you can watch YouTube, you can (if you’re so inclined) visit porn sites.

The fact that your ability to navigate the Internet unencumbered and unregulated, regardless of what you use it for, is called “net neutrality.”

Wikipedia, quoting the New York Times, describes it this way:

Net neutrality is the principle that Internet service providers and governments regulating the Internet should treat all data on the Internet the same, not discriminating or charging differentially by user, content, website, platform, application, type of attached equipment, or mode of communication.

This view of the Internet is one that considers it as a utility, and therefore subject to some degree of regulation as such. The convention of net neutrality was affirmed by the Federal Communications Commission (FCC) during Obama’s administration.

Here’s a non-Internet example where regulation helps us. You telephone service (landline or cellular) delivers phone calls to your phone, regardless of who they come from. Nobody can pay for “better access” to your phone number. A business can’t pay for increased access to your phone number so that unsolicited phone calls are favored over personal calls. We have “phone neutrality.” There have been cases where phone companies have blocked access to certain types of phone calls, prompting FCC intervention.

The Internet-as-utility means that telecommunications companies delivering that service must obey anti-discrimination and anti-blocking rules. In the first months of his administration, however, President Trump appointed former Verizon attorney Ajit Pai as chairman of the FCC, with a vow to “reverse this overreach” of regulating net neutrality.

What happens if your Internet provider doesn’t have to follow net-neutrality rules? Selected businesses benefit (or suffer) as the provider decides how to charge for access, or how much to favor certain businesses over others.

This is currently the situation with your cable/satellite TV provider which sells you a subscription to their services. Access to their cable or signal is just the start, however. Access to ESPN costs more. Access to HBO costs more. Access to premium services costs… a premium. (This never-ending “up-sell” is in part responsible for the rise in “cable-cutters.”

Along those lines, then, here’s one likely scenario in the Brave New World of a non-neutral Internet, as imagined by an unknown author (image is making the rounds on Twitter):

If we get rid of net neutrality, will your Internet provider really interfere with your service? This isn’t a hypothetical question. In one case, Comcast was slowing access to certain types of content. In another, AT&T blocked users access to Apple’s FaceTime service so that only users with a certain type of plan could access the application. It is because of the protections currently afforded by net neutrality that these corporations have been prosecuted for these actions.

Clearly, the Internet needs the regulatory protection of the FCC.

The wonderful innovations that have been born and flourished on the neutral Internet have been able to do so, in large part, because of lack of restrictions on the Internet. It’s telling that Trump claims to be in favor of “American innovation, job creation and economic growth,” but only insofar as the large media corporations are concerned. Twitter, the president’s primary means of communication, was spawned on a neutral net, the very net he is bent on corrupting.

The battle for net neutrality is “huge.” Please join the fight.

Writing in Computer Science Classes

WRITING IN CS CLASSES
=====================

by Richard White
—————-

2017-06-06
———-

In the new *Advanced Topics in Computer Science* course that I developed this year, I had the opportunity to introduce a new type of Computer Science assignment (at least new to me): a written report.

I stole the idea of a written report in Computer Science from Michael Lew, an AP Computer Science A instructor whose summer institute I attended last year, and it solved a problem that I’d seen in my CS teaching: computer science students tend to enjoy coding, often to the exclusion of other important aspects of the subject. Coding is fun, of course: give my students a few challenging CodingBat problems and they’ll happily ignore me for hours.

Once problems become larger in scope, however, it becomes important to sandwich the coding in-between two other important aspects of any significant project:

  1. planning/design at the beginning, with consideration given to how the project is going to proceed, and
  2. a culminating conclusion to the assignment, possibly in the form of evaluation of the product (by the student or teacher), reflection on the process, a presentation of the project, etc.

Both of these aspects of a larger-scale project require time, either in class or at home, and that is certainly one of the challenges in implementation. In my own teaching, I feel like I’ve developed the ability to build in time for project-planning in the course calendar. The culminating experience, however, is something I’ve often been weak on.

This year, in the *Advanced Topics* class, we were studying the performance of various sorting algorithms, the simplest ones of which are all O(n2). After a brief introduction to SelectionSort, Bubblesort, and InsertionSort, students were semi-randomly assigned a sorting algorithm from among the MergeSort, ShellSort, and QuickSort.

The first challenge for students consisted of simply getting a working algorithm running. Depending on the level of the student and the difficulty of the algorithm, this might have been the easiest or the hardest part of the assignment.

The second challenge was doing determining the performance of the algorithm, both empirically (by collecting time data for data sets of different sizes), and possible analytically (by counting the number of statements the algorithm would execute under different conditions).

Finally there was the writing of the report itself, something that students who are good in math and computer science don’t ordinarily have the opportunity to try. In this particular assignment, I gave them a concrete example of my expectations by briefly showing them in class a report that I’d written myself for one of the algorithms. (I didn’t want them to copy the format too closely, so I didn’t make it available for study online.)

By the end of the assignment, there were a number of goals that had been accomplished:

  1. Students each had a solid understanding of at least one of the sorting algorithms assigned.
  2. Students had a strong understanding of how algorithm performance, expressed in Big-Oh notation, is related to an algorithm.
  3. Students had a concrete document demonstrating their understanding of this material, suitable for presentation or inclusion in a portfolio.
  4. Colleagues had a better appreciation for some of the work we’re doing in the course. This was an unintended consequence, but a welcome one: with students turning in this assignment in a more traditional format, my fellow teachers were able to see evidence of the work my students do.

I only offered this assignment in my most advanced course this year, but I’ll be expanding it to my other computer science courses next year. (Download a PDF version of the assignment.)

What traditional assignments do you find translate well to non-traditional courses? Do students appreciate being able to leverage their familiarity with the format of a traditional assignment, or do they find it annoying?

Implementing a Post-AP Computer Science Course

Implementing a Post-AP Computer Science Course

by Richard White

2017–06–06

This past semester I began teaching an “Advanced Topics in Computer Science” elective that I’d developed for my school. It’s an interesting class for a number of reasons.

  1. Although it was a new class for me, the topics covered in the course aren’t new to longtime high-school teachers who taught the College Board’s old AP Computer Science AB course back in the day. The “B” part of that course included discussions of some of the topics covered in this elective, including various types of more complex data structures and algorithm analysis. The “B” part of the course was discontinued in 2009 in an effort to “focus resources on efforts that will provide a much greater degree of support for AP Computer Science teachers than ever before.” [1] (Yes, I don’t quite follow the logic there either.)

  2. The class was offered as a “post-AP” course. In the context of my school, there are a wide number of students who are interested in learning some computer science, and who are more-than-happy to earn some AP credit for it. Most of them are not going on to study CS, however, so this class filled a need for those students. The impetus to develop the class came mostly from me, informed by some encouraging prodding from alumni.

  3. Although the standard AP Computer Science A course uses Java (currently), I wanted students in this elective to focus on the data structures themselves, without having to muck about with Java infrastructure. I elected to offer the course in Python, and this had a number of implications.

    1. For students who really were taking this after the AP CS course, they needed to learn Python, and fast. A year of Java had given them a solid grounding in object-oriented strategies, but the Python syntax and quirks like dynamic typing took some getting used to. The Advanced Topics class, then, began with a Python-based Boot Camp to bring everybody up to speed.

    2. There were a couple of students who chose to take this class after completing a single-semester Python class. This required a bit of a stretch on their part: although they were well-versed in Python syntax, they had been learning CS for a shorter period of time, and weren’t as well-grounded in object-oriented thinking. The Boot Camp strategy attempted to bring them up to speed, but was no substitute for the more extensive curriculum in the AP Computer Science A course.

  4. The class was initially developed as a way of returning to the curriculum that was originally offered by the College Board program, and can be viewed as supporting that model. I have since had a number of conversations with teachers and administrators who see this course as a potential model of what a rigorous class might look like as part of a non-AP program. That wasn’t my intention in creating this course–I actually appreciate the idea of a national-standard curriculum against which my students can gauge their mastery–but this course can certainly serve different needs, depending on context.

  5. As we worked our way through the curriculum, I tried to be sensitive to the experience of the students. Developing Python implementations of stacks, queues, trees, and graphs isn’t everybody’s idea of a good time, so I worked to include offshoot activities that built on the skills they were learning. This can be especially challenging the first time a course is offered (and I was teaching this class as an overload), so I expect next year is going to be a much more satisfying experience for the students. Abstract structures may be developed with visual representation, for example, bringing a more graphic appreciation of the structures.

I wasn’t too unhappy with how things worked out this first time through, but I’m looking forward to refining some aspects of the course and smoothing out some of the rough edges in anticipation of offering it again next year. In the meantime, you can see the webpage for the course at Advanced Topics in Computer Science.

I’ll be writing a bit more about this course in the next month or so. Stay tuned.

Three Lines of Code

Three Lines of Code

2017-04-29

by Richard White

Earlier this week I was walking through a school hallway when one of my students called out to me. “Mr. White! I’ve got a program that calculates primes in only three lines of code!”

I laughed, and asked him to bring it to me later in the day so that we could look at it.

“It’s just three lines!” he exulted, as if I might not have heard it the first time, “and one of those is a print statement!

Jack had taken an introductory Python course from me during the first semester of the school year, and from there had decided that he wanted to take the post-AP “Advanced Topics in Computer Science” course, a more abstract computer science curriculum that focuses on various types of data structures. Enrolling in this course requires my approval, and I had some initial concerns about how Jack might do in the course: He just had a few months of experience, and the curriculum would be a significant step up for him. While I didn’t want to set him up for failure, I didn’t want to dampen his enthusiasm for the subject either. In these situations, I try to err on the side of saying ‘yes.’

This semester Jack has had occasional struggles in the course, but so have most of the students, a fact that one could easily chalk that up to this being the first time I’ve taught the class. In any event, he’s making fine progress, and this prime-finder activity that he’d taken on for himself wasn’t the first time I’d seen him take something from outside the class and turn it into a piece of code.

Jack tracked me down again after school, laptop already open, ready to show his code. And sure enough, there it was, a tiny little Python program of just three lines. And it worked!

“What kind of algorithm is this?” I asked. It wasn’t the standard introductory comp sci treatment of primes I used in my teaching.

“This is ‘Wilson’s Theorem,'” he explained. “I learned about it on YouTube. It’s not very good for large prime numbers because it requires calculating factorials, but still… three lines of code!”

I thought about it for a moment.

“I bet we could get it down to one!”

“How?”

“Do you remember Python’s ‘list comprehension’ syntax? I bet we can use that to make this a one line program that calculates primes!”

And so we did.


Last login: Sat Apr 29 09:05:01 on ttys000
rwhite@MotteRouge$ python
Python 3.5.2 |Continuum Analytics, Inc.| (default, Jul 2 2016, 17:52:12)
[GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import math
>>> [x for x in range(2,1001) if (math.factorial(x-1) + 1) % x == 0]
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997]
>>>

Just about every teacher I know would have his or her own lesson to be learned from this anecdote. It could point to the need for more free time in school so that students can find their passion. It could be a call for more open access to teachers before and after school. It might be a testimony to more open access to advanced classes, or an encouragement to allow more students to take academic risks. A math teacher might read it as a need for us to teach more computer science in our math classes, and a computer science teacher might claim that this demonstrates the utility of Python as an educational programming language.

There’s some truth in all of those, I think. Every educator would like to find more ways to empower our students to find and follow the interests that inspire them. Some students find their passion more quickly or easily then others, but every parent knows the secret to helping kids flourish and grow: throw stuff at them and see what sticks. Comic books. T-ball. Educational television. Piano lessons. Board games. AYSO soccer. Summertime concerts. Bedtime reading. Camping trips. Scissors, tape, and construction paper. Play dates. Museum visits. An allowance and an introduction to budgeting. An electric guitar. A woodworking class. Batteries and wire. Dance lessons…

Give students time, space, exposure to new ideas, and the tools to build on those ideas, and they’ll find something that inspires them.

Differentiated Instruction, Part 2

DIFFERENTIATION, part 2

2017-03-11

by Richard White

I was recently asked by our IT director John Yen how I handle differentiated instruction in the classroom: what strategies do I employ to try to ensure that students of widely varying abilities and skill levels are all appropriately challenged in my courses?

It’s a question that public school teachers face all the time, and independent school teachers arguably somewhat less. Technology teachers at both types of institutions have the biggest challenge here, because:

  1. there isn’t (yet?) a standardized curriculum path that has been developed and accepted around computational thinking and computer science, and
  2. there is a large, and perhaps growing, “digital divide” between those students who have nearly unlimited access to technology and training (even informal training via YouTube videos and the internet) and those who don’t.

My reply to John’s question took a little while to narrow down to a response to his questions, but here are my remarks, lightly edited for clarity.

=====Beginning of Email=====

  • That’s one of the million-dollar questions right now: How do I bring students with widely-varying experience into the curriculum?
  • The 2-million dollar question is: What CS curriculum do we want to offer/require? This varies depending on the school population, the goal of the curriculum (CS for managers? Coding for vocation?), the instructors available, the budgeting, salaries…
  • The 3-million dollar question is: Who is going to teach this curriculum? At this point, that is going to have an overwhelming influence on the other questions. CS people don’t do much with game design, and Game Designers don’t know a lot about Linux, and software engineers may or may not know about networking or control systems…

In Computer Science courses, I’ve found that I often have to provide up to five different kinds of differentiation, given at different times according to the idealized schedule given here.

Steps in Assigning/Conducting a Computer Science activity or project

  1. I prepare the assignment, preferably on paper or online so I can check that the idea and the process are fully articulated. NOTE: When looking through some online references a few years ago I stumbled upon an assignment format used by professors at Michigan State University, and I’ve adopted it for many of my CS courses. An example is attached here.
  2. During the preparation of the assignment, I try to prepare 1-3 Extension activities that are more complex or require application of the project to a new context. This is the first differentiation that I’ll use with some of my more advanced students who would otherwise complete the assignment too quickly. On the assignment I also often include a section called “Questions for you to consider (not hand in)” which ask the students to think about other aspects of the subject that may not be directly related to the assignment. These can be a nice jumping-off point for a conversation with more advanced students.
  3. Also for the assignment, I prepare a few “Notes on Getting Started” that are included with the instructions. These notes include suggested work strategies and/or questions that might help clarify the direction their problem-solving process should take. This is the second differentiation.
  4. Deliver the assignment (paper or online) in class, with whatever introductory remarks are appropriate. Students begin working.
  5. After students have been working on the assignment for some length of time, I’ll usually check in with them to see how things are proceeding so far. If there’s a stumbling block in the assignment that I’m aware of, I may bring it up at that time, and ask them what they think about it. I’ll usually write some amount of code on the board here, developing ideas with those students who have become stuck. This is the third differentiation strategy. ( Example: This video (narrated) of me working with students in class: https://www.youtube.com/watch?v=ZJ3z51n1Ndo )

    If I notice that a number of students are having difficulties with a concept or problem, I may prepare a small video for them going over the issue in more detail. I’ll post the video and send the link to them so they can take another crack at it. This is the fourth differentiation strategy. ( Example: This video, covering the topic of website permissions for some students’ websites: https://www.youtube.com/watch?v=sEES_N3ZQHk )

  6. Ultimately some students will need more individualized attention, sometimes down to the point of sitting down with them individually and picking through their code line by line. This is the most challenging and time-intensive differentiation strategy, and not something that I’m able to do with every student every time. Fortunately, if I’m doing my job well, I don’t need to do it very often.

=====End of Email=====

What strategies do you have for providing differentiated instruction for your students? What evidence do you have that those strategies are successful (or not?)

Is the Digital Divide something that needs to be addressed by CS teachers? If so, what steps do you take towards ameliorating that problem?

Presentation Mode

Presentation Mode
=================

2016-12-07

by Richard White

It’s Computer Science Education Week, and for the fourth year in a row I’ve conducted presentations at our Lower and Middle Schools for an Hour of Code with 5th and 7th graders.

I’ve got a bit more on my plate than usual this year, so I tried to minimize time spent emailing/calling/coordinating with various administrators, tech coordinators, and teachers. I work with a great group of people who helped make some of that happen—our Middle School Tech Coordinator was instrumental in navigating some of that, and my Upper School director committed early to giving me time off from my classes to go conduct those sessions. Also, our Lower School Technology Integration Specialist took on some of the heavy lifting for the first time this year, identifying activities that might be well-suited for the 5th graders.

I’d been a little smart about things too: the Hour of Code webpages that I’d set up previously were still live, and a handy reference for those who wishe it. The presentation materials that I’ve developed over the years were pretty much ready to go as well, with some minor modification and editing. I’ve been switching from PowerPoint to LibreOffice, and my software on the laptop was good to go.

Now, how about that hardware?

Every presenter has their list of hardware that they need to be sure to bring along to a presentation, particularly if you’re going to be away from your home base for the day/week. What to bring with?

  • Laptop
  • Camera/cellphone for documenting event
  • Charger and charger adapter
  • Logitech wireless presenter (R400)
  • Lightning port-to-HDMI cable (spare)
  • Lightning port-to-VGA dongle (backup)
  • USB key with presentation materials (backup)

I’d been to one of the rooms I would be presenting in, and knew that it was probably already stocked with the various power supplies and cables that I’d need, but you never know. Most of the items on that list there are simply backups or replacements for items that I expect will already be there.

img_9764

I got to the room, got things set up, checked out the projector to make sure it was working, double-checked the video that I’d be running in the presentation for sound… I was good to go!

I went to grab a marker to write my name on the whiteboard… no markers? Oh, there’s one. An old low-odor marker for which someone has left the cap off. I tried to write my name, and it left a half-visible mark on the board. I went to erase it and… no eraser.

Who has whiteboards with no working pens or erasers?

I scrambled around a bit and managed to scare some up just in time for the presentation.

It just goes to show you…

Looks like I have a couple of additional items for my hardware list. :)