Number Systems

Binary and hexadecimal today in AP CSP:



When I was in elementary school, I was fascinated with number systems. I know I read about some different number systems used by different cultures through history in a book of number history my parents had, and was also inspired by some discussion of binary / ternary / base-4 in The Math Curse. I asked my mom to explain them, and she did.

Somehow (I forget the source, if it was a news article or an “interesting fact” in some book), I got really into the Inupiaq number system, both the symbols and the base-20 place value system for writing them. I remember writing the date in the upper right-hand corners of my papers using Inupiaq numerals each day in Mrs. McCarthy’s 4th grade class (or was it 6th grade? — she was my teacher both those years).

Always lots of fun teaching number systems! One of my favorite topics. 🙂

#day16 #apcsp #teach180 #180blog


Leave a comment

Filed under computer science, math, teaching

Planning In Code

One of the skills I work with students on in many of my classes is how to plan to code, in a helpful and efficient way. This is true certainly in my computer science classes but also in my Principles of Engineering (POE) and Computer Integrated Manufacturing (CIM) classes as well. Pseudocode, flow charts, process flow diagrams, are all structures and formats I have used before with students, with varying degrees of success.

This year, with Advanced Placement Computer Science A (AP CSA), I definitely plan to use several of the UML diagram formats with Java coding. Certainly class diagrams (like this one I posted last week) fit very well with an object-oriented language like Java. The course I took this summer on the Software Development Process, and especially our group project there, helped me understand several of the UML formats in a deeper way; I can definitely see myself using the Use Case and perhaps Sequence diagrams as well.

Anyway, today I worked with my AP CSA students to develop a few less-formal diagrams on the board: We did some mind mapping together as we brainstormed attributes or variables with values that would apply to weather (for a weather app):


And then we did the beginning of a decision tree:


My engineering students are using a planning table on paper to plan out their G&M-codes they will use to control the CNC milling machine to carve out their initials.

And my AP CS Principles students haven’t gotten deep enough into code yet to use a planning template. We have done some coding using Python as a calculator and to draw pictures (turtle library), and to play interactively against the “intelligent paper”. But most of our time so far has been discussing computing innovations, their impact on society, and working on a research presentation.

After school today, I had students stay for CyberPatriot practice, and it was also the first day of Interactive Mural Lab, led by some folks from MICA, which will help coach some students to creative a computer-programmed, electronics-infused, creative mural on a wall of our school! I’m super-excited to watch their progress over the course of this year, both to see how the mural turns out, and to see what skills and techniques students will learn as a part of this project.

Phew – I’m exhausted just writing about all that! 🙂  Have a good evening.

#day15 #180blog #teach180

Leave a comment

Filed under computer science, teaching

Team meetings

One of the things we’ve tried to do over the years is to meet as an engineering department once a week, every Friday. There are so many things to discuss and work on, from field trips, to after-school clubs, to purchasing equipment & materials, to recruiting students into the pathway. Some years that has not been possible, if we don’t have the same planning period, so we would just grab a few minutes here and there (perhaps after the school day was over). Other years we kept it less formal, since my colleagues and I would constantly be having meetings and working together every day.

This year, we brought back the tradition, stronger than ever:


Five of us, from engineering, computer science, and entrepreneurship, on the Academy of Engineering and Technology (AOET) team. Go team!

Another thing that has kept us strong over the years is support from teachers at other schools (unlike a math department, nine-strong at a school the size of Patterson, most engineering schools only have 1-2 engineering teachers at each school) and from industry and higher education. We meet once a month with our Program Advisory Committee (PAC), which supports and advises the seven Baltimore City high schools with PLTW Engineering programs. We had our first PAC meeting of the new school year yesterday (Monday) afternoon at OpenWorks. This year, one of our main foci is going to be pipeline development, including strengthening connections with middle schools and with colleges/universities.

Later this week, on Thursday, Code in the Schools will host our first monthly Professional Learning Community (PLC) meeting with Baltimore City computer science teachers.

[Days 9-10 #180blog]

Leave a comment

Filed under computer science, engineering

Emotional Day

Lots went on today.

A new-teacher colleague with mixed emotions after finding out a student she called home to report misbehavior was homeless.

Students so excited to research careers related to computer science that I had to drag them on to the next activity.

A fight in the cafeteria during lunch time.

A fire drill after lunch.

Our principal coming on over the public address system to say (as transcribed by another teacher, who posted the below message on facebook):

“I need this message to be translated in every language we have in this building.

We all have to be here, and we have to be here together, so we might as well love each other. There is enough violence in your lives at home, and where you come from. We do NOT need that violence here at school.

We are all here together as one family. Every staff person here, every teacher here, loves you. We all want you to have a chance at life.

With that being said, everybody take a deep breath.” He paused. So he could breathe. So we could all breathe.

“Everybody take a second to think about somebody they love.” Again, he paused.

“Now let’s send that love everywhere, to everyone.”

After school, ten students stayed for coach class / tutoring help, a possible record for me for after school coach class (though not for after school clubs, nor for lunch coach class).

Day 8, over and out.


Leave a comment

Filed under teaching

Calendar Filling Up

[Year 12, Day 7 #180blog post]

I use Google Calendar to track my schedule, including meetings, deadlines, clubs, field trips, trainings, etc.

Most years, I also use a paper copy of a blank calendar, for one of several purposes:

  • Plotting out weeks of lessons and units for each class
  • A visual record of our engineering/CS team’s hard work (how much we do)

Today also I shared a PHS Cyber google calendar with our cybersecurity club (a subset of our coding club).

Here’s a look at my next month:


Due to factors discussed in my last post, plus thoughts running through my head last night that delayed sleep, I was not early enough to school this morning to prepare an online, nor a typed quiz for my first period class today. So I went old-school on them, and wrote the questions on the chalkboard!


Performed bad and good pecha kuchas today for my CS Principles class (lesson), then started the students off on research toward making their own!

CIM students worked on writing programs for their CNC initials using G/M codes.

Met with one precalculus student today to review incorrect answers on her diagnostic test, and gave a quiz to my other precalculus student, which she aced!

Had our coding club kickoff meeting today, with pizza, apps, and cybersecurity competition planning.

Then saw these beautiful views of the sunset on my way home:




Leave a comment

Filed under teaching


[Year 12, Days 4-6 #180blog post]

I procrastinate. I leave things until the last minute.

Last Friday, Day 4, was a particularly bad day in that regard. I got to school at 8:30, only 5 minutes before the required time and only 15 minutes before students begin first period. I basically winged period 1 (AP CSA), guiding students step-by-step through planning out an object-oriented Java class and then beginning to code it on my screen while they worked on theirs:


UML-style class diagram for theoretical eBook class, brainstormed by students

Second period, my planning period, I had a visit from an industry partner dropping off a donated printer, met with my department/team, and barely had time to write a quiz for my 3rd period AP CSP class before it began. Then I was completely unprepared for 4th period CIM, writing a warm-up activity on the board (usually I type and put on the daily agenda or a PowerPoint), and printing out worksheets the students needed during class instead of having them in advance. I only got by based on the fact that this is the 11th year in a row I’ve taught CIM (Computer Integrated Manufacturing), so I could teach it in my sleep – figuratively 🙂 I had the students sketch their initials and plot the coordinates, that this week we are using to turn into G&M code to eventually be milled out on the CNC machine. I do think the CIM students could tell it was an off-day and I was unprepared, but it still went OK. And then last period I covered another teacher’s class, so no time to catch up then either.

Now I can blame some of this on scheduling: this year I am teaching 3.5 preps [the 0.5 is Precalculus, since I am advising some students on an independent study, it doesn’t take up as much time & effort as if I were teaching them as a full separate class, but it does still take some time/work]. Baltimore City’s teacher contract says teachers should not teach more than two preps (i.e. two different subjects for which to prepare lessons) except in usual/extreme circumstances. I’ve agreed to 3 each of the last two years so that we can grow our computer science program (while still maintaining our engineering program and helping it thrive). But that does mean less time to fully plan for each of my 3.5 classes.

But I also have to blame myself. I agreed to those 3 preps. And I agreed to teach/advise the two students precalculus because if I didn’t we might not have had any precalculus at my school this year (senior students are scheduled for College Readiness Math if they do not pass the Algebra II PARCC exam). And I don’t plan far enough ahead (e.g. plan the whole next week’s worth of lessons over the weekend). I do some of this because I can: I am capable of looking at the big picture, scheduling out weekly topics and units, and widening/narrowing focus based on my knowledge of the curriculum and the students’ needs. And I use the 3 preps as an excuse, plus that I spend 10-11 hours each day at work, so I don’t want to take work home. But I often feel I would be a better teacher if I did plan more ahead.

I’ve procrastinated throughout my life, including pulling all-nighters before science fair projects were due in high school and before essays were due in college. It continues to this day: this Saturday I logged on to check on a project for my Artificial Intelligence course (at Georgia Tech) that was due Sunday and that we’d had two weeks to work on. I saw the deadline was pushed back a week due to Hurricane Irma, and I promptly logged back off and did zero work on that the rest of the weekend. I’ll be moving on to that AI project now tonight, once I’m done with this blog post. 😛

By the way, Tim Urban a great series of blog posts on procrastination, starting here, and also a TED talk. He gets inside the mindset of procrastinators and why it can sometimes be a dangerous spiral.

Monday (Day 5) was a little better, though still felt rushed. The main difference was I had a little more time to myself during second period (planning). I make a goal to provide grade printouts to my students each week on Monday, so they can track their progress and remediate sooner rather than later if needed, and I only met that goal for 1/3 classes. But I was able to prepare the lessons with a little more time to spare.

Today (Day 6) was a lot better; got the rest of the grading done, lessons were prepared and ready, all went well. Seven students again for tutoring / coach class after school today as well.

But while some days go better than others, and some days are more well-planned than others (which often though not always correlates), it is a constant struggle with procrastination. I am juggling too many things (3.5 preps, plus growing two programs, plus working with two new teachers at my school, plus collaborating with engineering and CS teachers across the city, plus my Georgia Tech masters coursework, plus Coding Club, plus Cyber Club, plus MESA club, plus coordinating with a variety of industry and higher education partners, plus applying for grants to help fund our programs, plus working as treasurer for our Baltimore City Engineering Alliance nonprofit charity organization, plus …). At the same time, I like juggling all that to some degree. As the other extreme, I don’t think I’d ever want to teach only one prep, three-four times a day: I would get bored! I like learning and teaching new things! So it may be somewhat personality-driven, but the overload does encourage procrastination, and I do often wonder, if I had fewer things to focus on, I could do each of them better.

Anyway, here I am, having procrastinated writing days 4 and 5 blog posts and trying to get away with rolling three days into one (and rambling on, at that, too…). And I’m using my blog post as a way to procrastinate my Artificial Intelligence work even more too! So let me wrap that up, and get on to that (unless something else comes up!).



Filed under teaching

Day 3

Today was a fun day in every class!

AP CSA – Students had turned in a simple Java class (program) yesterday with five print-line commands, in which they print out the traditional “Hello, World!” statement, then their name, then 2 truths and 1 lie about themselves. Today they stood up at the front of the room, read their 2 truths and 1 lie, and we had to guess which was the lie. 🙂 A fun get-to-know-each-other type of activity based on the new programming language we’re using. [Thanks to Jerry, our master teacher this summer at training, for sharing this idea/activity!]

AP CSP – We did the “intelligent paper” activity from the CS Matters in Maryland curriculum, in which I make extravagant claims about a piece of paper being more intelligent than any of the humans in the room, because it will never lose a game of noughts and crosses. We get to discuss algorithms and artificial intelligence, and what intelligence even means!

CIM – As a team-building exercise that also connects to manufacturing, students work together in an assembly line fashion to mass-produce origami balloons. Here are a few of them in action:


After school – Seven students showed up for after-school tutoring / coach class! On the third day of school!! I think that’s a record in my time teaching. Maybe I make the class too difficult… or maybe I’m just an awesome teacher who inspires his students to really care about learning… (the truth is probably somewhere between those two extremes). This is the first year I assigned summer homework, for both of the two AP compsci classes, and I’m giving students a couple days/weeks to make sure they are caught up with the summer homework, while also basing the first few weeks’ quizzes on those topics, so that probably has something to do with it.


I got home and cooked a good meal for supper, so all in all, a great day!

1 Comment

Filed under computer science, engineering, teaching