BRIDGING THE GAP BETWEEN COMPUTER LITERACY AND COMPUTER SCIENCE

BRIDGING THE GAP BETWEEN COMPUTER LITERACY AND COMPUTER SCIENCE Ken Abernethy Kevin Treu Robert Shive Millsaps College Dept. of Mathematics and Compu...
Author: Clare Norman
0 downloads 2 Views 123KB Size
BRIDGING THE GAP BETWEEN COMPUTER LITERACY AND COMPUTER SCIENCE Ken Abernethy Kevin Treu

Robert Shive Millsaps College Dept. of Mathematics and Computer Science Jackson, MS, 39210 USA [email protected]

Furman University Dept. of Computer Science Greenville, SC 29613, USA [email protected] [email protected]

ABSTRACT

representative textbooks for this course).

Most colleges and universities offer an introductory computing course focusing on the general use of computers for high-level problem-solving, often referred to as a computer literacy or computer fluency course. A separate introductory course in algorithmic thinking and computer programming is typically offered as the first course in the computing major sequence. In this paper, we describe a new course that serves as an effective bridge between the literacy course and the beginning of the CS major sequence. The course adopts a problemoriented approach that emphasizes scripting in its many forms. It provides both a meaningful followon to the literacy course and a natural introduction to the major sequence.

A separate introductory course in algorithmic thinking and computer programming (referred to as CS1 in previous ACM curriculum guidelines [4] and in this paper, but as CS101 in Computing Curricula 2001 [5]) is typically offered as the first course in the computing major sequence ([11], [15] are typical texts). Some institutions also offer an optional course (referred to as CS0 in previous ACM guidelines and in this paper, but as CS100 in Computing Curricula 2001) that serves as a gentler introduction to computer science than CS1 ([8], [10 ] are typical texts). CS0 provides an opportunity for beginning students to prepare for CS1 ([6], [7], [9]). Figure 1 summarizes the relationship among these three introductory courses.

Keywords algorithmic thinking, computer literacy, computer fluency, CS0, scripting

1. INTRODUCTION

Literacy/Fluency

CS 0

Course

Course

students could move

optional ti

along these lines

Most colleges and universities offer an introductory computing course focusing on the general use of computers for high-level problem-solving. These courses are often referred to collectively as computer literacy (or computer fluency) courses ([2], [13]). While there are a variety of approaches to designing such courses, most designs include: introductions to general computing concepts; standard applications such as word processing, spreadsheets, and databases; and considerable emphasis on HTML and Web authoring ([1], [16] are

CS 1 Course Figure 1: Relationships among introductory computing courses

three

types

of

There are two questions arising from this configuration of courses. The first question relates to the difficulties of attracting students to CS1 and of retaining students who do take the CS1 course in the subsequent major sequence of courses. Although these difficulties were the original impetus for the creation of the CS0 category of courses, the introduction of CS0 courses has not occurred on a wide scale. Thus the first question arising is:

Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission.

Is there a type of computing course (different from the literacy and CS0 courses) that could both encourage students to take CS1 and increase their chances of success in CS1?

4th Annual LTSN-ICS Conference, NUI Galway © 2003 LTSN Centre for Information and Computer Sciences

195

employed an approach that organizes the study of these tools around the common theme of multimedia computing ([1]).

The second question we wish to focus on relates to the lack of options for students who complete the literacy course. Currently, students often have only one choice if they wish to continue their study of computing beyond the literacy course -- namely CS1. In fact, CS1 does not prove to be an ideal option for the large majority of students completing the literacy course. While some institutions do offer additional computing courses, many of these are highly specialized courses focused on some particular application software or genre of software. If CS1 is discounted, there is a paucity of literacy follow-on courses that offer a broad-based continuation of the study of general computing topics. These considerations lead us to the second question we wish to consider:

Literacy/Fluency Course

possible beginning course for those with basic

computing skills broadbased follow-on

Algorithms & Problem-Solving with Scripting preparation for

What topics might provide the content for a course that serves as a natural follow-on for the literacy course and provides a broad-based study of general computing topics?

CS 1 Course

At first glance, it appears that the two courses we seek serve different purposes. However, we think a new course that we have developed, emphasizing algorithmic thinking and focused on problem-solving using scripting, can in fact serve both these purposes. The development of this course is motivated both by our own experiences ([3]) and experimental courses that others have designed ([12], [14]).

Figure 2: Modified relationships with the new scripting computing course

Given the constraints of time and the novice level that is typical of students in the literacy course, selected applications can only be covered with a reasonable amount of detail. This means that in most cases we teach only the most frequently used features provided by a given software tool. There is certainly no opportunity to teach students how to design and implement their own customized functionality within each application. Students learn how to solve problems at a relatively high, clearly defined level, with only very light emphasis on algorithmic thinking. For example, expecting a student to create a database query in Microsoft Access that generates a formatted report is quite common, but asking them to create a customized macro that prompts for specific values to be used in the query would be outside the scope of the literacy/fluency course.

In the following sections, we describe the course in detail, indicate our early experiences with its content, and argue that it can serve effectively as a bridge between the literacy course and the major sequence as illustrated in Figure 2.

2. COURSE RATIONALE As described in the previous section, our objective has been to design a course that serves as an effective bridge between the literacy course and the beginning of the CS major sequence offered at most colleges and universities. In doing so, we obviously must select an approach that will ensure and optimize the effectiveness of this bridge. An analysis of the most successful and commonly taught topics in both the literacy course and the CS1 course point the way to a logical solution – a problem-oriented approach which emphasizes scripting in its many forms.

The CS major sequence, on the other hand, is focused on algorithmic problem-solving at a much more detailed level, organized around the acquisition of proficiency with a programming language such as C++ or Java. High-level applications are generally not used at all; the expectation is instead upon the students to develop applications (or parts of them) themselves.

As we noted above, literacy courses tend to be primarily application-oriented ([16]). Students are introduced to underlying computing concepts as they relate to frequently used applications, typically including Web site design with HTML, word processing, spreadsheet applications, database applications, presentation software, and rudimentary computer graphics and animation development. Furman University has successfully

So, the emphasis of one type of course is high-level problem-solving with existing applications, while the strength of the other is detailed algorithmic problemsolving. Though there is a wide gulf between the two – the reason that one is not a good prerequisite for the other – there could be a very distinct connection which provides a bridge from literacy to

196

the major sequence as Figure 3 depicts. It is this connection that provides the basis for our new course.

3.1 Programming/Scripting Basics The course begins with coverage of the basic principles of programming – variables, expressions, control structures, modularity, design and testing. For students who go on to take the CS major sequence, this serves as an appropriate first step in a spiral approach to programming. That is, they are given just enough information to get started, with more detail to follow for those who choose to continue. It is important to note that this course is not intended to be a programming course, per se. The assignments and projects to be completed are at a considerably lower level of difficulty then a student might encounter in CS1, but at the same time these are far more challenging than what they would do in the literacy course.

Literacy/Fluency

Bridge

Algorithmic problemsolving using scripting

Intro to Major S

3.2 Web Programming These basic scripting skills are then put to practical use in a context that students both know very well and are motivated by – the World Wide Web. It is assumed that students in the new course have knowledge of authoring static Web pages with HTML (either from the literacy course or their own studies). They may even have had experience creating interactive features using an automated tool like Macromedia Dreamweaver. However, in this segment of the course they learn to write Web programs from scratch, both for the client-side and the server-side.

Figure 3: Rationale for the approach for the new course

Consider this approach in light of our primary goals. First, viewed from the perspective of the literacy course, the new course represents a logical opportunity for interested students to continue and expand their studies, becoming proficient in what amounts to advanced features of the software applications that they have already learned. Second, viewed from the perspective of the major sequence, the new course represents a natural, non-intimidating introduction to the concepts and constructs of algorithmic programming. Students who complete the new course will have the requisite foundation to successfully contend with more complex programming issues.

The language used for client-side scripting is Javascript. This language allows students to quickly create interesting interactive effects. One example that we use is a slide show, in which all images are preloaded, and both images and captions change based on user input. Another example involves the processing of forms, in which students gather information about a hypothetical car buyer’s preferences and alert them as to whether or not a particular combination of automobile options is possible.

In this sense, the course that we have designed meets the objectives of a typical CS0 course. It differs from existing CS0 courses, however, in that it is also designed to naturally follow the literacy course. In this way, we have provided a logical link between two types of courses that have previously been virtually mutually exclusive with regard to student enrollment. In the next section, we discuss some of the details of the course design.

Using Javascript to teach programming skills is not a new idea ([14]). It even allows the introduction of object-oriented concepts. Our experience has suggested that its use is particularly appealing to students because of the ease with which they can create interesting and useful Web utilities.

3. COURSE DESIGN

PHP (PHP: Hypertext Preprocessor) is the language used for server-side scripting. This popular open source language allows us to introduce students to the advantages of power and security that come from processing scripts before they are sent to the browser. PHP is also object oriented, and its syntax is based on that of C++. Thus it not only helps to reinforce programming skills learned with Javascript, but it provides a nice introduction to higher-level language syntax. Again, students are excited to learn and explore this

Problem-solving using scripting in high-level application software provides the basis for our new course. To this basis we add additional elements designed to introduce students to the breadth of the computer science discipline, with the compatible objectives of (1) satisfying their curiosity about the full capabilities of applications that they have studied, and/or (2) motivating them to undergo further study in the major. A brief outline of the content of the course follows.

197

technology, making it very easy to teach. An example project involves using PHP’s file manipulation ability to implement a Web page hit counter. Another involves the use of cookies to customize a particular page for a particular user.

3.7 Java Applet Programming The final programming topic to be considered is an introduction to basic applet design and implementation in Java. Java clearly goes well beyond what can be considered a scripting language. It is a standalone tool, not bundled with another application. However, at this point the students are expected to have reached a level of sophistication that they can at least construct simple applets.

3.3 Advanced Database Applications The next type of scripting application to be studied in the course is the creation of advanced utilities in Microsoft Access. Using VBA (Visual Basic for Applications), students have the chance to work with yet another implementation of the programming concepts studied at the beginning of the course. We start using the forms and macros provided by Access, taking the time to look at the actual VBA code that is generated. From there the students learn to construct their own customized macros. One project involves having students write a form to gather information to be inserted in multiple linked tables, with code that checks to make sure that no part of the information is already in the database and alerts the user if it is.

3.8 Cyberethics / Special Topics in Emerging Technology As noted previously, scripting forms the basis for the new course, but is not the only topic covered. We wish to make this course an exciting introduction to computer science – thus motivating students to continue their studies. To this end, we intersperse into the course discussions of the ethics of technology, as well as discussions about exciting emerging technologies including nanotechnology, artificial intelligence, wireless computing, personal computer security, cryptography, online communities, e-commerce, and peer-to-peer communication.

3.4 Online Database Implementation Having covered PHP and database concepts, the next logical step is to cover the creation of online databases with Web interfaces. The database management system that is used is MySQL, which is also open source and has been designed to work seamlessly with PHP. While further improving their algorithm design and programming skills, students create an online database application that includes security features and administrative tools. This is a topic of great practical value to the students, as most Web sites are currently data-driven.

3.9 Term Project Early in the course the students are assigned a significant term project on a subject of their own choosing. Potential ideas are provided by the instructor at the time of the assignment. The project is a significantly complex application that involves at least one type of scripting and possibly more. A presentation at the end of the course is also required. At the conclusion of the course, it is logical to conclude the students are ready to start “serious” algorithmic programming and problem-solving given what they have learned. In addition, we believe that the material in the course provides an ideal opportunity for students who have taken the literacy course to learn more about computer science in an interesting, non-intimidating fashion.

3.5 Advanced Spreadsheet Applications We return to VBA as the scripting language to see its application in other tools from the Microsoft Office suite. Customized macros are created for Excel, and code is also written to integrate documents created by different Office applications (including Word and Powerpoint in addition to Access and Excel).

4. CONCLUSIONS Our early experience with the topics of the course have been very positive. For the past year at Furman University, we have incorporated modules on JavaScript in our own literacy/fluency course. The reactions of students have been very positive. This spring term (2003), additional scripting modules will be tested within this course and the term project will focus on scripting. The authors anticipate reporting more formally on student acceptance and reaction to these modules at the 4th Annual LTSN Conference. Millsaps College will adopt a similar approach in its version of the literacy/fluency course in the near future.

3.6 Animation and Scripting The course then takes up the ActionScript language, provided with the Macromedia Flash application. At this point students are expected to be rather proficient with scripting concepts, with the introduction of a new language being easier than before. ActionScript enhances the already compelling animations that students can create in Flash. Projects focus on Web interaction – integrating animated menus with HTML pages, for instance – and simple game/simulation development.

198

[6] Cook, C., “CS0: Computer Science Orientation Course,” ACM SIGCSE Bulletin (29,1) March 1997, pp. 87-91

At Furman University, a new catalog course, Introduction to Computing with Scripting, has been approved and will become a regular course offering beginning in 2003-4. The first two authors will team-teach the initial offerings.

[7] Curl, L. and B. Hussin, “Introductory Computing: A New Approach,” ACM SIGCSE Bulletin (24,1) March, 1993, pp. 131-135

The two main issues we wish to assess are (1) will students taking the literacy course find the new course an attractive follow-on course, and (2) will students who take the new course go on to take the introductory majors course. We plan to track students carefully during the next several years to provide quantitative answers to both these questions.

[8] Dale, N. and J. Lewis, Computer Science Illuminated, Jones and Bartlett, Boston, 2002 [9] Decker, R., “The Case for CS-0,” Computer Science Syllabus, (4) pp. 5-7, November, 1992 [10] 1Decker, R. and S. Hirshfield, The Analytical Engine; An Introduction to Computer Science, Wadsworth Publishing, 1990

In the meantime, we will continue the course development with the goal of producing a Web site that others interested in designing or offering a similar course could use as a basic course reference. This Web site will be available by summer 2003, so it can be accessed and demonstrated during the 4th Annual LTSN Conference.

[11] Deitel, H. and P. Deitel, Java: How to Program, Fifth Edition, Prentice-Hall, Englewood Cliffs, NJ, 2002 [12] Mercuri, R., N. Herrmann, and J. Popyack, Using HTML and JavaScript in Introductory Programming Courses, ACM SIGCSE Bulletin (30,1), March 1998, pp. 176-180

5. REFERENCES

[13] Being Fluent with Information Technology, National Research Council Committee on Information Technology Literacy, National Academy Press, Washington, D.C. 1999

[1] Abernethy, K. and T. Allen, Exploring the Digital Domain, Brooks/Cole Publishing Company, Monterey, CA, 1999 [2] Abernethy, K., and T. Allen, “Computer literacy in the 21st century,” Proceedings of the Eleventh Annual Eastern Small College Computing Conference, New Rochelle, NY, 1995, pp. 160-5

[14] Reed, D., Rethinking CS0 with JavaScript, ACM SIGCSE Bulletin (33,1) March 2001, pp. 100104 [15] Savitch, W., Problem-Solving with C++, Addison-Wesley, Boston, 2003

[3] Abernethy, K., K. Treu, and P. Gabbert, “Web authoring as a pedagogical tool across the computer science curriculum,” Conference Proceedings: 8th Annual Conference on the Teaching of Computing, Edinburgh, Scotland, August 2000, pp. 74-80

[16] Snyder, L., Fluency with Information Technology, Addison-Wesley, Boston, 2003

6. ACKNOWLEDGEMENT The first and third authors wish to express their gratitude for the support they received for this project from the Information Fluency Initiative of the Associated Colleges of the South funded through a grant from the Andrew W. Mellon Foundation.

[4] Computing Curricula 1991, (Joint Undertaking of IEEE-CS and ACM), Tucker, A. et. al., 1991 [5] Computing Curricula 2001, (Joint Undertaking of IEEE-CS and ACM), Engel, G., Roberts, E., et. al., 2001 (http://www.acm.org/sigcse/cc2001/index.html)

199

Suggest Documents