Docstoc

Lessons

Document Sample
Lessons Powered By Docstoc
					                                     Lessons Learned Teaching
                                     Introductory Programming
                                     In a Laptop Studio Course
                                                         David L. Spooner
                                                          Computer Science
                                                    Rensselaer Polytechnic Institute
                                                        Troy, New York 12180
                                                          +1 (518) 276-6890
                                                      spoonerd@cs.rpi.edu

ABSTRACT                                                              In the studio course model, rather than having different types of
                                                                      classes (e.g., lectures, recitations, and labs), there is one type of
A studio course at Rensselaer is a course that combines lecture,      class called a studio that combines all these activities [1]. A
recitation and labs into one class meeting. Rensselaer has been       typical studio may begin with a short lecture to introduce new
developing this style of teaching for many years and it is used       topics. This is followed by individual or small group exercises in
widely across the campus, including in many Computer Science          which the students explore the topic of the day in more detail.
courses [1]. New this past year is the introduction of student        The instructor and teaching assistants circulate around the room
owned laptop computing, which is driving a change from UNIX           answering questions and helping students or groups having
workstations to mobile computing as the platform for educational      trouble with a concept. Afterwards, the class may come together
computing at Rensselaer.                                              as a whole again to discuss what was learned in the exercises.
A pilot version of an introductory programming course using a         This process may be repeated more than once in a typical studio.
laptop studio class model was offered as an experiment in the Fall    A four-credit studio course typically meets twice a week for two
semester of 1998. Several important lessons about organizing and      hours each meeting.
teaching such a course were learned in the process. The goal of       A second change in the Algorithms and Programming course was
this paper is to present these lessons so that others might benefit   the use of laptop computers as the basic form of computing for the
from them. The lessons range from organizational issues to in         course. Starting with the Fall 1999 semester, Rensselaer requires
class and out of class operational issues.                            that all freshmen have laptop computers. Over the next four years
                                                                      this policy will expand so that all undergraduates have laptop
Keywords                                                              computers. In the Fall 1998 semester, Rensselaer recommended
                                                                      but did not require freshmen to have laptop computers.
Studio course, laptop computers, introductory programming             Nevertheless, the Algorithms and Programming course was
course, group learning.                                               designed to use laptop computers under the assumption that many
                                                                      of the IT majors would choose to have them.
                                                                      As a result of these changes, the pilot offering of Algorithms and
1. INTRODUCTION                                                       Programming in the Fall 1998 semester was different from all
As part of its new Bachelor of Science degree program in
                                                                      other introductory programming courses taught at Rensselaer in
Information Technology [2], Rensselaer offered a new
                                                                      two important ways. These differences required fundamental
introductory programming course named Algorithms and
                                                                      revisions to the course. These revisions were successful to
Programming in the Fall 1998 semester. This course was similar
                                                                      varying degrees. The purpose of this paper is to report the lessons
in content to the Computer Science I course taught in the
                                                                      learned from making these revisions. In hindsight, many of the
Computer Science Department. However, it was taught using a
                                                                      lessons are now obvious. At the time the course was designed and
studio course model rather than the more traditional lecture/lab
                                                                      offered, however, they were not. Therefore, they may be useful to
                                                                      others making similar revisions is introductory programming
                                                                      courses.
                                                                      The next section describes the Algorithms and Programming
                                                                      course in more detail to establish the organization and content of
                                                                      the course. The following sections identify and discuss the
                                                                      lessons learned. The final section discusses some of the
                                                                      advantages of the laptop studio model and changes that will be
                                                                      made in future offerings of the Algorithms and Programming
                                                                      course.


course model used in Computer Science I.
2. ALGORITHMS & PROGRAMMING                                              not to install a C++ compiler on their laptops. Hence, there was
The Algorithms and Programming course is taken by first-term             one laptop computer available for studio exercises for every four
freshmen IT majors. Its goal is to teach basic algorithmic design        students. This meant that the group size had to be at least four
and programming skills. The language used is C++. However,               students.
students do not learn to design and implement their own classes.         This group size was too large. Four people cannot see the screen
This is left for the second course. Students do use objects created      of a laptop computer simultaneously for extended periods of time.
by others. In the Fall 1998 semester, 45 students took the course.       As a result, one or more of the group members was uninvolved in
A typical class began with a 45-minute lecture to introduce a new        the group activities and received little or no benefit from the
topic. This was followed by a series of exercises done in small          exercises. As might be expected, it was usually the weaker
groups of four students each. These exercises were intended to           students who were uninvolved and this showed up in exam scores.
take the remaining 65 minutes of class. Most exercises were of           In future years, all students will have laptop computers and all
the form:                                                                will have Visual C++ installed. As a result the need for larger
      Finish a given program to ...                                     groups will disappear. However, it is clear from this experience
                                                                         that when laptop computers are involved in group studio
      Modify a given program to ...                                     exercises, the groups must be kept to two or three in size. If
      Write a program to ...                                            external monitors or projection systems for the laptops are
                                                                         available (as they are in some of our classrooms) then larger
As an example, one studio class was devoted to introducing the           groups may be acceptable.
concept of iteration. The lecture motivates the need for iteration,
shows the syntax for expressing iterations, and provides several
examples of using iteration. As an exercise following the lecture,
the students are given the program show in Figure 1. This                4. LESSON 2 -- GROUP WORK
program was taken from the textbook, An Introduction to                  Not all students want to work in groups. When such a student has
Programming: An Object-Oriented Approach with C++, by Wu                 his or her own laptop computer, the student may want to work on
and Norman [4], which was used in the course. It draws a                 his or her own. This is especially true if the student becomes
pinwheel in a graphics window. The students are asked to modify          frustrated with the progress of the group or with other members of
the program so that it draws other shapes such as an eight-sided         the group.
spiral, a square spiral, and a circle. In doing this, the students are   The course instructor must decide ahead of time if this is
allowed to change only the two lines shown in bold. In the               acceptable. A group member leaving the group to work alone can
process they must think about iteration, how it works, and how to        have a negative impact on the group and/or on the student who
express it in a programming language such as C++. Interesting-           leaves. Strong evidence of both situations was observed in the
looking shapes reward the students when they succeed.                    course.
As mentioned above, a number of lessons were learned in                  Students who leave a group also do not get a chance to develop
teaching the Algorithms and Programming course as a studio               their communication and leadership skills and their skills for
course using laptop computers. These lessons are presented next.         working with others. These are important skills to learn for future
                                                                         careers and are part of the motivation for studio group activities.
                                                                         For all these reasons, allowing students to work on their own
3. LESSON 1 -- SMALL GROUPS                                              outside of groups is often undesirable. However, there may be
Since Rensselaer was only recommending that freshmen have                special circumstances that require it from time to time.
laptop computers for the Fall 1998 semester, only about a third of
the students in the class had them. Some of these students chose
                                                                         5. LESSON 3 -- BE PREPARED
 // Program to Draw a Pinwheel                                           The Algorithms and Programming class was taught in a laptop
                                                                         studio classroom with a power plug and an Internet port at each
 #include "Turtles.h"                                                    seat. As a result, students can retrieve any files or other resources
                                                                         that are needed for a studio exercise from the course home page
 void main( )
                                                                         using the web.
 {
      Turtle            myTurtle;                                        However, in many classes there were one or two students who:
      int               count;                                              forget to bring their network cable
         myTurtle.Init(150, 300);                                           forget to bring their network card
         for (count=1; count<=50; count=count+1){                           had a malfunctioning network card
              myTurtle.Move(300);
              myTurtle.Turn(110);                                           had the networking software misconfigured
         }                                                                  and so on.
          myTurtle.Done();
 }                                                                       Any of these things prevents the student from gaining access to
                                                                         what is required to do the studio exercises.

           Figure 1: Pinwheel Program taken from [4].
It quickly become clear that the instructor should take all required   which they are done. Perhaps the best solution is to use a web-
resources to class on floppy disks so that students who are unable     based course management system such as WebCT [3] that lets the
to get access via the web can copy the required resources from the     instructor set intervals during which a page is accessible on the
floppy disks. This does not solve all problems. For example, if        web. This allows the studio exercises to be placed on the web at
the exercise requires live browsing of the web, a backup floppy is     the instructor's convenience, but does not allow student access
not useful. However, it solved many of the day-to-day problems         until the appropriate time.
encountered in the course.

                                                                       8. LESSON 6 -- EMAIL ATTACHMENTS
6. LESSON 4 -- LAPTOP DISTRACTIONS                                     In general, electronic mail and mail attachments are useful for
Laptop computers are a distraction when they are not needed such       communicating with students, particularly outside of office hours.
as during lectures and discussions. If laptops are open and            However, with the recent proliferation of email client tools and
operating during these times, some students will:                      their ability to attach files to email messages, a new problem is
                                                                       arising. This problem is amplified when students have laptop
   browse the web
                                                                       computers and hence access to these email tools any time from
   work on other projects                                             nearly anywhere.
   play games                                                         The problem is that it has become too easy for a student with a
   draw other students’ attention away from class.                    program that doesn't work to simply email it as an attachment to
                                                                       the course instructor with the brief message, "Why doesn't this
The last of these points is the most important one. When the           work?" The course instructor then finds himself or herself
activities of one student begin to affect other students and the       spending much too much time debugging these programs for the
class as a whole, something must be done to stop it.                   students.
The initial reaction was to make a course policy that says laptop      This is not good for the students in the long run. If the instructor
computers should remain closed except when needed during               debugs the program while the student is not present, it is likely
studio exercises. However, this is not always a good policy.           that the student never learns why the program doesn't work. The
Some students may want to use the laptop for taking notes or to        student simply makes the changes suggested by the instructor.
follow along in the course lecture notes, which are on line. These     Just as importantly, the student doesn't learn how to debug and
activities are part of the motivation for requiring all students to    test programs. This seems to be one of the biggest weaknesses of
have laptop computers in the first place, so that they are always      our students today. We should be putting more emphasis on
available to be used as a tool.                                        developing debugging and testing skills, not less.
There is not an obvious way to resolve this dilemma. It may need       Consequently, the obvious thing to do is to refuse such requests in
to be dealt with on an individual basis. Keeping students actively     email messages. However, this is not always a good policy either.
engaged in the course activities may be the best way to avoid this     If a student is genuinely stuck on a problem and a few helpful
problem. This is not always easy given the broad range of              hints will allow the student to make progress and avoid escalating
backgrounds and experiences of the students in a typical               levels of frustration, then it is almost always worthwhile doing so.
introductory programming course.
                                                                       Thus, it is difficult to establish a simple and consistent policy on
                                                                       dealing with email attachments with requests similar to, "Why
                                                                       doesn't this work?" Again, whether to respond or not depends on
7. LESSON 5 -- WEB-BASED STUDIOS                                       the circumstances.
An unexpected problem resulted from placing the studio exercise
write-ups on the course web page. This was done both so that the       To address this issue in the course in the future, we intend to put
entire course was available on the web as well as to allow students    much greater emphasis on developing strong debugging and
who missed a class to gain access to the studio exercises that they    testing skills in the students. We will do this by using the Visual
missed.                                                                C++ graphical debugger from day one to observe programs as
                                                                       they execute (even when they execute correctly) and to diagnose
One group was finishing the studio exercises very quickly, which       what is wrong when they execute incorrectly. In most cases,
was inconsistent with the fact that the group contained some of        when requests to debug programs come via email, we will try to
the weaker students in the class, plus one stronger student. Many      give the students some suggestions for how to use the debugger to
weeks into the semester it was discovered that the one strong          find the problems themselves. When students come to the
student in the group was accessing the studio exercise write-up        instructor's office with similar questions, we will work with them
early and finishing most of the work himself. When the group got       using the debugger to find the problems.
together in class they had only to put on the finishing touches and
deal with any changes or additions that were made to the exercises
in class. This allowed them to finish quickly, but only the strong
student received any benefit from having done the exercises. The       9. BENEFITS OF LAPTOP COMPUTERS
weaker students in the group learned little. This showed up            While most of this paper has been about the problems
clearly in exams.                                                      encountered in using laptop computers in a studio class on
                                                                       introductory programming, there are many benefits to the laptop
The obvious solution to this problem is to not publish the studio      computers as well. And these benefits clearly outweigh the
exercises on the web. However, this is overreacting. A better          negative aspects of these problems.
solution is to wait to put them on the web until after the class in
Specific benefits of the use of laptop computers include the              indicates that he or she wants to use it to take notes or follow
following:                                                                the lecture on line.
   When students have questions or problems with a program,             We intend to make the studio exercises more challenging and
    they bring their laptop to the instructor's office so that the        encourage students to finish the studio exercises in their
    instructor can work with the students to answer questions or          groups after class if they are not completed in class. To
    resolve problems. Without laptops, the instructor must try to         motivate this, grades will depend on completing the
    recreate the problem on his or her office computer.                   exercises, which will be due at the beginning of the
    Similarly, the student must try to recreate the solution              following class. Other studio courses at Rensselaer have
    discovered using the instructor's office computer on the              adopted this policy and it seems to work well.
    computer the student uses in his or her dorm room or in a
                                                                         We intend to end each class with a discussion of what was
    computer lab. If the problems and solutions are not recreated
                                                                          learned from the studio exercises. This provides a degree of
    exactly, learning can be diminished.
                                                                          closure for each topic that was not achieved in the first
   Sometimes a group may not complete the studio exercises by            version of the course when this was not done.
    the end of a class. Since the group is working on a laptop
                                                                         We intend to eliminate most debugging of programs sent as
    computer, it is easy to take the partially completed work with
                                                                          email attachments. We feel it is better to do this with the
    them and finish later. The students can work anywhere any
                                                                          student so that the student understands the debugging
    time to finish up the exercises. Everything that is needed is
                                                                          process. As discussed above we intend to put more emphasis
    on the laptop computer.
                                                                          on debugging so that students are better able to do this
   Students become more comfortable working with computers               themselves.
    more quickly since they use the laptops all the time for a        The laptop studio model offers many advantages for an
    variety of activities. The laptop computer becomes a day-to-      introductory programming course. Students receive hands-on
    day tool, which is one of the motivations for requiring laptop    experience with concepts as they are introduced, leading to a more
    computers in the first place.                                     integrated course organization. As indicated above, the approach
   Students can access class notes and other materials while         is not without its problems, however. In general these problems
    working on the studio exercises, since all this material is       are minor and with a little anticipation are easily resolved. We
    available on the web. During the studio exercises in the pilot    feel that the advantages far outweigh the problems and intend to
    offering of the course, it was common to see a group of           continue developing this style of class for our introductory
    students search the on-line lecture notes for help in             programming classes.
    completing some activity. Given the proliferation of network
    connections around the campus, the laptop computer
    becomes a valuable tool for study and research.                   11. REFERENCES
                                                                      [1] Arenson, K. Rensselaer Institute Tries Teaching Innovations.
                                                                          New York Times, October 8, 1996.
10. FUTURE PLANS                                                      [2] Spooner, D. A Bachelor of Science in Information
The pilot version of the Algorithms and Programming course was            Technology: An Interdisciplinary Approach. Submitted for
successful and received positive feedback from students at the end        publication, 1999.
of the course. However, in light of the lessons learned above,
several changes are anticipated for future offerings of the course.   [3] World Wide Web Course Tools, WebCT Home Page.
Some of these changes are outlined below.                                 http://www.webct.com/webct/.

   As a result of lesson 1, smaller groups of two or three           [4] Wu, C.T., Norman, T.A. An Introduction to Programming:
    students each will be used for most studio exercises.                 An Object-Oriented Approach with C++. WCB/McGraw-
                                                                          Hill, Boston, MA., 1998.
   Based on lesson 4, we will insist that laptop computers be
    closed during lectures and discussions, unless a student