Proposal for ACS Teaching with Technology Fellowship

Web-Based, Instructor-Annotated Examples

Hypothesis:

Student learning in introductory Computer Science courses can be improved by providing a Web-based technique for presenting example programs annotated with specific instructor comments. To enhance learning, the example programs are displayed in their correct format and the student actively requests the display of the instructor's comments.

Background:

In introductory Computer Science (CS) courses, I use the technique of code "walk-throughs" to help students grasp specific programming design features, language syntax, and style. A code "walk-through" consists of displaying, with an overhead projector, a computer program’s source listing taken from the course’s text and discussing its important features with the class. Code walk-throughs are a standard industry technique used to both evaluate new programs and to help new software developers understand the style and designs used by the senior developers. [BEI 96]

Working through a program's source listing while asking questions of the class (as well as fielding questions from them), creates a dynamic, informal, and non-threatening environment in the classroom. The code "walk-throughs" help focus the students' attention on the specific software topic of the day and demonstrate how to implement the software language’s features or program design techniques. I always use program listings that are in the course's text so the students can annotate their copy as we discuss the example. However, if the student fails to comprehend specific points I make about the example code, then a learning opportunity is missed. This can frequently happen with introductory students due to the new terminology being introduced (i.e, they haven't prepared sufficiently for class and the class discussion is their first introduction to the topic).

If the student does not completely follow the code "walk-through", then he/she has to try to understand and interpret the code example, as well as the programming topic, by himself/herself with only his/her text and poor or incomplete notes as guidance. Most authors of CS texts do not provide exhaustive comments for their example code listings. Yet for beginning CS students, understanding what every statement (line) in an example program will do, or why a set of statements is structured a particular way, is critical to their learning the particular programming language as well as understanding and adopting proper programming style and design.

It is now recognized that students "learn" course material outside of the classroom [DAV 94, WAL 98]. Also, most students are more engaged in the learning process when they are actively doing something instead of just reading text - the concept of active learning [DAV 94, REI 97]. To assist my CS students learn actively outside the classroom, I need a method to allow them to repetitively review and study the example source listings with my comments.

An obvious approach is to provide this material on the Web. However, just converting a program's source listing to HTML will not greatly aid students for at least three reasons. First, the format and layout of a computer program's source listing aids in the human reading of the code. Unfortunately most conversions from text to HTML lose the critical format structure of the source code. Secondly, putting the example source listings from the text on to the Web provides students nothing more than another block of text to read. The only active part is moving the scroll bar. Finally, the instructor's comments and annotations that highlight and explain specific features in the code are not available to the student for his/her use while studying.

Research Focus:

The focus of my research is to develop a technique to post pages to a course's web site that present the example listings in the correct format. These listings would be annotated with detailed instructor comments that the student may view only by clicking on a button or answering a brief question about the code. The research would examine whether students would use and learn from this type of material available to them outside of class. My initial hypothesis is that providing a means to repetitively review example programs, with annotated comments explaining the details of the how the code is structured or designed, will improve the students' skills and knowledge of the programming language.

A critical issue of this work is to develop a web page format that will both preserve the unique format of a computer program's source listing (a listing's structure and use of white space is critical to its readability) and still allow for the insertion of the active devices that the student would use to access the instructor's comments. I have developed a trial version of my initial technique which can be viewed at URL (www.rollins.ed/cms/CMS/rjames/167e131/167e131.html ) .

Technical Approach:

Web pages can be constructed to be "dynamic" in response to user actions. Button images can be added to a page that, when clicked on by the user, open a new browser window. The size of the new window can be specifically set so that it is reduced in size compared to the initial browser window. Another dynamic device on a web page can be the use of text boxes or selection buttons that the user completes or checks and then submits to the server. Dependent on what the user entered or selected, a new browser window opens. Both techniques provide the common graphical user interface technique of a "pop-up" window.

In the "pop-up" window, opened in response to the user's action(s), new information is presented. By keeping the "pop-up" window small, the user can see both the information on the original web page as well as the additional information in the new window. When the user is finished with the information in the "pop-up" window, they close the window and return their focus to the original web page.

This web page development technique can be applied to the presentation of example code listings with the instructor's comments embedded in the "pop-up" windows that appear only when the student requests the help. The "pop-up" windows can be individually sized to be just large enough for the student to see all the instructor's comments without having to scroll. The "pop-up" windows can be moved around the screen to allow the student to see the lines of code in the example that the instructor's comments are referencing.

This web page technique gives the student an opportunity to repetitively review the example listing as well as actively decide if they need to see the instructor's comments or not. As the student's programming skills increase, he/she may not wish to review all comments for a particular program. Or, in examples where a particular programming language feature is the major focus of the lesson, only the part of the program using the new feature will have the instructor's comments available.

The web pages containing the annotated example listings will be posted to a course's web site to keep pace with the classroom code "walk-throughs" and the reading assignments from the text. As the course progresses, the students will have the benefit of being able to go back and review any previous annotated listings. The instructor can also go back and revise or add to the annotated comments to highlight features in the example programs students are still using incorrectly in their lab and programming assignments. While studying the text, the students will have the capability to actively review the text's examples with the instructor's comments available. It is hypothesized that this will occur when the student has reached a "teaching opportunity".

Another benefit of this web presentation methodology is that the set of annotated code examples for an entire course can be indexed. Then, students in future courses that need to review a particular language feature or style can use the index to quickly locate an annotated example that covers their need.

Assessment:

The web presentation technique described in this proposal has been minimally used during the current (Fall ’99) term in our Introduction to Computing course, CMS 167. If this proposal is accepted, the web pages with annotated example computer program source listing will be developed next summer and then used during the conduct of CMS 167 in the Fall ’00 term. A review of students’ work during the conduct of the course in the Fall ’98 and Fall ’99 terms will be made to identify the specific topic areas that cause students the most trouble. At the completion of the course in the Fall ’00 term during which the web presentation of the annotated programs will be used, a comparison of student performance for the difficult topics will be made. It is hypothesized that student performance will be enhanced — and the only thing different will be the use of the web presentation technique described in this proposal.

In addition to the performance comparison described above, a survey instrument will be prepared and administered to the Fall ’00 students to elicit how they used and felt about the new learning technique. Based on the performance comparison and the survey, a determination will be made to continue or discontinue this web based technique; and, if continuing, how improvements can be made.

Technology Transfer:

The presentation of the example code listings in their original format on any user's browser or screen resolution necessitates the use of some complex web page formatting techniques. In addition, the technique for including the "pop-up" windows could be considered difficult by instructors not familiar with certain HTML coding techniques. To ease the burden on the instructor, I also plan on developing a software program that will take a Word file and produce the annotated web page. Special character tags will be used to identify the parts of the Word file that are the instructor's comments that should appear in the "pop-up" windows. The new software program will then build both the initial web page with proper formatting as well as all the comment pages that "pop-up". The new software tool will allow this learning technique to be easily used by my colleagues here at Rollins and at other ACS institutions.

If the teaching technique is successful and the software tool can be developed, this technology can be applied to any course that uses an instructor's annotated examples as a teaching method. Mathematical proofs, chemical analyses, foreign language translation (most students feel programming languages are foreign), and literature passages are just a few of the possible applications for this technology. Critical to its acceptance by other disciplines is the software tool that minimizes the web page development burden on other instructors.

Institutional Support:

My current level of technology support at Rollins is sufficient for the research described in this proposal. I currently have a Web Editor, Java compilers, and access to the Web as well as access to the Rollins Web Servers. I will stay current with the capabilities at the ACS Technology Center to see if any may support this research. I do not feel at this time that any additional resources are required.

References:

BEI 96 Beizer, Boris, Software System Testing and Quality Assurance, International Thomson Computer Press, Boston, MA., 1996

DAV 96 Davidson, Cliff I. and Susan A. Ambrose, The New Professor's Handbook, Anker Publishing Company, Bolton, MA., 1994

REI 97 Reis, Richard M., Tomorrow's Professor: Preparing for Academic Careers in Science and Engineering, IEEE Press, Piscataway, NJ., 1997

WAL 98 Walvoord, Barbara E. and Virginia Johnson Anderson, Effective Grading: A Tool for Learning and Assessment, Jossey-Bass Publishers, San Francisco, CA., 1998