COG humanoid robot developed at MIT Circuit diagram for an arithmetic-logic unit ENIAC, the first electronic digital computer Assembly language code Vacuum tubes Lady Lovelace, the world's first programmer HTML code Integrated circuit chip JavaScript code Tim Berners-Lee, inventor of the World Wide Web Alan Turing, founder of computer science Binary machine language code The original Apple Macintosh


This course is a broad introduction to the world of computers and computer science, with a special emphasis on the World Wide Web. It is designed for liberal arts students from all disciplines who do not intend to major in computer science, and assumes no previous experience with computers. We will explore a wide variety of topics, including the history and development of computer technology and the Internet, Web programming using HTML and JavaScript, logic circuits and the basic design of a digital computer, the concepts of machine code and high-level programming languages, the ultimate limits of computation, the possibility of artificial intelligence, and the social impact of computers and the Web.

Prerequisite: A desire to learn. No previous knowledge of computer programming is required or presumed.

This course fulfills the Pomona College PAC 3 distribution requirement.


Prof. Jim Marshall
Office: Andrew Science Building 261
Office Hours: Monday/Wednesday 2:30-3:30pm, Tuesday/Thursday 11am-noon, and by appointment.
Phone/Voicemail: (909) 607-8650 (extension 78650 on campus)

Class Meeting Times

Course Materials

Computer Accounts

All students enrolled in CS 10 need an account on the Pomona campus Windows 2000 network. Pomona students should already have such an account. Off-campus students should go to the ITS consultant desk in the Seaver Computing Center as soon as possible to obtain an account. Click here for more information.

Required Books

Creating Web Pages with HTML, 3rd Edition
by Patrick Carey
Weaving the Web
by Tim Berners-Lee and Mark Fischetti

Students should always bring the HTML book and extra disks with them to lab. I will also assign supplementary readings from time to time in the form of handouts distributed in class.

Optional Books

The following O'Reilly books are good references to have on hand if you're interested in doing more advanced HTML and JavaScript programming, but are not required for the course:

Grading and Attendance

You are expected to attend all lectures and labs. Your final course grade will be based on attendance, class participation, homework assignments, exams, and a project, which will either be a Web development project involving HTML and JavaScript, or a paper on some topic of your choosing related to computers and the Internet.

Your final grade will be weighted as follows:

20% Homework Assignments
20% Project (due Tuesday, May 6)
15% Midterm Exam 1 (Thursday, February 20, in class)
15% Midterm Exam 2 (Thursday, April 10, in class)
20% Final Exam (Thursday, May 15, 9:00 AM)
10% Class Attendance and Participation

Homework will be assigned each week and will be due by the beginning of class on the following Tuesday. You will hand in your homework assignments electronically, via a drop folder on the network (to be explained in class). You do not need to turn in a hardcopy printout of your assignment, unless I explicitly ask for one.

Late Homework Policy

Getting Help

Our student mentor this semester is Sarah Trefethen. She is available to answer your questions about the course material or homework assignments. If you would like to set up an appointment with her, feel free to contact her directly. Here is her contact information:

You are strongly encouraged to come to my office hours or talk to Sarah whenever you are having difficulty with the material. If you are confused about something, don't stay that way! Staying confused will only make things worse later. Come see one of us as soon as possible so that we can clear up the problem. There is no point in banging your head against a wall for hours trying to figure out why your program won't work, when just a few minutes is usually all it takes to track down the problem together.

If you want to see me but can't make it to my office hours, I'll be more than happy to schedule an appointment. Ask me about it in class, send me some e-mail, or leave a message on my voice mail. You can also try to catch me outside of my regular office hours, though I can't always guarantee that I'll have time to meet with you right then.

Collaboration Policy

The highest level of academic integrity is expected of every student. You are strongly encouraged to discuss ideas and approaches to solving problems, on a general level, with Sarah or your fellow classmates, but unless I tell you otherwise, the work you hand in must be exclusively your own. Effective learning is compromised when this is not the case.

Accordingly, you should never read or transcribe another student's code or solutions, exchange computer files, or share your code or solutions with anyone else in the class. Under no circumstances may you hand in work done by, or in collaboration with, someone else under your own name, with the exception that you may freely use any code that I explicitly provide to you.

When in doubt, credit the people or sources from whom you got help. This also goes for any help obtained via the Internet. You will not lose any points for acknowledging significant help obtained in a legitimate fashion (for example, from Sarah, or from Web sites or articles). If you are ever unsure about what constitutes acceptable collaboration, just ask.

Failure to abide by these rules is considered plagiarism, and will result in severe penalties, including possible failure in the course. Please do not put me, yourself, or anyone else in this unpleasant situation.