My Story
Posted by jcasimir, Sun Apr 01 22:25:00 UTC 2007
This is my fourth year teaching and I feel like I'm finally getting it all figured out. I began with Teach for America in the summer of 2003 teaching math to third graders. I made a kid cry on the first day. Since then my students-crying-per-day average is pretty low.
My first year in TFA I worked at Garnet Patterson Middle School, a DC Public School in the U-Street district. When I started the place was, from a technology perspective, in shambles. They had one working "internet plug" and a computer lab where only 4 of the 26 machines would even boot. Those four were filled with adware and basically unusable. Within two weeks I had the lab refurbished to 100% functionality along with a complete network and domain based user control. By the end of the year I'd installed a wireless network in the building, setup networks in every classroom, and solicited a donation of 50 machines. This additional equipment led to a 15 machine mini-lab in the library and 1-3 machines in every classroom.
Academically, I was cursed and blessed to teach a 9 week (one quarter) class. Just as I would have all the names mastered, get to know the parents, and really hit stride it would be time for a new group of students. However, as a first year teacher it was an opportunity to live four years in one. Each quarter I used different management techniques and created a completely new curriculum. It was a rapid-development loop that I think really accelerated my development as a teacher.
Unfortunately 2003 was a budget-cutting year for DCPS and my principal decided that the elective classes, Computer Technology among them, would be the easiest to let go. My position was abolished and I found a new opportunity at César Chávez.
Starting at Chávez was a very different experience. My predecessor had done a very good job and I walked into a functional setup. My time at Chávez from a technology perspective was about expansion and enrichment. In the first year I revamped the behind-the-scenes repair processes to decrease turnaround time and machine reliability. I reorganized resources and the wireless network to decrease the work for teachers and make the systems more error-proof. I built a new website, by hand, for the school using my own design and photography.
Jeff and Ricardo collaborate on a lab
In my second year at Chávez we moved to a new building which brought a lot of challenges. We added a second laptop cart, greatly expanded the wired network, and were able to purchase new machines for the computer lab. We farmed the previous machines out to the library and offices around the building.
In the spring I was frustrated with the limitations of our budget and put together a fundraiser we called the Workshop for Good (http://workshopforgood.org). My friends Amy Hoy, Ezra Zygmuntowicz, and I instructed a two day workshop to adults from across the country interested in learning the Ruby on Rails web application platform. The workshop was featured on the O'Reilly Radar, Ruby on Rails Official Weblog, and other sites across the web. In the end we raised $10,000 for the students of Chávez.
This, my third year at Chávez, has been the opportunity to put that money to good use. I worked with other department chairs and a charitable foundation to purchase and install 7 projectors in classrooms in the building. I purchased and installed equipment to give the building complete wireless network coverage. I bought odds & ends to fix up equipment and put new boards and furniture in the Computer Lab. Most excitingly, though, we're using the rest of the funds this spring to purchase Lego Mindstorms NXT robotics kits for my students. We'll spend the fourth quarter building robots with Legos, then writing programs in Ruby that can control them. Which brings me to academics at Chávez...
In my first year I experimented. We spent the first quarter learning the basics of web design. It was a topic that fascinated me in high school and, no surprise, this audience was similarly engaged. In the second quarter we learned about computer hardware, what each component did, how they worked, and how to use binary numbers. During this quarter I decided that I wanted to teach Java in the spring and solicited donations from friends and family totaling $3000 - enough to purchase the class set of textbooks I wanted. In the spring we dug into Java and I found that teaching programming was really enjoyable. I decided that the next year we'd do programming the entire year.
We used the text Objects First with Java
So we did just that - begin programming soon after day one. I hoped to get students far enough to take the AP Computer
Science exam in the spring. We used the BlueJ framework to help us along the way.
My students worked hard and made steady progress, but it wasn't enough to get near the AP exam. As a CS teacher I try
my hardest to avoid telling students to "believe me - just type this." That's how my high school teacher did things, and
it was a waste of time. Meeting that standard, though, I spent a LOT of time explaining things. It felt like
we were always PREPARING to program and didn't spend enough time PROGRAMMING. I pointed the finger at Java. Just to start
a Java program you write "public static void main throws IOException" - a line loaded with concepts you wouldn't
cover until a sophomore year university class, but you have to just "believe it" and type that garbage to begin a program in
Java.
Once it was clear the AP goal was out of reach we put on the brakes. The students and I spent a day discussing what they wanted to do to finish the last quarter of the year. "We want to write cool programs" they said. Everyone hated Java. I decided to experiment with the Ruby programming language which I had just picked up the previous summer. It was like magic. There wasn't a bunch of cruft in the way - we could just write simple programs. In a few weeks students were able to write some decent programs. The end product was a better understanding then they had after three quarters of Java. I was convinced.
For my third year at Chávez I redefined the goals for my class: a) develop logical problem solving skills and b) inspire a love of Computer Science. Fueled by the Ruby language it has been a massive success. Students rave about the class. I love every single day. They've been writing programs since the first days of the class. The language enables our learning instead of getting in the way. We learn exactly what I think is important in the order it makes sense - we don't have to follow any outside structures. Students work largely on their own: I design a specification and they figure out how to implement it.
Rafael is a Ruby ninja
The results are striking. I sometimes feel like the numbers make my class look too easy, but in reality it is the commitment and hard work of the students that create results. In the first semester over 35% of my students had an A and only 7% failed. Those 7% were largely because of significant absences (>20 days in the semester), and that 35% were because they just work relentlessly - in class, in the mornings, in the afternoons, and frequently together on Saturdays. These students have made me extremely proud as a teacher.
If you've read this far, please consider checking out some of my sample lesson videos and student/peer commentaries.