Application Software Development with Ajax

Teaching with Sakai Innovation Award: 
2008
Award Status: 
Entry

At the end of this course, you will be able to implement a website that reads data from a server in an efficient manner. You will understand the Document Object Model and how to access it using JavaScript. Your JavaScript programs will parse XML data and store objects in JSON. Structured web page development are stressed, including documentation and the separation of form and content. You will develop a web application using an existing framework, and work with a team to complete a real world project.

Course Number/ID: 
COIN 71
Course Length (number of weeks): 
12
Course Delivery Mode: 
In-Class
Average Number of Enrolled Students: 
Between 10 and 30 students
Course Level: 
College/University
Course Contributors: 

Jane Ostrander obtained funding from the National Science Foundation for "Scenario-Based Learning in Technical Education" and designed the companion scenario website at http://elc.fhda.edu/quicksoftAjax/Catherine Ayers helped write the scenario in the form of business memos.Louise Yarnall designed assessment items.

Course Development: 

I have wanted to break away from the traditional lecture format for many years. Becoming the co-principal investigator on this NSF grant gave me the support necessary to actually make the change. My colleagues, mentioned under "Course Contributors", were critical in helping me do this.In "Scenario-Based Learning", the instructor creates an environment for the students that simulates the real world of work. It is widely believed that this type of active, independent learning will enable deeper learning. The concepts that students learn within the scenario will be easier for them to apply since these concepts and skills were learned in the context in which they will be used.In order to create an authentic scenario for the students to work in, I visited software development companies to gather information about how they work. For example, I found that software engineers work in groups and revise their code constantly. When attending a conference on "Web 2.0", I learned about typical projects that today's web developers are working on. This is how I created the Palo Alto Bicycle Club website as the project, and the 4 deliverables as the process used in our course’s scenario.Students working through the scenario must direct their own learning, as is done in industry. I act as their manager, giving them the support as they request it and communicating and enforcing professional standards and behaviors in their work styles. I also bring in volunteers from the local software companies to critique the students’ work.At first I had groups submit their deliverables to me by email, but I found that they invariable forgot to CC: every group member, and I had trouble organizing what was sent to me in my overstuffed inbox. Now that Sakai Discussions allow me to restrict access to a Forum for a specific group, I find it much easier to see where each group is in their submissions, and give timely feedback.

Course Delivery: 

The Announcements tool has been a great place to inform students of local conferences, user groups, and meetings of professional organizations.I bring in many guests from industry to talk to the students. It is sometimes only at the last minute that I can tell the students who is coming and from which company. The Announcements tool allows the students to see who the guest will be, so that they can prepare an appropriate interview question prior to the visit.In scenario-based learning, the students are active, directing their own learning. It is widely believed that students are much more motivated and receptive to new concepts as active learners. A scenario that simulates the workplace also allows students a real world context for their learning, resulting in learning that is easier to apply in the future. Employers are always telling us that they need employees with excellent soft skills, and an authentic scenario will naturally improve the communication and collaboration skills of the students participating.The Discussions tool is vital to making students responsible for their own learning, as there is always a place they can ask their questions and get timely answers. It also allows the faster students a role as tutor, practicing their new knowledge and communication skills by answering other students’ questions in the Discussions. In the software development workplace, coworkers and managers are available to answer questions on a daily basis. The Sakai Discussion tool is a great way to simulate the normal collaboration seen in a full time work group.Discussing technical problems in writing not only helps students learn the content better, but improves the "soft skills" that employers require. This is also how most technical support and community collaboration is done in the real world, so experience using threaded discussions like the Discussions tool is an important skill for these students.Sometimes a guest from industry is not able to attend a face-to-face class, but wants to participate nonetheless. In this case, I give the guest a guest login and they can respond to students' questions and start interesting discussions online.The Discussion tool also allows for easy peer review. After a deliverable is due, I can just open up a group's private forum to the entire class. Students learn a lot by seeing other solutions to the problem they have been working on, and the skill of reviewing other's work is one that is necessary in most jobs. I also believe that students do a better job when they know their work will be scrutinized by their peers.

Communication & Collaboration Self-Assessment: 
Excellent
Communication & Collaboration Evidence: 

The Discussion tool is used to facilitate groupwork and collaboration between students, instructor and guests from industry. Scenario-based learning really requires this technology, since it allows us to simulate a workplace, which has coworkers in pretty much constant contact with each other.

Each week at least one group must present their work in the face-to-face classroom. There is always a guest from industry, who gets to go first in critiqueing the students' work. Then the rest of the class can ask questions and make comments on the presentation. This simulates something called a "code review" in the software development workplace.

At the end of each stage (deliverable) of the project, we have a group discussion of what was learned. Our scenario website:

http://elc.fhda.edu/quicksoftAjax/

has reflection questions that prompt students to think about how they would do things differently next time.

I find that much of the reflection discussion centers on group dynamics. One student admits that she should have checked in on the group's Discussion Forum more often, another says that their group should have appointed a manager, etc.

Learning Material Self-Assessment: 
Excellent
Learning Material Evidence: 

To see how the material is presented to the students, I direct you again to the scenario website:

http://elc.fhda.edu/quicksoftAjax/

Here we describe the scenario through email memos, as they are often communicated in the workplace. Each deliverable is presented in a few different formats, including an overview, a requirements list, an action plan, a checklist for submitting your work, as well as some resources. In this way, we hope that each student can find a description that makes sense to them.

In this scenario, each student group actually determines their own requirements for the project. They must estimate the abilities and time constraints of their group, and commit to a specific set of features that they will implement over the course of the next 4-5 weeks. In this way, groups that have less experience or ability can find a challenging but doable subset of the features that a stronger group might choose to implement.

This mode of delivering the materials gives students a chance to develop managerial skills, both in estimating and managing their own time as well as managing others in their group.

Learning Outcomes & Assessment Self-Assessment: 
Excellent
Learning Outcomes & Assessment Evidence: 

Timely feedback is critical to the learning process. In my class, the students get virtually immediate feedback from myself, experts from industry, and from other students. Some feedback is given online via Sakai, and some of it is given in the form of the presentation/critique activity in the face-to-face classroom.

In their critique, our guests from industry describe how the student deliverable - as demonstrated in the group's presentation - compares to what is expected in the software development industry. Grades are determined based on how well their deliverable meets these industry standards. For example, if a group implements a feature that was not requested by the "client", the group gets marked down because real clients don't want software engineers spending time on unwanted features.

Students always recognize the value of having a diverse skill set in their group; they immediately take inventory of what each group member knows. At the end of the project, I ask each student to say how they would divide up a "bonus" given to them by their manager. In this way, each student must assess for herself how much each member of her group has contributed.

My colleague from SRI, Louise Yarnall, has developed a principled assessment for both formative and summative assessments. This will enable us to see if the students are learning what we hope they are learning. Louise has a volunteer from industry review the assessment to see if it is focusing on useful skills.

Course Look & Feel, Web Usability Self-Assessment: 
Excellent
Course Look & Feel, Web Usability Evidence: 

The content of the course is presented as a scenario on the website:

http://elc.fhda.edu/quicksoftAjax/

Students communicate, collaborate and submit their deliverables using Sakai.

The scenario website is presented as a series of memos from the engineering manager. The student/employees are not given the material needed there, but instead are pointed to resources where they can find the material themselves. This simulates a software engineer's workplace.

The Sakai site for the course, with its organized discussion topics and threads, mimics the way software engineers communicate about problems they encounter in their work. Of course, students not only get the experience of posting their own questions, but also of answering questions that others have posted.

I have not heard the students complain about the difficulty with using two sites for the course, one for content and one for communication.

Learner Support Self-Assessment: 
Excellent
Learner Support Evidence: 

In scenario-based learning, students are independent, active learners, functioning much like interns. For this reason, most of the material in the course is presented to them as resources. Students must actively pursue the resources given to them in order to find the information needed to complete the task.

When students start work in the scenario, I give them an orientation memo that gives tips on working on tasks and working in teams. I also post a document containing advice that students from previous terms have written. Because students are learning "soft skills" through this scenario, I distribute quotes from employers stating the importance of such skills in a new hire. Much of this material is posted in the Resources tool of Sakai.

On the scenario website, each task has a Resources memo that gives hints and links to more information. These references might be about the content or they might be about format. For example, the first task gives the format of a Use Case, and the final task has a link to Presentation Tips.

The Discussions tool allows me and the students to share new tools and techniques as they become available. In the quickly moving field of web application development, this is key to staying up to date.

And finally, the Discussions tool allows students to ask questions in a focused, organized way, see the questions that others have asked, and answer questions 24/7.

Teaching Innovation: 

For the first twenty years of my teaching career, I used the traditional lecture/homework/exam method. Using groupwork and peer review in the classroom seemed logistically difficult if not impossible; community college students have such different schedules and live in such far-flung places that groupwork was prohibitively inconvenient, and peer review would require lots of xeroxing for which I did not have time. But Sakai changed all that, facilitating group collaboration, fast review cycles, and peer review.

Group Collaboration:

When the Discussion tool enabled me to create a Forum that only a specific group could see, the students embraced this as a place for them to post their work and conduct private group discussions. Now groups submit their work to me by way of a Forum created for that purpose. I give them my feedback in a reply to their post. There is also a Forum for each group to discuss their issues privately without me. And I still have a Forum for the class as a whole to discuss each topic publicly. All of these different places for discussion would not have been possible without Sakai.

Fast Review Cycles:

My classes meet face-to-face only once a week. When work was submitted on paper, the students would not get feedback from me until the following week, when the next assignment was already due. Inevitably, the students would make the same mistakes over and over again, much to the chagrin of their instructor! Now I get up the morning after the assignment is due and give feedback to everyone who submitted on time. If a redo is necessary, that "paper" can also be reviewed before the next one is due.

Peer Review:

Students have always been asking to see others' solutions. Doing this in the classroom meant creating lots of copies of student work to pass around. Now I can make the Forum where student groups submit their work available to all, after the due date of course.

These were all things that students were asking for, and learning theory told us was needed, many years ago. Conducting class in this way was just not feasible until Sakai came along.