Skip to main content

C'est la Z

Tag: pedagogy

Fibonacci by the tail

We’re ramping up for recursion in my junior classes - state space search, nlg(n) sorts, etc. As a refresher, we took a quick look at the Fibonacci numbers. Now, some people seem to think that it’s a tired problem. It’s mathy, it’s played out, it’s boring etc.. They just might be missing the point. The beauty isn’t in the problem itself, but rather, that it’s a platform on which you can look at many problem solving techniques.
# COMMENTS

Rot13 - Gateway <s>Drugs</s> Techniques

I’ve written before about That One Inspirational Curriculum - the idea that it’s not the topic in the syllabus but rather what the teacher does with it. Some times a simple problem can lead to some really neat concepts. Take what we did in my AP classes over the past couple of days. I wanted a nice little warm up after the break so we wrote a simple rotation cipher. We started with a little encode routine - take a string and rotate the letters by some offset.
# COMMENTS

Bucket Sorting

In spite of the Java based annoyances I mentioned last time, I decided to go ahead and do Radix sort with my AP students. I usually don’t cover it in AP Computer Science, but I like getting the kids to think about using arrays as buckets as it’s a new way of thinking for them and it does give a non-trivial application that combines ararys and ArrayLists. It’s a nice little algorithm.
# COMMENTS

Teaching Languages

Java’s never been my favorite language either for using or for teaching. As a programmer, after starting with languages like Fortran and Pascal, I really cut my teeth with C. More recently, Python has been my go to language to get real work done. From a teaching point of view most languages have good points and bad ones. When the AP class went from Pascal to C++ I lamented losing the simplicity and the low cost of entry.
# COMMENTS

Build it first

The subtitle of this post is: and why my students are going to hate me tomorrow. When my good friend Gerry Seidman talks to my classes, he frequently says “never use a data structure or algorithm you couldn’t build yourself.” This doesn’t mean that you have to write everything from scratch, just that you should have some knowledge as to what’s going on under the hood. I find that all too often young programmers just rely on APIs and libraries and really don’t know how their computers and programs are working.
# COMMENTS

Stuyablo II

Last week in my AP classes, we were working on inheritance. So, what to do? Last time around I had my classes work on a “speed dating” program - StuyDater. Back then JonAlf had his classes work on Stuyablo, that classic dungeon crawl. I still plan on reworking the StuyDater project, but first I decided to do my take on Stuyablo. Of course, we’ve improved on it. This time it’s Stuyablo II.
# COMMENTS

Databases - the next day

Two days ago I asked the students, in small groups, to come up with a design to store a school (or school district) database. Yesterday we discussed the designs. All the students took our brand of AP Computer Science last year - a superset of the old AB curriculum and in that class they implemented a number of data structures such as binary search trees and hash tables, but they really didn’t have an opportunity to design something more comprehensive.
# COMMENTS

Databases - putting it all together

So, we’re into the second year of my Software Development class. It’s a little different since last time, I taught many of the kids in AP. This time, they’re mostly new to me. In AP, everything is low level. The students build linked lists, binary search trees, heaps, hash tables, graphs and the like. It’s all about building the data structure. The Node, if you would. We’re about to start talking about databases.
# COMMENTS

Real Data - Part II

About a month ago, I talked about using real data with our intro classes. After looking at the correlation between school’s SAT scores and free and reduced lunch rates, it was time to turn the students loose. The assignment: Find some interesting data out and do something with it. Make a web page that shows what you did and what you discoverde. We had already looked at the NYC Data Mine as well as a few other sources but students were encouraged to find new data sourcess.
# COMMENTS

Madlib Madness

Earlier in the term, our intro classes spent a little time learning some basic HTML. We don’t spend a lot of time on it, just enough so that the students can present their work in a static web site. The end goal, though, was to programatically generate the web sites - there’s nothing quite as empowering to a student as when they can present their work to the world. Finally, it’s all coming together.
# COMMENTS