COMPSCI 120 is an "R2" General Education course, fulfilling one of the graduation requirements for any bachelors degree at UMass. As part of the university's supervision of General Education, departments are required to renew each course's gen-ed designation every five years. Part of this process is to explain how the course fulfills the goals set out by the General Education Council. Instructors are required to address this question in their syllabus for the course, explaining the associated learning goals and how those goals are to be met.
All General Education courses are expected to emphasize critical thinking, commensurate with problem solving and writing. Development of analytical skills, including quantitative (numerical and computational) thinking, is a fundamental part of this process.
COMPSCI 120 is an introductory course in exploring the tools associated with the Internet and the World Wide Web. Many students entering the course have some background with Web browsing, but few have sufficient sophistication, either mathematical or procedural, to create their own Web pages, or to extend them with client-side or server-side scripting.
As a result of taking this course, students are expected to have developed their skills in the following areas:
Understand how to perform a search on the Web, and how to interpret the results. As a part of this, students are instructed in how to recognize the various types of cognitive bias inherent in any Web-based resource.
Understand how numbers and colors are represented on a computer. Conversion of numbers between different bases is emphasized, in the context of Web page color and UNIX file permissions. Numerical precision issues in JavaScript and Python programs is also explored. Cryptographic systems are addressed in the context of secure on-line ordering.
Understand how various network models work, and why the Internet is constructed in the way that it is. Understand the limitations of the current mechanism, and how it may be extended to accommodate future requirements. Historical foundations are covered in order to illustrate the speed of historical change leading up to the modern Internet. The Domain Name System, email and spam, as well as phishing and denial-of-service attacks, are all important aspects of the course.
Understand how the Web and the Internet work, how Web pages are created and deployed, and how to extend Web pages with graphics. Color models are extensively explored. Students gain a foundation in creating and debugging HTML, CSS, and SVG files, and learn to use the UNIX operating system. JavaScript and Python programming are also covered, in order to automate Web page behavior or to run server-side scripts. Tools for remotely accessing a computer, or for transferring files between remote computers, are also important aspects of the material.
The required work for COMPSCI 120 is broken down into four categories: homework, quizzes, exams, and laboratory exercises. Each contributes its own unique signature to the overall learning goals of this course.
Homework assignments in this course are handled using an on-line grading and recording system. Students enter their answers into a Web form, which are then submitted to the grading system. Their answers are automatically scored, the grades are recorded, and the recorded grades are sent back to the submitters immediately. Students are allowed to submit the homework assignments as many times as they wish during the period that the homework is active on-line, in order to maximize their grade. Late penalties are assessed automatically.
In-class quizzes are handled initially in a "traditional" format: questions are posted and students have 10 minutes to work quietly on their answers. They may use their books and notes. After the initial period, students are allowed to collaborate on their answers with adjacent students. In general, this increases the learning goals of the quiz by having students explain their answers to one another, as well as gain insights into the material by doing so.
There are two midterm exams and one final exam. All are open-book, open-notes to accurately reflect real-world scenarios where people have their reference materials available when solving problems (simple calculators are allowed, but advanced calculators and other electronics are not allowed on exams as they may provide students avenues to answers without incurring any understanding). Exams are written on paper (not op-scan or multiple choice), and involve computational questions, short answer questions (requiring one or two sentences), coding questions (requiring students to write out HTML, CSS, JavaScript, or Python code). Exams in this format must be graded by hand by experts (teaching assistants), and partial credit for answers that are incomplete or slightly in error is assigned appropriately.
There are several laboratory assignments for this course. Students are allowed to use their own computers, either Microsoft Windows or Apple Macintosh. Students are allowed to discuss the assignments among themselves, but are not allowed to share files or turn in group efforts. Laboratory projects for COMPSCI 120 include the following:
This introductory assignment is to use a piece of custom software (written by me) to display multiple Web cameras simultaneously. Students must search the Web for camera feeds that observe certain fixed criteria, harvest the Web addresses of those cameras, and link them into the custom program. This gives student experience in searching the Web for specific types of information.
This assignment introduces students to the Web and the Internet (either Microsoft Windows or Apple Macintosh) by having them create a simple Web page in raw HTML, move their page to a remote UNIX server, view that Web page in a browser, create and add graphical elements to that page, and print the result. Students are exposed to most of the basic tools of the Internet: remote login, file transfer, image creation, Web page design, the beginnings of Cascading Style Sheets (CSS), the UNIX operating system and attendant software, and Web browsers.
This assignment adds content to the results of Lab #1. In this assignment, students are exposed to the JavaScript language, used for automating tasks within a Web page; in this case creating a series of buttons that change appearance when the mouse rolls over or clicks on them. More advanced CSS tools and techniques are implemented as well.
Here the students are exposed to server-side problems for the Internet. They learn the syntax of a new programming language, Python, for running programs on the UNIX server where their Web page is hosted. The application that they will write requests a number from the user at the UNIX command line, computes the factorial of that number, then automatically emails the result to a fixed mail-drop. This problem illustrates the power of a programming language coupled to the Internet, as well as the potential for abuse of that resource.
This assignment puts everything together in context. The students create a Web page, containing Cascading Style Sheet design, Scalable Vector Graphics images, and JavaScript programming and Web forms for a hypothetical on-line restaurant. They also write a Python program on the same server as their Web page to respond to the submission of the data from the form. A typical user of this page would request various types of meals, options, add-ins, etc., and when the form is submitted, the Python program evaluates the requests and synthesizes a response page dynamically containing a summary of the meal and its itemized and total costs. This illustrates many of the common features of any real-world on-line ordering system all in one place.
This is an assignment that explores advanced HTML features, including client-side image maps, creation of images containing transparency, and "favorite" icons for display along with a Web page. Heavy emphasis on graphics design is part of this assignment.
There are a number of learning goals specified by the General Education Council for all General Education courses. Several are directly applicable to COMPSCI 120.
COMPSCI 120 is an introduction to the thinking processes involved in interacting with a global network. How networks work, and fail, how people deal with those networks and each other (for good or ill), and how to make them more secure are all important concepts.
The specific skills with specific systems that are taught are directly applicable to real-world situations. After COMPSCI 120 a student is better able to perform searches, avoid problems with email or scams sent via email, and create and manage their own Web sites (or at least understand how professional Web consultants that they might hire are able to do their work).
The students a trained to use a broad range of tools that interact with the Internet. These tools do evolve over time, but students trained in the basics will be able to adapt to new and currently unknown technologies.
In developing information literacy, students are also learning to communicate better about the technologies that connect people and institutions around the world. The electronic computer is one of the major technological artifacts of our age, and the Internet is a disruptive technology that students must be able to use in order to be professionally valuable throughout their careers. COMPSCI 120 deals closely with all these topics, including hands-on experience with using computers to solve real-world tasks.
The Council has set out specific goals for the Analytic Reasoning courses within General Education, which COMPSCI 120 addresses as follows:
Students use mathematics in several ways, including how color is both represented and encoded on a computer. Students also learn how to write code in several different languages and styles, including HTML, CSS, SVG, JavaScript, and Python, and for every new such strategy they learn here they will be better able to learn strategies not covered by the course.
Students are taught to interpret code written in a number of different languages, and also how to interpret the results they get from the Internet and Web. Much of the information available on the Web is wrong, or biased in some way, and students are trained to recognize and filter out much of that bias.
The software tools that they are taught are largely those same tools found in common Web-based applications. These tools build on traditional computer literacy courses, but go well beyond those courses to provide students a increased level of sophistication in using a computer.
Computers are machines; machines break. Students will understand how Web-based tools work and how they do not work. They will also learn, to their frustration, that not everything in the world is available on the Web. They will also learn how difficult it can be to formally specify how a Web page, JavaScript or Python program, or SVG graphic is to work without errors.