Site Design


I had another frustrating experience today, but I learned a lot. Again, ASP is easy to use if you want to do it a certain way… it can be a bit of a pain to figure out how to do things another way.

Anyhow, the story was to implement a navigation menu, which intelligently only showed the appropriate menu items to users in particular roles. For example, only admins should see certain pages, such as create class and create new user.

The concept was pretty simple, but it wasn’t as easy as I expected. First, I had to create a sitemap XML file for the site, which tells ASP how the pages map out. I wanted a top-level menu with Home, My Account, and Admin menu items. It wouldn’t let me, because it needed a root node.

So I put a root above everything, but when I used the sitemap as a data source for an ASP menu (which shows a dynamic menu), it showed the Root as the top level. I didn’t want this to appear at all. After fighting awhile with ASP by removing the node, or by trying to see how the menu could start from the second level, I finally found the answer online, which was that when the datasource was configured for the sitemap, there is a “skip root node” option. It was a really simple fix, but it just took an excruciating amount of time to find.

Setting up the role-based visibility of menu items was a little harder to implement, but at least all the information on how to do it wasn’t too hard to find. Turns out you need to change things in three places — 2 different sections in the web.config file, and in the sitemap file.

Right now, I don’t have any Teacher-specific pages, so you can only see how the view is different between a student’s navigation menu:

Student Menu

And an admin’s navigation menu: (The greened menu signifies what page you are currently on.)

Admin Menu

As always, excuse the ugliness until the UI revamp. It works, though.

The purpose of this story is to unify all the pages created so far under one template, so that common areas don’t have to be duplicated across all the pages and can be edited one time. ASP.NET provides a nice facility called Master Pages, which involves setting up a page that serves as a template, with specific content areas that are customizable in each page. Then, all the pages need to inherit from this master page, and put their custom content in special tags which delineate the custom sections specified in the master page.

It’s not very mind blowing, but it’s very effective and useful. I didn’t run into any problems doing this — it just was a bit of manual editing that needed to be done after I made a basic template.

Master Page

Keep in mind that the template is not really designed to look very good at this point — I just wanted placeholders for a header, navigation, primary content, secondary content, and footer. I’d like the navigation to be determined in the master page by determining the user role(s), so the only sections that should more or less be the same across all pages are the header and footer.

This will make it easier later on when I really try to do something with the UI, and it was good to do this early on rather than after I had 20-30 pages created already.

I used to be really big on writing detailed specifications upfront when designing and writing software. It makes logical sense — the more detailed and specific the requirements are, the easier it is to write code exactly with the big picture in mind.

The problem is that this rarely holds true in the real world for complex problems, especially those in a domain that isn’t well-defined and clean cut. The reality is that the vision and direction of a software project changes frequently in both major and minor ways throughout the course of a project. It doesn’t mean that specifications are worthless — just that there isn’t a huge payoff in thinking out every last detail and dreaming up every scenario that the user might face very early in the project, because things are likely to change.

Along those lines, I’ve seen a different sort of specifications in some projects whose purpose is to informally layout a “projected vision” of what the software will do. Some practitioners talk about the idea of “user stories” — telling the story of a user using the software in a real-life situation, and thus anticipating some of the major aspects of the necessary interactions the user has with the software, as authentically contextualized as possible. I’m going to take a similar approach in thinking out how the idea of mastery will be implemented in the system I’m proposing. This “user story specs” will serve as a guide for my eventual software design.

Note: I don’t yet have an official name for the software I’m writing, so for the purposes of these user stories, I’m just referring to it as CWBI.

Ronnie – Instructor

Ronnie is a high school physics teacher in China. He has 2 sections of about 50 students each. Ronnie has been using CWBI software with his students to supplement his instruction since the beginning of the year. Earlier, Ronnie had divided his class randomly into “study groups” of 10 students; so 5 study groups per section. He set up a course and added all of his students to the course, dividing them into their respective study groups.

Ronnie now wants teach a module on kinematics. This module consists of 3 main parts — motion in 1D, vectors, and motion in a plane — with each part taking approximately 3 weeks to complete. In CWBI, he creates a new module, and adds these 3 instructional units from the available supplements provided by CWBI. For each unit, he sets the start date and end date for the unit, as well as a midpoint cutoff date when the 1st assessment in Bloom’s mastery learning model will be taken. Ronnie usually sets the cutoff at 2 weeks, leaving 1 week between the 1st and 2nd assessments. Ronnie also sets his definition of “mastery” by specifying the percentages of problems in each difficulty level that students must answer correctly.

The kinematics module starts, and Ronnie conducts his teaching as usual in the classroom. Ronnie does not give homework to his students; rather, each student is expected to log hours on CWBI to run through practice problems. CWBI provides Ronnie with statistics on the number of practice problems his students perform. Although he does not factor this number into his grading, it enables him to intervene for some students who may be procrastinating, or may be experiencing difficulties. He is also able to view quickly how many of his students are approaching mastery.

As the cutoff date approaches, Ronnie starts to get a sense of how much of his class is understanding the material, and he is able to spend more time on concepts that students seem to be having difficulty on. The cutoff day has finally arrived, and Ronnie’s students take a proctored assessment in the computer lab through CWBI. Ronnie locks the practice problem area for the duration of the assessment. At the end of the assessment, Ronnie looks up the scores in CWBI. Ronnie teaches a challenging class, and as expected, only about 40% of his class achieves mastery at the first assessment. At this point, Ronnie switches gears, and spends most of class time in the computer lab. The 40% of the class who achieve mastery now are peer tutors, helping the students in their study group to understanding the material. The 1 week passes quickly, but by the end, 90% of the class have achieved mastery.

Freda – Student

Freda is a 2nd year high school student in China (US equivalent 11th grade), taking physics from Ronnie. This is Freda’s first course that is supplemented by a web-based instructional tool, but she is looking forward to the time on the computer, as she uses it for chatting with friends online frequently. Freda goes to class and begins a unit in 1D motion, the first part in a larger series of unit in the kinematics module.

Freda listens to Ronnie’s lecture, and reads in her textbook about 1D motion. When she starts getting a feel for what she needs to know, she logs onto CWBI and selects her course and current instructional unit. Noting what kind of performance she needs to achieve mastery as defined by her teacher, she goes to the practice problem area, and tries her hand at several problems. The first few problems are relatively easy, but she stumbles on a few. Looking at her progress, she knows that she is not yet at a mastery level. She has some difficulties with understanding the difference between acceleration and velocity, so she asks some of her fellow students online. Freda is able to understand a few things, but there are some areas which she needs more help in, so the next day, she goes to Ronnie’s office for some help.

After talking with Ronnie, Freda is much more confident on being able to solve the problems she earlier had difficulty on, so she goes back to the practice problem area. This time, she gets many more answers correctly, and is able to build her confidence by going through a variety of problems. She notices that according to CWBI’s projection, her latest session indicates that she should achieve mastery were she given an assessment. Freda is in luck, because the 1st assessment cutoff happens to be the very next day. Freda passes with flying colors, and as such, is now given the task of helping other students in her study group to achieve mastery themselves. The degree to which her study group is able to achieve mastery is part of her grade, so she has extra motivation to help, and she also has plenty of time to do so, now that classroom time has moved to the lab.

To Freda’s delight, 9 out of 10 members of her study group achieve mastery level by the end of the instructional unit. She is also looking forward to the next unit, as she has already read a little about it in her textbook, and has started doing practice problems ahead of time.

Here are paper prototypes of the main pages listed in the sitemap. I’m not artistically gifted, but this was a quick way of visualizing an end goal. One thing I’m realizing already is that the “smiley face” convention may not be the best one for indicating progress. Among other things, it may not have the same connotation in different cultures. Anyhow, I can’t think of a compelling alternative at the moment, so it will stay until I do.


Login 

Login


My Profile

My Profile 


My Classes

My Classes


Class Home Page

Class Page (Physics)


My Study Group

My Study Group


Unit Practice Page

Unit Practice

Here is a draft sitemap for the China WBI project. I don’t have an official name for the project yet, so it’s “China WBI” until I have that name.

China WBI Sitemap v1.0

One issue becomes obvious when visualizing the sitemap — to do practice drills of a particular unit, or to take a test on a unit, you have to go down to a depth of 4 levels, which is not terrible, but can get a little irking after a few times. (Incidentally, this is one of the things that irks me about WebCT).

One of the ways we can collapse the tree is to provide quick links on the My Classes page (which is the page that the user should get to after logging in). These quick links could have direct links to the last unit the student is working on, and since each unit has the same structure with both practice and test pages, the direct link to the currently working unit can be immediately followed by links to its practice and test pages.