September 2006 Archives

Object-Oriented Programming and Education

| | Comments (0) | TrackBacks (0)

This post is one I started a long time ago, and am just getting to finishing. Hopefully, some of it still resonates. :-)

Object-oriented programming (OOP) is different than procedural programming, but it still has some similarities to education. In OOP, you write objects, not procedures. There may be procedural information within the object, but OOP is more about what something is and what it can do rather than telling it what to do. Wikipedia puts it much better: "The idea behind object-oriented programming is that a computer program may be seen as comprising a collection of individual units, or objects, that act on each other, as opposed to a traditional view in which a program may be seen as a collection of functions, or simply as a list of instructions to the computer. Each object is capable of receiving messages, processing data, and sending messages to other objects. Each object can be viewed as an independent little machine or actor with a distinct role or responsibility" (

OOP is similar to problem-based learning (PBL) or constructivism. The instructor or instructional designer still begins with the objectives (or desired outcomes), but then he/she develops what occurs in the classroom differently.

For problem-based learning, the instructor designs a real-world open-ended problem which students work collaboratively to solve. Sometimes, students are required to engage in inquiry to determine what information they will need to solve the problem, and there is built-in reflection on the problem-solving and collaboration that occurs during the activity. The teacher's role in PBL is to act as a facilitator, providing information to students as they ask for it. How does this relate to OOP? To my mind, elements of the "problem" in PBL are similar to the objects created by programmers. Each may (or may not) be used, and each can "act," if you will, more or less independently within the problem context.

Even more than PBL or constructivism, however, is the idea of learning objects. The idea of Learning Objects (LOs), and Learning Object Repositories (LORs) is one way the education community has attempted to realize the flexibility of using the object-oriented model for teaching. The biggest problem I see that we've run up against so far, however, is the educator's internal "need" to serialize the teaching/learning process. IDs are very caught up in the elements of teaching and learning that are valuable but that also tend toward the procedural. Directions, objectives, assessments, etc., are all very important, but there is an implied "order" to these things that makes construction of LOs that much more difficult.

Is it worth the struggle? Yes. But there is more work to do before we can really say we've "gotten" it.

Programming Paradigms and Education: Post I

| | Comments (0) | TrackBacks (0)

Lately, I've been thinking a lot about how programming has some similarities to education. It may be a stretch to call instructional design a type of programming, but I do see some areas of similarity. And while students aren't programs in any way, shape, or form, most educational models rely on the idea that students will learn when instructed in particular ways. Likewise, programming presumes that some output or action will occur based on the programming code.

Specifically, I was thinking about the differences between procedural programming and object-oriented programming, and how each of these relates to education. This post will cover my thinking about procedural programming and education. The next post will discuss my thoughts on object-oriented programming and education, and the last post in the series will outline what I'm thinking about in terms of a newer model of instructional design that's related to these earlier posts. Thoughts, suggestions, and corrections are, of course, welcome.

Procedural Programming
In procedural programming, a programmer will write step-by-step instructions for a computer to execute in order to obtain a particular result. These can be in function calls or subroutines, but they are still step-by-step instructions. The program tells the computer, "First you do this, next you do this, etc., etc.," until you finally end up with the result. Wikipedia describes procedural programming as follows:

Procedural programming is sometimes used as a synonym for imperative programming (specifying the steps the program must take to reach the desired state), but can also refer ... to a programming paradigm based upon the concept of the procedure call. Procedures, also known as routines, subroutines, methods, or functions (not to be confused with mathematical functions, but similar to those used in functional programming) simply contain a series of computational steps to be carried out (

To me, procedural programming is much like the traditional model of education: students are given instructions on how to do something (e.g., solving a math problem, diagramming a sentence), and they do it. Subroutines in education include the "mini-steps" required for more complex procedures. Remember diagramming a sentence and all those little lines that came off of the phrases? Or the steps in completing a chemistry lab?

Step-by-step instruction abounds in education. First do this, next do that, etc. etc. Directions for putting together a piece of furniture and instruction regarding how to find library resources are both examples of instruction where the procedure itself is the lesson, and the outcome is that the student can "do" the procedure.

On a larger level, the class itself is like procedural programming: you start with an anticapatory set and move through the stages of teaching. Both Madeline Hunter's direct instruction model and Gagne's Events of Instruction are examples of procedural instruction models.

Unit or topic planning also involves the use of procedures. You begin with lesson objectives and move through a systematic method of developing activities that lead students toward meeting those objectives. Curriculum planning is the same. What are the outcomes of the course, and what procedures will meet those outcomes? Procedural. Like procedural programming.

In fact, instructional design itself relies on procedures. Remember the ADDIE model? Analysis, Design, Develop, Implement, Evaluate--one, two, three, four, five. Of course, ADDIE is recursive in that it's possible to revisit an earlier stage when you're later in the process, but it is rarely presented that way.

The problem with procedural education (and quite possibly procedural programming) is that it doesn't deal with complexity well. Procedural teaching is all well and good for simple concepts that really are step-by-step (like putting together the piece of furniture), but they don't work as well for real-world messiness. And it's naive of education to think that students can take procedures which have been given largely out of context and apply it to a problem where the correct action is not always so clear.

This is not to say that there is no room for this type of teaching and learning. On the contrary, Madeline Hunter, Robert Gagne, and the ADDIE model are quite useful if they are applied appropriately. The problem arises when we try to apply these models to all teaching and learning activities, or even to all instructional design procedures. We need more tools in the toolbox, which is where my thinking about object-oriented programming comes in--in the next installment.


| | Comments (0) | TrackBacks (0)

I've been thinking a lot about some of the "Web 2.0" community-based technologies, and frankly, I'm somewhat surprised that Newsvine doesn't often make the list of sites that are useful (educationally or otherwise). Newsvine strikes me as exponentially useful for thoughtful community building. And unlike Facebook and MySpace, which are both good for social stuff, Newsvine enables thoughtful conversation around topics that are easy to connect to educational content.

Newsvine, essentially, is the same as Digg but with less technology coverage (and a nicer interface, IMHO). It covers more general news in addition to its technology offerings. The entire AP wire is up there, in addition to articles from other news sources seeded (i.e., posted) by members. Members can also write their own articles. Members tag their seeds or original articles, which then become searchable and commentable. Voting on a story pushes it "up the vine," thus increasing its "vineacity." Their metaphors, not mine. :-)

I've created a special account for the College of IST here at Penn State so that I can use it to enable faculty to enhance course content with current news articles. For example, an instructor in our security and risk analysis major can tag news articles about identity theft with an "ist" tag, and students anywhere in the PSU system (or outside it, for that matter) can find them by entering the URL for the IST account followed by the tag. The URL will give you all the articles written or seeded with an "ist451" tag.

Students who have accounts on Newsvine can then vote on the stories, comment on them, or write their own posts in response, which in turn can also be commented on. I envision all the students enrolled in the same course across multiple campuses then being able to interact with each other and create a larger community that's still on-topic and theoretically "within the course."

Pretty cool, huh?

Cool Firefox Extensions

| | Comments (0) | TrackBacks (0)

This past weekend, I downloaded and installed two very cool extensions for Firefox. The more I use Firefox, the cooler it gets, honestly.The first is the Colorful Tabs extension, shown to me by the very intelligent and tech-savvy Nikki Kauffman. This extension gives different colors to each successive tab you've opened in the browser, allowing you to find where you were by color as well as by title. The other neat thing it does is it renders the new tab in italics until you've visited that tab. Nice feature. It is very useful for people who are visual in their approach to things, as well as people who are into color-coding.

The second extension only works on Windows, but it is also very VERY useful. It's called IETabs, and it allows you to open an IE page from within Firefox itself. It works because the IE code is part of the operating system. You can view pages as they would appear in IE, and even run pages that are only "usually" available and working in IE right within Firefox. For example, I was able to launch and play Toontown (Active X controls required) without ever touching IE. I also finally was able to pay my Verizon Wireless bill online without switching browsers (there is usually an error on my PC in Firefox when submit time comes).

Both extensions can be found at

About this Archive

This page is an archive of entries from September 2006 listed from newest to oldest.

November 2006 is the next archive.

Find recent content on the main index or look in the archives to find all content.

Powered by Movable Type 4.34-en