Designing CoreDogs

Kieran Mathieson

May 18, 2009


This document lays out the design process for a Web site to help people learn about Web site development. My goal is to create this site, to be called CoreDogs.

I wrote this paper before I had started direct work on the site. My ideas changed a little as I progressed.

I use several models in this paper.

  • Context model – describes constraints on the site. The constraints are primarily learner goals and resources.
  • Expertise state model – a static model, describing a learner’s expertise at time t.
  • Learning model – a dynamic model, describing how people learn.

They come together like this.

Learning with CoreDogs

Figure 1. Learning with CoreDogs

Learners start with an expertise state. Their expertise grows when they have learning experiences (reading, solving problems, talking to other people, working as a carnie, etc.). Eventually learners reach some desired expertise state. At this point, they have finished with the canned learning experiences CoreDogs offers. They continue learning on their own – reading blogs, making podcasts, running the Tilt-A-Whirl.

CoreDogs offers the learning experiences in the shaded box. Their design follows principles of learning theory, particularly constructivism informed by phenomenography.

This document is organized as follows.

  • Context – why people want to learn.
  • Desired expertise state – where learners end up.
  • Learning process – how people learn.
  • CoreDogs architecture – how CoreDogs is put together.

Most of the ideas here I’ve drawn from other people, though I haven’t been careful in keeping track of what came from where. There’s a list of sources at the end of the document, but it’s incomplete. If you think I should add to it, let me know by submitting a comment.


The context is the total environment in which learners use CoreDogs. I’m going to make some assumptions. It’s important to get them right, since they affect the entire outcome of the project.

Learner goals and resources

Learners have vocational goals. They want to do Web stuff as part of their paid work. Options include being part of a corporate Web team, running an independent Web development company, and doing Web work to improve their effectiveness in their main (nonWeb) job (e.g., accountant, professor, Tilt-A-Whirl operator).

People who get paid to do Web work are called Webers. This term comes from the middle ages. If John did smith work, people called him John Smith. If he made things from wood, people called him John Carpenter. If he created Web sites, people called him John Weber.

This is meant to be vaguely humorous. Ha ha. (Sigh)

CoreDogs will emphasize application-directed learning.

.. application-directed learning … [is] a conception of learning in which the use of knowledge is stressed, and a vocational learning orientation.

Vermunt and Verloop, 1999

Learners may have strong avocational goals. A learner might want to build a professional-level Web site for his/her Josie and the Pussycats tribute band. However, I’ll focus on vocation here.

Learners will devote enough time to learning to reach the expertise level they aspire to. What “enough” is will vary from person to person.

Learners will engage in deep learning. Some people want to learn just enough to earn a living wage. “Don’t give me all the theory, just tell me what I need to do to get paid.”

This is not a viable strategy for long-term employment in the Web world. There are task uncertainties (what task will be next?), competition (who will Webers have to compete against? Offshore?), and technological ambiguity (what technology will be next?). Webers who stop learning are taking a big risk.

Web site development is not a Jetson job. People who don’t want to learn should find a different line of work.

George Jetson would just press one button all day. No problem solving involved.

I assume that learners want to learn the principles beneath the page. CoreDogs will have an explanation of what deep learning is, and will be designed to support it (more on that later). I also assume that learners enjoy playing with tech to some extent, or at least that it doesn’t make them violently ill.

Learners have money to spend on learning, even if it’s not very much. At a minimum, they have $100 per year they could spend.

Learners have the use of a computer and access to the Internet.

Learners have some basic computer skills. They know how to use a mouse and keyboard, how to use a browser, how to send and receive email, and how to copy files.

My goals and resources

I want CoreDogs to help me in my teaching. I plan to use CoreDogs to support my teaching at Oakland University.

I want to generate revenue. CoreDogs has no funding. I pay for everything myself. I’d like the site to make enough to cover hosting, pay for extra hardware, software, travel, content development time, etc.

I want CoreDogs to be a model. Many university textbooks don’t use what we know about how people learn. Lots of colorful pictures, though. CoreDogs will show how good material can be delivered inexpensively.

Organizational goals and resources

I don’t make assumptions here. Employers’ goals affect CoreDogs indirectly. A learner who wants a job will learn what employers want him or her to know.

The Web practitioner community has opinions about what employers do and should want. I take my cues from them when it comes to the desired expertise model. More below.

How will CoreDogs compete?

CoreDogs as a textbook. The site could be a textbook for college and even advanced high school courses. It would compete with existing products based on (1) instructional quality (that is, it would actually support learning), and (2) price. (If I use a subscription model, CoreDogs might cost, say, $14.95 for six months.)

CoreDogs for independent learning. CoreDogs could help people who make their own decisions about how they learn basic Web development. CoreDogs would offer (1) progress towards better employability, (2) effective use of time, and (3) low cost.

It would be even better if CoreDogs helped with certification (e.g., WOW). I’ll explore that. I’ll also explore the Opera Web Standards Curriculum: There’s much Good Stuff there.

CoreDogs as a refresher. CoreDogs would help people learn about current practices, including Web 2.0 interface development. The site could help Webers update their skills.

CoreDogs and employment

Completing the CoreDogs lessons may not get anyone a job, just by itself. I’ll have to study career paths, to better understand where CoreDogs fits. This might cause some changes in the details of CoreDogs’ design, but it won’t change the fundamentals of learning.

Core expertise

There are many different Web jobs. The World Organization of Webmasters lists Webmaster, Web designer, Web developer, Web administrator, e-commerce manager, and Web consultant. The “2008 A List Apart survey”: adds things like artist, writer, project manager, and information architect.

That’s quite a range! Even Morgan Freeman would have trouble knowing enough for all of these jobs.

But each job shares some expertise requirements with the other jobs. Some pieces of expertise are required by all jobs. For instance, everyone needs to know what a URL is.

Suppose we draw a Venn diagram of the expertise sets needed for Web jobs. It would look like a daisy.

Core expertise

Figure 2. Core expertise

OK, a mutant daisy, growing in the Ukraine in the mid-80s. And it should really be in n dimensional space. But you get the idea.

CoreDogs focuses on the middle bit. That’s where the first part of the name came from. The second part? I like dogs, and plan to use dogs as characters.

What should be in the core? Some things will be included, and some left out. It’s important to leave a lot out, to ensure that (1) people can work through CoreDogs in a reasonable time, and (2) there is time for active learning (more on that later).

Of course, no matter what I choose, some in the CoP (that’s the Weber community of practice) will curse me unto the seventh generation. They will do it with utter confidence. Some with panache and elan. Some will be worth listening to, others not so much.

The core is not stable, given how quickly Web things change. The core has grown over time, that is, today a Weber needs to know more than s/he needed to know five years ago. In choosing concepts for CoreDogs, it’s a good idea to pick things that are likely to have longevity. Further, it’s important not to omit concepts that leave learners unprepared for the future, at least the future that we can predict.

Let’s take a moment to consider…

What is expertise?

I divide expertise into three parts:

  • Declarative knowledge. Facts you can test on a short-answer exam, like “What does the <h1> tag do?”
  • Skills. Ability to solve problems, like “Lay out a page with a header, a left navigation bar, content, and a footer.”
  • Attitudes. Evaluative (good/bad) beliefs, like “Reuse is good,” “I should keep learning,” and “The musical episode in season six of Buffy the Vampire Slayer rocks!”

A question you might ask: Why did I include attitudes? What right do I have to tell people what they should believe? Who do I think I am, Morgan Freeman?

This comes from the CoP, that is, the profession. CoPers agree that there are some attitudes Webers should have. For example, they think that Webers should have the attitude “I should keep learning.” Here are excerpts from comments on an article about university courses for Web developers.

Life long learning really is the key.

... what we learn now will be obsolete in a few years. In addition to teaching the up-to-date knowledge, [universities] should also infuse the students with a passion to immerse themselves in the industry…

Here are some excerpts from comments on a similar article.

Your education will be superfluous in an industry that turns direction faster than you can complete a semester.

It is important that we help our students learn to learn.

It’s important that CoreDogs practice the attitudes it espouses. For instance, to support the attitude “standards are good,” CoreDogs will use standards compliant code in all examples.

Defining the desired expertise state

The core of the Figure 2 daisy has three things in it.

  • The underlying architecture of the Web. IP addresses, servers, URLs, like that.
  • Client-side technology. Browsers, HTML, user interaction, and such.
  • Building the client side. Meeting user goals with client-side artifacts.

The browser is where everything comes together. Every Weber needs to know how to create a good experience for the user.

How to identify the specific things that should be part of the desired expertise state? I used the following model to help me think about this.

View to help define core expertise

Figure 3. View to help define core expertise

People use artifacts to help them meet goals. In the case of the Web, there are two main types of stakeholders: site users (e.g., a company’s customers) and site owners (e.g., a company). Users use artifacts (like menus, text, lists) to pursue their goals. Owners cause artifacts to be created that meet their goals (e.g., brand messages). Webers create the artifacts using technology.

When creating artifacts, the Weber should remember the context in which people use the artifacts. A detailed analysis of users and tasks is outside the core; that might be the job of consultant or designer in Figure 2. However, the Weber should keep in mind that the site will serve stakeholders’ goals.

Here’s another way to explain why Webers should think about usage context.

A Weber’s value derives from his/her ability to address a problem. This is why it is important to know not just the technology, but the circumstances of its use. If a user has a particular goal, the Weber can present information to help with that goal. Better problem solutions. A more valuable Weber. Maybe even more money.

I’m just sayin’.

Here are different lenses I use to select the topics in the core.

The users’ perspective

Site users want information that’s:

  • Relevant to their goals.
  • Findable (e.g., users who start at the home page can find what they want; some designers talk about them being able to follow “the scent of information.” It’s a good metaphor).
  • Usable (e.g., readable).
  • Attractively presented.

When users do business over the Web (e.g., making a hotel booking), they expect good interfaces. This means auto-suggestion in search forms, calendar widgets for date entry, lightboxes to view photos, and so on.

The owners’ perspective

Site owners wants sites that:

  • Serve relevant users (e.g., customers, investors).
  • Give messages owners want to send (like key brand messages).
  • Are cost effective.


  • Infrastructure (files, directories, networks, FTP, etc.).
  • HTML.
  • CSS.
  • Media creation and deployment (particularly images).
  • JavaScript (for good interfaces).
  • JS libraries (to reduce costs).

I’ll add one more thing to this list:

  • Client-side APIs.

Not everyone will agree that this belongs in the core. But as I look to the future, I see it becoming more important to know how to interact with information services.

Note that programming is part of the core. I think that a Weber who cannot create smart interfaces will be at a disadvantage in the job marketplace, if not now, then in the near future.

My experience has been that learners find programming much harder than creating static pages. Topics like arrays and loops are particularly challenging for some people. CoreDogs is careful about how it introduces programming, as we’ll see below.


  • Structured text (tables, lists, trees).
  • Free text.
  • Links.
  • Menus.
  • Forms.
  • Media (images, video, etc.).
  • Headers, footers.

Weber skills

  • Layout pages.
  • Format page elements.
  • Prepare content (text, images, etc.).
  • Design basic information architecture.
  • Create navigation tools.
  • Create data input tools (e.g., form elements with validation).
  • Create special display tools (e.g., lightboxes).


  • Serving customers (clients, users) is good.
  • Continuous learning is good.
  • Deep learning is good.
  • Knowing how to work with others is good. This includes knowing what other Webers do. For example, if you’re an artist, it’s good to know how coders see the world, because you’ll need to work with them.
  • Reuse is good.
  • Cheap is good.
  • Buffy the Vampire Slayer is good.

OK, the last one is optional, but it’s true.

Learning process model

My view of learning is based on constructivism. Learners have no direct access to an objective reality. Instead, they interpret their experiences.

[Learning is] an active, constructive and self-directed process in which learners build up internal knowledge representations that are personal interpretations of their learning experiences. These representations change constantly on the basis of the meaning people attach to their experiences.

Vermunt and Verloop (1999), p. 258

Here is a simple model.

Learning process

Figure 4. Learning process

The shaded area is the learner, who interacts with external objects (like pieces of text). The interaction forms the learning experience. Learners process the information generated from the experience to adjust expertise.

My view of expertise states is informed by phenomenographic research, particularly Cope (2006).

An expertise state (sometimes called a conception in the literature) can be modeled as a set of dimensions of variation. Only when things vary do they require attention. For example, initially learners might use only one DOCTYPE, so it requires no attention. A later expertise state introduces more types. Learners have to pay attention to know the difference.

“Dimensions of variation” is a clumsy term. I’ll use the simpler term “concept,” but remember that the term as I use it implies some variation.

Expertise states are stable, in the sense that they are relatively internally consistent (that is, the inconsistencies are below some threshold “you’ve got to be crazy to believe those two things together” level). Learning occurs when a learner has an experience (e.g., reads some text) that is inconsistent with or expands on the learner’s current expertise state. Through cognitive effort, the learner changes his/her expertise state to incorporate the ideas introduced by the learning experience. There is a new stable state.

So, learning moves the learner from one expertise state to another. My job is to design learning experiences that will move people towards the desired state. Like this.

State to state

Figure 5. State to state

More advanced expertise states have more concepts, more differentiated concepts, better defined relationships between parts and wholes and parts and parts, and better understanding of which situations call for what responses.

Expertise states are nested, that is, state 1 is included within state 2 is included within state 3, etc. This makes sense within an individual. That is, Gina’s state 3 includes state 2 which includes state 1. We need to assume that Gina doesn’t forget too much, and what forgetting there is is easily corrected by reminding her of what was once known. This is not unreasonable, given (1) in technical material much of what is learned in state n depends on the contents of state n-1 and is implied by it, and (2) the highly interconnected nature of knowledge learned through deep learning.

What is less obvious is that, empirically, there are a limited number of conceptions across people (or at least, that is how the data is usually interpreted). So if we tracked Anya’s expertise states and Xander’s expertise states (just two random people), we’d find that they match up more often than not. In fact, suppose that:

  • Anya and Xander start with overlapping expertise states (e.g., they both know how to copy files).
  • They both have more-or-less the same learning goals.
  • Anya and Xander are both given the same learning material.

We’d expect that both Anya and Xander move through more-or-less the same set of stable learning states. They would take different amounts of time, depending on their motivation levels, time available to learn, intelligence, and maybe other factors.

I’m suspicious of stage theories, that is, theories that say people go through exactly the same set of stages. I would expect there to be some blurring across stages for Anya and Xander. However, the “stable learning states” idea is a useful approximation that’s good enough for my purposes.

Learners are selective, paying attention to some aspects of objects, but not others. What they attend to depends on their goals. Processing can also change the goals, perhaps changing what the learner thinks is important.

This brings us to …

Learning goals

Goals affect both the amount of effort and direction of effort (what the learner actually does, the acts he or she performs).

Learning researchers distinguish between surface and deep learning. Here are caricatures of the ends of the surface/deep continuum.

Surface learning

Surface learners see tasks as external impositions they have to cope with. They seek to meet demands with a minimum of effort. Surface learners have limited goals, usually “pass the exam.”

When they learn declarative knowledge, surface learners focus on memorization and reproduction. They don’t care why it matters. They look at each piece of content individually, and don’t see relationships between them. They will not retain the facts once the exam is over.

When they learn skills, learners focus on the exact tasks presented in the learning material. They don’t try to generalize to different tasks, except those that they predict will be on the exam.

The same holds for attitudes. Surface learners just want to know what attitudes testers will expect them to express. They may not internalize those attitudes, that is, their expressed attitudes will not necessarily affect their behavior.

Deep learning

Deep learners are interested in the task. They think about how their learning serves their personal goals. Deep learners try to understand why tasks matter. For our case, a Weber who thinks about why pages are structured in certain ways will craft solutions that better meet customers’ needs.

Deep learners expect some enjoyment from learning. Does enjoyment of learning lead to more learning, or the other way around? Probably a bit of both.

Deep learners look for patterns and principles.

Deep learners look for links to their own experiences.

Deep learners think about learning itself. They have metacognitive awareness, that is, they know that deep learning is useful, and how to go about it. For example, a deep learner might decide to create a mind map for a topic, even though nobody has told him or her to do so.

Deep learners also have metacognitive control, that is, they are able to keep themselves on-task.

You’ll see the term “active learning.” This is what deep learners do. They think, explore, and reflect on what they have learned. More on this later.

Note that deep learning takes time. Deep learners explore. They try new things. If people are overloaded with busy work, they will not have time for deep learning.

Are you a deep or a surface learner?

Trick question. People are not either deep or surface learners. We all do both in different contexts. I’m a deep learner when it comes to Web stuff. I’m a surface learner when it comes to home improvement.

Learning experiences can affect goals. Maybe you start off as a surface learner, but as you learn you discover that the material is relevant to your personal goals. You might switch to deep learning.

CoreDogs will try to convince people that deep learning is a Good Thing.

Learning step size

The differences between stable expertise states are called “educationally critical differences” in the phenomenographic literature. This is a useful concept. It helps instructional designers focus on what transitions each learning experience should embody.

There is the question of granularity. How big a set of educationally critical differences should a learning experience embody? Consider the step between expertise states n and n+1. Big steps are more difficult than little steps (duh). If the difference between two expertise states is too large, this will frustrate at least some learners.

Remember that programming is more difficult to learn than developing static Web pages. Suppose a course is organized around expertise states like this:

1. Learn infrastructure.
2. Learn HTML.
3. Learn CSS.
4. Learn JavaScript.
5. Learn jQuery.

How much learning effort is required to move between the states? Moving from 1 to 2 and 2 to 3 aren’t that bad, because HTML and CSS are static. People have more trouble moving from 3 to 4. It’s more difficult to write programs than to create static pages.

In CoreDogs, I break up the transition from 3 to 4. Rather than introducing JS in one clump, it gets spread out. The steps between expertise states are more even.

Types of learning activities

A learning experience is made up of activities, that is, things that people actually do. Here’s a list of things, mainly from Vermunt and Verloop (1999). They are divided into three types: cognitive (thinking), affective (feeling), and regulative (controlling learning).



Relating – looking for relationships between content (analogies, similarities and differences between concepts, and comparing knowledge from various sources).

Structuring – creating a framework for knowledge.

Analyzing – breaking whole into parts, and finding sequences. This is important in Web development, because there are lots of pieces that have to work together.

Selecting – distinguishing major and minor points.

Concretizing – looking for examples. This is particularly important for application-directed learning, like that in CoreDogs.

Applying – thinking of new applications.

Critical processing – draw one’s own conclusions from evidence.


Motivating. Maintaining willingness to learn.

Expecting. Forming expectations about the course and outcomes of a learning process.

... students reward themselves when they attain certain subgoals, think of the negative consequences when they want to quit learning, and try to generate interest in a subject…

Concentrating and exerting effort.

Judging oneself. Judging one’s own learning performance.

Appraising. Attaching subjective value to learning tasks. This affects willingness to invest effort.

Dealing with emotions. Generating, maintaining and restoring positive feelings.


This is about controlling cognition and affect. There is overlap with the other categories.

Planning. Decide what activities to do.

Monitor and test progress.

Diagnose problems in understanding.

Adjusting. Change the original plan.

Reflecting. Think about learning process and outcomes.

Activities that encourage deep learning

“Observing” experiences

Watching other human do things can be worthwhile. Learners can see concepts at work, learning about (1) how concepts apply in a context, and (2) how a knowledgeable being uses them.

Observing doesn’t let learners experience the full angst of their own projects, of course. Vicarious angst just doesn’t compare.

Vicarious Angst would be a good name for a band.

“Doing” experiences

This mean direct experience, or experience with a simulation. The learner gets a task to complete, designed so that completing it causes a desirable state change in the learner’s expertise.

I don’t have a complete theory of learning assignments, but I have some thoughts. Here’s what’s going on.

Figure 6. “Doing” tasks

It’s the shaded bit that creates value, i. e., that changes expertise. It’s affected not just by the task, but by other things as well.

Let’s look at two cases. The first is called …, oh, let’s call it alpha case. Suppose CoreDogs introduces a new concept (e. g., using the jQuery $() function). There’s some text, and then a couple of examples.

The course designer wants to help the learner do some deep learning, so s/he creates a task. The differences between the example and the task are only those that are relevant to the concept. This helps the learner pay attention to the right stuff.

Here’s an effective strategy for the learner:

  • Find an example in the text that’s similar.
  • List the differences in the desired results.
  • Change the example.

Because the task is similar to one of the examples, The learning step size is fairly small. The task solution strategy is simple.

Now let’s consider beta, a task that is not similar to an example that’s in the text. It requires the learner to apply a concept to a different situation. This demands a more complex task solution strategy, with steps like:

  • Describe the end state in detail.
  • Identify elements and processes in the end state.
  • Identify dependencies between them.
  • ...

There’s planning, problem diagnosis, and other stuff.

Thinking about how to do tasks like this is part of metacognition. The learner could use tools to help. Like this diagram used to help plan a registration form.

A task planning document

Figure 7. A task planning document

Why is my handwriting so bad? I blame the world. I grew up in the southern hemisphere, but work in the northern. The carbon molecules in pencil lead rotate the other way in the northern hemisphere.

Task alpha helps the learner learn about the concept, but not much else. Beta helps the learner generalize to other cases. It should lead to deeper learning.

I’ll call an alpha task an “exercise,” since it exercises a specific concept. A beta task is a “project.”

Both are useful for CoreDogs. Exercises come first, and should be embedded in the text close to the concepts they address. An exercise is a small learning step from an example. Going from an example to a project is a bigger learning step. Most learners will benefit from doing exercises first, and then projects. That way they’ll have two smaller steps, rather than one big step.

It would help to give learners some tools like that in Figure 7. For CoreDogs, learning how to use thought tools is an important part of the entire goal of the site.

“Reflecting” experiences

Asking learners to think about what they have learned solidifies concepts. They go back over the concepts from a different perspective.

One option is the one-minute paper (Fink, 2003). At the end of a lesson, learners write down the most important thing they learned, or important questions that remain, or the thing they had the most trouble with.

Social learning

Learning the Web core is something each person must do him/herself. Even if someone is going to work in a team, that person needs to know the core.

Still, other humans can help people learn. In a whole bunch o’ ways. Not just half a bunch, oh, no, a whole bunch.

Cognitive support

Humans can help explain stuff. They can correct misconceptions. They can offer feedback on solution quality. They can help diagnose problems in understanding.

Novice humans can offer each other cognitive support. That’s part of what group work is all about in university courses. Rupert might understand what Jenny doesn’t get, and vice versa. Further, the act of explaining something helps learners better remember it.

Affective and regulative support

Humans can help learners stay motivated. They can hand out ataboys, for example. They can help celebrate achievements. They can bring coffee. Or is that cognitive? It’s a bit of both. But bringing cookies might be more affective than cognitive.

Dogs are great at affective support.

I wrote an article on study groups that has better coverage of social issues.

CoreDogs architecture

Here’s the pay dirt! The description of the CoreDogs site uses the concepts described above.


Here are the main functions of the site.

CoreDogs functions

Figure 8. CoreDogs functions

The pieces are all linked to each other. Let me briefly describe each function.

The lessons are the core of CoreDogs. Learners work through them in sequence. Once they are done, they can use other site features to help them continue learning.

Learning support tools are note taking tools, mind mapping tools, and other things learners use as they work through the lessons.

Each learner has a portfolio. It shows the learner’s history, collects notes and other things in one place, and showcases the learner’s successes.

Portfolios and lessons are linked with each other. For example, a project in a lesson might have a place for learners to enter their thoughts on the most challenging part of the project. A link to the learner’s solution will be in the portfolio, along with the learner’s notes.

The reference material is a collection of HTML references, JavaScript references, and so on.

Community tools help learners work together. There’ll be forums, contributed stuff (code, images, etc.), and (maybe) study groups. Lessons and community tools are linked. For example, there will be a forum thread for each exercise, where learners can help each other. Each learner’s portfolio might contain a list of that learner’s contribution to the community. Study groups will essentially be small gated communities with forums, portfolio links, and other things.

CoreDogs will be implemented in Drupal. Most of the functionality I need already exists in Drupal and its modules (a module is a plug-in in Drupalese). I might need to write some custom modules, though.

Let’s look at each of the major site functions in more detail.

The lessons

Each lesson matches one expertise level, usually named for the products learners learn how to create, like “A Web page with images.” Expertise levels nest, as described above.

Lessons are structured like this:

Lesson structure

Figure 9. Lesson structure

A concept is explained, then there’s an example (or two or three), and an exercise (or two or three). The cycle repeats. At the end of each lesson, there are projects. Learners also reflect about what they have learned.

Each lesson will be divided into pages. Each page will have one or more explain-example-exercise cycles.

Exercise cycles? Hee hee.

Exercises are relatively small variants on examples. Projects are more conceptually distant. They require more skills, e.g., planning skills.

The lessons are designed to be done in sequence. Learners can skip around, if they wish, but lesson n will assume that the reader has worked through lesson n-1.

Here’s a list of the lessons and their content. This will no doubt change as I work on the site.

1. Web site infrastructure.

IP addresses, DNS, browsers, URLs, FTP.

2. A Web page with plain text content.

Basic HTML tags (no forms).

Writing advice – readable, scannable text, etc. (Redish stuff – what a great book! I wish I could write a book like that when I grow up.)

3. A Web page that can ask questions.

JS, variables, text form field.

Including jQuery library.


Showing output with html().

Debugging with alert().

4. A Web page with images.

What images are for.

Where images come from.

“Daddy, where do images come from?” “Well, dear, a mommy image and a daddy image love each other very much….”

Graphics formats.

Image usability.

Changing image attributes (jQuery).

if statement.

show(), hide().

5. A Web site with text and images.

Information architecture. Information scent.

Organizing files.

Links. Attributes of good links.

Page jumping in code.

6. A Web site with styled content.

Basic CSS.

Usability advice (Redish).

Color profiles and the color wheel.

Applying styles conditionally.

7. A Web site with layout.

Float, clear.

Usability – grouping, etc.


Headers, footers.

8. A Web site with generated content.

Arrays, loops.

This is about changing page content using data in arrays and objects. As might happen when a server responds to an Ajax call.

9. A Web site that can do transactions.

Forms, validation.

10. A Web site that can talk to data sources.



Working with database and programming people.

Some other notes about lessons.

  • Each lesson will have its own forum thread.
  • Much will be left out. For example, there are many HTML tags I won’t talk about.

Big project(s)

The examples will be more-or-less independent of each other, since they’re tied to specific concepts. Most of the projects will be tied to their respective lessons.

However, there’ll be at least one project that runs through the lessons: “create a Web site to promote yourself to clients/employers.” This should be quite motivating for most people.

There might be another big project as well. Maybe a site for a nonprofit. I’m not sure yet.

Lesson support tools

These are things that are used within the context of a specific lesson.

Page notes

Each page will have a text tool where learners can summarize what they have learned, list questions they have after reading the page, list ideas they have for using the techniques on the page, or whatever else they want to write about.

Lesson notes

The page notes will be repeated on a lesson-wide summary page that will be after the projects. Learners can add additional lesson-wide notes, if they want.

Exercise hints

(Not sure if I’ll do this.)

Learners can ask for hints for an exercise. There might be three or four hints for each exercise. The number of hints learners ask for will be recorded in their portfolio. This will act as a score of sorts. The fewer hints learners ask for, the better.

There’ll be a forum thread for each exercise and project. Learners can offer each other hints here as well.

Learners’ exercise and project solutions

For each exercise, learners will be able to enter the URL for a solution stored on their own Web sites.


At the end of each lesson, there’ll be questions to help people reflect on what they have learned. A question might be: “How could (concept X) help Web site users?” Another example: “Find Web sites in the banking industry where (concept X) helps site users.”

There’ll also be a forum thread for each one of these questions.


Learners can bookmark any page, and give a name and description to each bookmark. Maybe learners can tag bookmarks, with tags like “I don’t understand this,” and “Useful for the Tilt-A-Whirl site.” Each learner could have his/her own bookmark taxonomy, with some default taxonomy entries s/he can add to.

I see bookmarks being in the “name space” of the entire lesson set, rather than a single lesson.

Learning portfolios

Each learner will have one. It has three goals:

1. Help the learner track his/her interaction with the lessons.
2. Help the learner with independent learning after s/he has completed the lessons.
3. Help the learner interact with other CoreDog learners.

Personal profile

Whatever personal information the learner wants to share. Name, favorite music, personal Web site URL, etc.

Tracking lessons

The portfolio will report the exercises and projects the learner has looked at, listing notes and solutions the learner has provided. This is essentially just another view of the data that’s available from the lessons.

Bookmark list

The portfolio will also contain a list of bookmarks, sortable in various ways.

Independent work

A list of work the learner has done by him/herself (e.g., a family reunion Web site). Includes a link to the learner’s own site.

Private notes

Text about any random thing the learner wants. For example, the learner might make a list of useful JavaScript tutorials.

Forum contributions

List of the contributions the learner has made to the forums.

Reference material

This will have links to useful HTML, CSS, JS, and other references. It will also have lists of useful software, like editors, IDEs, FTP clients, and so on.

Community tools


Forums will let people:

  • Help each other with the exercises and projects.
  • Give feedback on the lessons.
  • List and review software, Web sites, book, etc.
  • Talk about whatever.

Study groups

I’m still thinking about this. My idea is that a few learners could form a group who work through the lessons at the same time. They would have a closer social relationship with each other than with the rest of the CoreDogs community.

Each study group would have its own forum, document space, and maybe other things.

I wrote an article on study groups.


This section discusses the style I’ll use in writing. I’m using the word “style” generally, referring to tone, format, graphics, and such.

People who do research on textbooks have some recommendations. I’m not sure what to call people who do research on textbooks, so I’ll call them PWDROTs (people who do research on textbooks). You can pronounce this, if you add the vowel of your choice between the W and the D. For example, PWoDROTs, PWeDROTs.

Many PWDROT recommendations are already part of the CoreDogs design described above. For example, Chambliss and Calfee (1998) say textbooks should:

  • Connect to student knowledge.
  • Organize new content for the student.
  • Provide opportunities for students to Reflect.
  • Give students occasion to Extend what they have learned to other contexts.

They use the acroymn CORE. Really! It was meant to be.

Here’s another voice.

The way to represent an expert’s knowledge is not to write longer and more detailed textbooks but books that teach a critical way of knowing, together with the handful of organizing principles and fundamental concepts of a discipline.

Warren Buckland (2001)

Here’s another PWDROT.

If learning is to improve, (1) authors must write natural texts, (2) authors must become storytellers for content-area textbooks, (3) curriculum designers must plan for multiple texts on a single topic, and (4) textbooks must have real authors rather than committees of developers.

Crismore (1985)

The rest of this section talks about PWDROT recommendations that haven’t been covered already.

Stories and metaphor

Stories and metaphor link abstract concepts to the concrete. They also create a context. For example:

Willow and Tara had been arguing. Willow wanted to find a spell that would cause Tara to forget the argument. Willow went to the site to find a spell, and order the ingredients she didn’t already have.

Stories can be used locally, that is, within a lesson. But they can also be used globally. In fact:

CoreDogs lessons will include the story of two learners’ journey through the lessons.

The learners will be dogs (of course): Renata and CC. Renata is a smart, jumpy puppy, enthused by the tech. CC is, well, slower, but more grounded in making things useful for customers.

Renata and CC will model good learner behavior. They will both be deep learners. They’ll ask lots of questions. They’ll explore, and bring back stories of their own. Sometimes they’ll fail, and they’ll help each other figure out how to proceed.

Add to this…

The expert’s voice

Some PWDROTs recommend writing in the voice of an expert, rather than in a disembodied style. CoreDogs will have Kieran (that’s me, sort of), who will write the lessons, and lead CC and Renata through them. (I’ll use photos of my wonderful black lab Oscar for Kieran.)

Kieran will model the behavior of a mature professional. He won’t get mad when challenged, even by the pup (unless she is disrespectful). He’ll admit to ignorance. He’ll talk about his own continuous learning.

Simple, vivid language

CoreDogs will be written in a relaxed, informal style. Incomplete sentences. Exclamations! It’ll be more like a conversation than a lecture.


There are two schools of thought here. One is that humor is distracting, sucking human CPU cycles. Another is that it is motivating, and causes a quick jump into another perspective (Andy Hunt wrote about this).

I’ll toss in some humor, but will try to control my tendency to wander off into narrative hinterlands.


I’ll use lots of graphics, but only when they’re relevant. Pictures for pictures’ sake are no good.

Making organization and use clear

I’ll write about the organization of CoreDogs, and also about how learners can get the most from the site.

Use existing Web experience

I’ll tap into people’s experience with Web sites. We’ve all seen good and bad ones. And I’ll point people to sites with good and bad examples of a concept.


CoreDogs will help people learn about Web development. It will focus on concepts that every Web professional needs to know, no matter what job s/he has.

The design of CoreDogs is informed by learning theory. It will be not be a collection of articles, but a carefully designed sequence of learning materials. This is the site’s value proposition: it will help people learn effectively and efficiently.

Got some thoughts? Add some comments to this page.


A List Apart, Findings from the A LIST APART Survey, 2008,

Warren Buckland, “Promoting Deep Learning through the Use of Effective Textbooks,” Cinema Journal 41, 1, Fall 2001, pp. 121-127

Marilyn Chambliss and Robert Calfee, Textbooks for Learning, Blackwell Publishers, Malden, MA, 1998

Chris Cope, Beneath the Surface: The Experience of Learning about Information Systems,

Avon Crismore, The Use of Author Roles in Improving Textbooks and Learning, [link](

L. Dee Fink, Creating Significant Learning Experiences, Jossey-Bass, San Franciso, CA, 2003.

Andy Hunt, Pragmatic Thinking and Learning,

Leslie Jensen-Inman, Elevate Web Design at the University Level,

Ginny Redish, Letting Go of the Words: Writing Web Content that Works,

J. Vermunt and N. Verloop, “Congruence and friction between learning and teaching”. Learning and Instruction 9 (1999) 257-280.

Aarron Walter, Brighter Horizons for Web Education,


How to...