Skip to main content

A process for teaching a peer taught online course

Sometime back I wrote a blog on the motivation for conducting online, peer taught courses, and the kind of infrastructure such a course would need.

Once we have the basic infrastructure in place, it may be useful to define a simple process or a set of guidelines for students as well as mentors to help them as they proceed with the course.

It is very important to explain the learning methodology and it's benefits to the students and mentors. The students must understand right at the beginning that learning that is spoon fed is the most ineffective way of learning. The core process that they are to follow is learning by doing, and participating with other students, mentors, and practitioners. Traditional lectures would also be needed, but their purpose should be to introduce students to the topics and show them how to build on the knowledge by practicing and participating. The mentors should interact with the students through lectures, online groups, and blogs. The participation will primarily be to help them clarify doubts and to give them direction, and next steps.

The mentors must also understand that their role is to facilitate learning and not just lecturing. Students need help with next steps, and the faculty must help them by directing to the next task, or next learning item, so that they can discover and construct knowledge themselves. As the students proceed they will have a lot of doubts. The mentors must also help students by solving their doubts. The entire course should be structured as an ongoing conversation that leads to learning and greater clarity. The students must learn by enculturation. They must be encouraged to learn to be software developers rather than learn about software development. This will happen best if the entire focus of the course is programming and participation.

Students can be graded for their knowledge and participation. Grades can be given for project work, and participation (by posting questions, answers, and blog entries), and a theory paper. A possible breakdown for grading can be 40% for projects, 20% for participation, and 40% for theory. Grading for participation and the project should be given on an ongoing basis. So completing work in a timely manner and participating frequently will earn more grades than completing all the assignments in the last week.

To support this process, each student will have to have a blog which they will utilize as a learning journal to report their learning, their perspectives, and project progress. The course will also have a class blog where the mentors will publish slides, links to resources, and keep students on the same page. The students will also have access to a newsgroup where they can ask and answer questions. Often it may be possible to supplement the material with screencasts and podcasts prepared by the faculty.

It would help if the course begins with the faculty explaining competencies that the students are expected to gain in the duration of the course, along with the grading scheme, and various forms of collaboration available to the students. All of these details may also be listed on the class blog (or a Moodle course page) which is open to all the students for viewing and commenting.

A list of projects can be published at the begining of the course. The projects may be implemented in a language of the students choice. Each project can be broken down into small milestones, such that each milestone can be completed in a week or two. Each platform language/platform can have a panel of mentors for supporting the students learning and interactions.

It is also possible to define a simple process for teaching and assisting with the interactions and practice. Let's discuss that in the next post.

Note: This text was originally posted on my earlier blog at
Here are the comments from the original post

AUTHOR: Harshal
DATE: 07/05/2007 07:45:03 AM
Hey Parag, Very interesting concept. Let us discuss more in this in the bar camp at persistent if you are planning to visit.



Popular posts from this blog

My HSQLDB schema inspection story

This is a simple story of my need to inspect the schema of an HSQLDB database for a participar FOREIGN KEY, and the interesting things I had to do to actually inspect it. I am using an HSQLDB 1.8 database in one of my web applications. The application has been developed using the Play framework , which by default uses JPA and Hibernate . A few days back, I wanted to inspect the schema which Hibernate had created for one of my model objects. I started the HSQLDB database on my local machine, and then started the database manager with the following command java -cp ./hsqldb- org.hsqldb.util.DatabaseManagerSwing When I tried the view the schema of my table, it showed me the columns and column types on that table, but it did not show me columns were FOREIGN KEYs. Image 1: Table schema as shown by HSQLDB's database manager I decided to search on StackOverflow and find out how I could view the full schema of the table in question. I got a few hints, and they all pointed to

Fuctional Programming Principles in Scala - Getting Started

Sometime back I registered for the Functional Programming Principles in Scala , on Coursera. I have been meaning to learn Scala from a while, but have been putting it on the back burner because of other commitments. But  when I saw this course being offered by Martin Odersky, on Coursera , I just had to enroll in it. This course is a 7 week course. I will blog my learning experience and notes here for the next seven weeks (well actually six, since the course started on Sept 18th). The first step was to install the required tools: JDK - Since this is my work machine, I already have a couple of JDK's installed SBT - SBT is the Scala Build Tool. Even though I have not looked into it in detail, it seems like a replacement for Maven. I am sure we will use it for several things, however upto now I only know about two uses for it - to submit assignments (which must be a feature added by the course team), and to start the Scala console. Installed sbt from here , and added the path

Five Reasons Why Your Product Needs an Awesome User Guide

Photo Credit: Peter Merholz ( Creative Commons 2.0 SA License ) A user guide is essentially a book-length document containing instructions for installing, using or troubleshooting a hardware or software product. A user guide can be very brief - for example, only 10 or 20 pages or it can be a full-length book of 200 pages or more. -- As engineers, we give a lot of importance to product design, architecture, code quality, and UX. However, when it comes to the user manual, we often only manage to pay lip service. This is not good. A usable manual is as important as usable software because it is the first line of help for the user and the first line of customer service for the organization. Any organization that prides itself on great customer service must have an awesome user manual for the product. In the spirit of listicles - here are at least five reasons why you should have an awesome user manual! Enhance User Satisfaction In my fourteen years as a