Archive for August 17, 2006

Technology and Progressive Education

Catlin Gabel is a school with a strong sense of purpose and oft-renewed committment to a “progressive” educational mission. Our middle school head asked me the other day to consider what technology could do to support the school’s mission of progressive education. This is the kind of charge I enjoy being given, as a clear institutional mission and vision gives a tech department something to shoot for. Here are some initial thoughts on the question. I hope to continue to develop these ideas over time and implement new tools within the school.

What is progressive education? The father of progressive education, John Dewey, described an educational vision of “education through experience.” That is, children learn best by interacting with content and performing authentic tasks. Ruth Catlin emphasized the “child as the unit of consideration,” another way of saying that instruction should be tailored to each student. Mel Levine focuses on “learning profiles,” the unique set of cognitive strengths and weaknesses that each student possesses. These and other theorists contribute to a model for progressive education that is student-centered, activity-based, fully scaffolded, and authentic.

Today’s national educational environment is relatively hostile to progressive education. The “standards movement” emphasizes high-stakes testing, and President Bush has set the tone by implying that testing along will directly improve student achievement. Missing from the conversation is serious consideration of alternative assessment methods that better measure student conceptual understanding and a strategy for improving teaching and learning once student achievement has been measured. Within these regressive educational times, Catlin Gabel does a great job of reaffirming its committment to educating students in the manner it knows best.

Computer-based technologies may be used to support practically any kind of educational mission. They are certainly well-suited to a high-stakes, testing-based environment, able to deliver tests to students and produce reams of statistical comparisons. However, computer-based technologies may be even better suited to supporting a progressive educational mission. Students may work on their own, at their own pace, on open-ended tasks. The organizational capabilities of a computer are useful in order to manage short-term activities and long-term projects such as multimedia presentations, research projects, and artistic works. Teachers may use online databases to share information about students in order to better tailor instruction to each child.

Social software, probably the hottest area of new growth on the Internet, is an extremely fertile field that is perfectly suited to progressive education. Internet-based services offered by Google, mySpace, Moodle, Flickr, Drupal, Wikimedia, and Elgg are creating new ways for individuals to interact with each other and develop group membership on the Internet. Such technologies support the progressive educational practices of groupwork, public performance, and learning through experience.

The first social software we are piloting is Moodle, which is best-suited to managing course web sites but we will also use as online community software for faculty affairs, student clubs, and parents. Moodle gives people the capability to do course work by posting documents, creating discussion forums, conducting surveys, posting and submitting assignments, and more. One exciting feature is the ability for students to join and leave club web sites at their own will, allowing club membership to organically grow. For instance, by joining a club web site, a student will automatically become subscribed to their announcements email list.

Other instructional software such as ChemSense and CMap Tools also have social components. Both allow students to collaborate with each other on their mental models, whether they are on campus or not.

Check back on this space for more reflections and reports on technology and progressive education.

Moodle Single Sign-on Mod

As I modify Moodle to provide environment variable single-sign on for the third time, I thought I would actually document my work this time. Make these modifications at your own risk — they work for one Moodle 1.6/Win2k3/PHP5/mySQL5 environment but may not work for yours.

File login/index.php, lines 78 onward: fool Moodle into thinking that the user has submitted login form data. Substitue the DAF user environment variable for the login.

if ((!empty($SESSION->wantsurl) and strstr($SESSION->wantsurl,'username=guest')) or $loginguest) {
/// Log in as guest automatically (idea from Zbigniew Fiedorowicz)
$frm->username = 'guest';
$frm->password = 'guest';
} else if (!empty($SESSION->wantsurl) && file_exists($CFG->dirroot.'/login/weblinkauth.php')) {
// Handles the case of another Moodle site linking into a page on this site
include($CFG->dirroot.'/login/weblinkauth.php');
if (function_exists(weblink_auth)) {
$user = weblink_auth($SESSION->wantsurl);
}
if ($user) {
$frm->username = $user->username;
} else {
$frm = data_submitted($loginurl);
}
} else {
// patch for UHS active directory (kassissieh)
$lowername = strtolower($_SERVER[HTTP_DAFLOGIN]);
$lastpart = stristr($lowername, '\\');
if (!$lastpart) {$lastpart = strtolower($_SERVER[HTTP_DAFLOGIN]);}
$frm->username = $lastpart;
//$frm = data_submitted($loginurl);
}

/// Check if the user has actually submitted login data to us

//if (empty($CFG->usesid) and $testcookies and (get_moodle_cookie() == '')) { // Login without cookie when test requested

// $errormsg = get_string("cookiesnotenabled");

//} else if ($frm) { // Login WITH cookies

if ($frm) { // Login WITH cookies

File auth/none/lib.php: Return a true authentication result no matter what.

//if ($user = get_record('user', 'username', $username)) {
// return validate_internal_user_password($user, $password);
//}

return true;
//}

user/edit.php, line 357 (just before “include edit.html”): pre-fill some user information from Active Directory entry (so we may lock those fields)

// (get user information from active directory - kassissieh)
echo "";
print_simple_box(('Welcome, new user!
Please review your user profile then select Update Profile (below).'), "center", "50%");

// pre-fill user information
$user->email = $user->username;
if (!strpos($user->email, '@')) {$user->email .= '@sfuhs.org';}
$query = " SELECT
EA7RECORDS.FIRSTNAME, EA7RECORDS.NICKNAME, EA7RECORDS.LASTNAME
FROM
EA7RECORDS,
ADDRESSLINKS,
PHONELINKS,
ADDRESSLINKPHONES,
EA7ADDRESSOPTIONS
WHERE
NUM LIKE '" . $user->email . "' AND
ADDRESSLINKPHONES.PHONESID=PHONELINKS.PHONESID AND
PHONELINKS.ADDRESSLINKSID=ADDRESSLINKS.ADDRESSLINKSID AND
ADDRESSLINKS.PARENTRECORDID=EA7RECORDS.EA7RECORDSID AND
EA7ADDRESSOPTIONS.ADDRESSLINKSID=ADDRESSLINKS.ADDRESSLINKSID AND
EA7ADDRESSOPTIONS.PRIMARYADDRESS='-1'";

mssql_connect ( "sqlsrv", $dbuser, $dbpass );
$result = mssql_query ( $query );
$row=mssql_fetch_array($result);
if ($row['NICKNAME']) {$row['FIRSTNAME']=$row['NICKNAME'];}
mssql_close();
if ($row['FIRSTNAME']) {$user->firstname = $row['FIRSTNAME'];}
if ($row['LASTNAME']) {$user->lastname = $row['LASTNAME'];}

// end kassissieh mod

user/edit.html: Replace input fields for firstname, lastname, email, and change password with hidden data fields. This is because we don’t want AD users to change their basic user information.

For example, replace


<input type="text" name="firstname" size="30" alt="<?php print_string("firstname") ?>" maxlength="100" value="<?php p($user->firstname) ?>" />

with

<?php p($user->firstname) ?><input type="hidden" name="email" value="<?php p($user->firstname) ?>" />

Apple’s Back-to-School Bonanza

I recently bought a new iMac for my mother and was surprised to walk out with a free iPod nano and printer/copier/scanner as well! This is part of Apple’s back-to-school special. However, I can only find the free nano offer on the web. If you are in the market for a new Mac, I suggest you go to an Apple store with your education ID and attempt to get the full package.

We walked off the street into an Apple Store and got:
- $100 off the iMac (education discount)
- Free iPod nano (by mail-in rebate, $200 value)
- Free HP inkjet printer/scanner/copier (by mail-in rebate, $100 value)
- Microsoft Office Student/Teacher edition for $100 (after $50 mail-in rebate)

The printer was the most pleasant surprise. It’s the fastest inkjet printer I have seen, it includes a small flatbed scanner, and the one-touch copier is simple to use and provides black & white and color options.

I wish mail-in rebates were illegal. I wonder what proportion of customers fail to submit the rebate forms? In addition, both the printer and iPod rebate forms ask for the original iMac UPC. Apparently, the iPod offer will accept copies.

Now if only my parents didn’t want the free iPod!

Shift Scheduler Released Under GNU GPL

A helpful guy named Adam Wolfe Gordon has borrowed my volunteer script, rewritten it, and released it to the public for download and modification.

Shift Scheduler

I learned a few things from this experience:
1. It takes a lot longer to prepare a script for general use than for just one institution.
2. I am definitely a hack programmer! That’s good enough for my purposes, but Adam rewrote the script properly.
3. I finally realized my goal of disseminating some of the script work I have been doing for schools.

Let me know if you download and use Shift Scheduler. Also let me know if you are interested in the other scripts I write about (see the programming category of this blog).

Silence Your Blackberry!

I have quite unintentionally become a Blackberry user. The new tech department I just joined standardized on Blackberries some years ago, so I got one, too. For a change, I picked up the 7000i to see whether I could have a smaller device than the others’. Turns out that it’s not actually smaller, just narrower and taller. At least it fits in my pocket.

I was freaked out for the first week at how often the device buzzed and beeped me. This leads to my first lesson learned: turn off notification for email messages! I really don’t need to know when each separate email message arrives, and my phone will still buzz when I receive a phone call, radio call, or IM message. I definitely do not want to become one of these people who frantically checks their Blackberry for every email message that arrives! I switched to “phone only” mode to make this happen easily.

Being new to town, my favorite new Blackberry app is Google Local. It’s perfect when trying to find an address or get driving directions while on the phone!

I tried “find me now,” a Mapquest feature that uses GPS to locate me wherever I am. It wasn’t very accurate and required a lot of setup.

What other Blackberry apps should I download and try?