Sections covered in this article: Basic database applications.
In each CoreDogs Experience article, my goal is twofold: (1) to look in-depth at a single feature of the site or its content (this will likely be analysis or commentary of a CoreDogs feature that is present in multiple places as opposed to a single section) and (2) to take a look at what went on in a given section of the course.
CoreDogs Feature: Organization
So far we’ve taken a look at several of CoreDogs’ differentiating features. Now, let’s take a look at the way the site is organized. There are three “books” of instruction; Foundations, ClientCore, and ServerCore. Within each of these books are 5-10 lessons. Each lesson contains a number of “sub-lessons” or explanations. There is a definite and obvious hierarchal structure to the entire site.
Another element of organization that I really like is the Wikipedia-style table of contents at the beginning of each sub-lesson. Here is the table of contents for the Creating a database lesson:
Each item on the table of contents is clickable and takes the user to a hash tagged location on the page. I love seeing this simplistic table of contents at the beginning of each sub-lesson because it lets me know (along with the “Where are we?” and “Lesson Goals” sections) what exactly I’m in for and how much content there is. Additionally it gives me an instant picture in my mind of the shape of the lesson. By “shape of the lesson” I mean something like the story arc of a book or movie. It’s a sort of Cliff Notes to what I’m going to be learning.
Course Content So Far
The Basic database applications section focuses on creating an application (in the form of a website) that displays information (from a database) for users. Furthermore, the application allows administrators to add, edit, or delete records in the database. As noted in a previous article I found the sections regarding forms to be tough and a little hazy in instruction, but this database section was a home run.
The way that this section teaches the concepts should be imitated as much as possible in today’s textbooks. The first three sub-lessons (of 17 total) focus on providing the goals of and necessary background information for creating a basic database application. Then, two separate Sample applications are introduced; a website called DogToys (that stores products in its database) and a website called DogRock (which stores articles about dog rock music). As new concepts are introduced throughout the section, it is explained how the concept would be implemented on each site.
Furthermore, the student is instructed to build a third sample throughout the section; a website that stores jokes in its database. So for each concept that is taught, the student not only sees it implemented in two different samples, but then is charged with implementing it themselves in their own, slightly different sample. When done this way, CoreDogs does not teach the student how to replicate an action; it actually causes them to be able to apply what is learned in a real world situation. If one is able to create a basic database application revolving around jokes, why wouldn’t they be able to create one revolving around books?
On top of these praises, I have to add that creating the database was fun. I actually enjoyed myself as I worked through each sub-lesson, crafting my application to make it better, bit by bit. The way that the entire Basic database applications section is broken up is masterful; at no point did I feel bogged down or confused. This is what the Form lessons should ideally be like as well.
There are a few ways that this section of the ServerCore book could be even better. First of all, when MySQL injection attacks are discussed, it may be helpful to provide a little further explanation as to what the “escape_string” method actually does to the data. I also found myself wondering if phpMyAdmin is only for use in PHP applications, or can be used otherwise as well.
Finally, the exercises page could use some help. It seems that there are three large projects offered here, but each one is broken into three smaller exercises. I understand that this helps break down the work, but it can also be disorienting to fish through nine different exercise wondering “Which one should I do?”. Simply dividing up each group of exercises would probably do the trick.
All in all, this was an excellent section of CoreDogs. The “learning” itself was at the seemingly perfect steepness so that this student was never frustrated and actually enjoyed creating the application. Seriously, all textbook should try teaching their concepts in this fashion; it could change the way that we learn.