We have seen two major shifts in computer literacy courses as technology changed. The first generation was made possible by the advent of time sharing and the second by the personal computer.
Today's shift to the Internet as a platform for developing and delivering applications seems as important to me as the shifts from batch processing to time sharing or from time sharing to the personal computer were, so I think it is time for another change. In moving to computer literacy 3, we must also consider the characteristics of our students who have had Internet access all their lives -- what they know and what they do not know.
Most of today's students are familiar with email, SMS, Web search, digital cameras, MP3 players, word processing, etc., but they typically use these tools without a mental model of the underlying technology and without considering their implications for individuals, organizations and society. As such, I would stick with the format of combining concepts and skills, but the concepts should now include network and communication topics like:
- Accelerating improvement in communication, storage and electronic technology
- Data types -- numbers, text, images, audio, and video
- Data encoding and compression
- Analog versus digital data
- Circuit versus packet switching and the rudiments of layered protocols (at least application versus the rest)
- Internet connectivity from fixed (home and organization) and mobile and portable locations
- Rudiments of wireless technology -- transmission frequency, attenuation, modulation
- Client-server and mashup architecture
- Software as a service (for users and developers)
- Telecommunication policy, environmental and economic impact
- The global diffusion of the Internet
When Kemeny and Kurtz invented BASIC, they were interested in algorithmic thinking -- most application development remained the responsibility of professional programmers. With the advent of the PC and spreadsheet, many non-professionals became application developers. With the Internet as a platform, users can develop complex applications without programming or with a bit of scripting. (Professional developers can quickly do things that were previously impossible). Internet services are the “new spreadsheet,” and relevant skills include network-based application development and content creation, things like:
- Using RSS
- Using social bookmarking with tags
- Creating online questionnaires
- Creating online databases
- Concise, often collaborative writing using wikis and shared documents
- Synchronous collaboration using voice and video conferencing, chat and screen sharing
- Creating and using blogs
- Creating and using threaded discussions
- Image, audio and video editing
- Creating and using social networks
- Data and service mashups
A skill can also be taught as content creation or application development. For example, we might be satisfied if students use a minimal blog to track progress on an internship or project or we might ask them to create a more fully featured blog with various subscription options, mashups, usage measurement, etc.
In shaping a course, we should also ask whether to introduce a topic conceptually or teach it as a skill. For example, one can illustrate data compression and discuss quality trade offs with a simple class demonstration (like this, this, or this) in which you talk about perceived quality, file sizes and transmission times. Is that sufficient, or should the students be required to compress their own images or audio? For some majors, the answer is clearly "yes," but is it for all liberally educated people?