Course Web Site:

This course provides an overview of the field of computer science from the concrete -- what computers are made of and how they work -- to the abstract -- the theoretical limits of what computers can and cannot do. This course also focuses on the general algorithmic (disciplined, step-by-step) approach to problem solving, and the basic concepts of computer programming. Other topics include the history of computers, an introduction to several areas of computer applications including artificial intelligence, and the ethical and societal issues raised by the widespread use of computers.


A variety of required reading assignments will be made available online or on reserve in the library. Sources include:

Topics to be covered:

What is Computer Science?
Introduction to Programming in JavaScript
History of Computer Science
How Computers Represent Information
Computer Hardware and Logic
What Can Computers Do? What Can't They Do?
Artificial Intelligence
Computer Ethics and Computer Security


Grades will be based on:

Attendance and Participation:

Regular attendance and fully engaged participation is expected of all students in this course and will affect your grade. Active participation means being on time, being prepared, listening to others, contributing ideas of your own, and asking questions as they come up. Furthermore, attendance is absolutely required for the weekly labs, in-class mini-labs, and student presentations.


Reading and homework assignments, class notes, and other material will be made available on the course web site:
Students are responsible for checking this resource frequently.

Many of the labs and all in-class projects will involve working in small groups, as will the programming projects and student presentations. Homework assignments and video/presentation reflections, however, should be your own work. (See the section on Collaboration and the Honor System for more information.)

Assignments are due at the beginning of class. Programming projects, in particular, are time-consuming and difficult to predict, so you should start them as soon as they are assigned. We will assign homework and projects far enough in advance that you will have some flexibility in when you schedule your work, but you are responsible for budgeting your time wisely so that you will be able to complete your assignments on time. Assignments that are turned in late will receive at most partial credit unless you clear it with me in advance.

Collaboration and the Honor System:

This course operates in accordance with the principles of the Kalamazoo College Honor System: responsibility for personal behavior, independent thought, respect for others, and environmental responsibility. In particular, academic integrity is a fundamental principle of scholarship. Representing someone else's work as your own, in any form, constitutes academic dishonesty. Unauthorized collaboration and receiving help from others outside the bounds permitted by the instructor are also violations of the College honor system. You are responsible for working within the permitted bounds, and acknowledging any help from others or contributions from other sources.

Laboratory Assignments and Programming projects: Students should write and submit their own lab and programming projects, but you may discuss them with classmates and give and receive help. You may not, however, share code or code fragments. You may also receive help from your instructor and from the CS teaching assistants during labs, mini-labs, and Collaboration Center hours. You must acknowledge in your program documentation any help you receive. For example, you should list anyone with whom you collaborated or from whom you received help in a With Assistance From: or Working Side-by-Side With: clause in your program documentation.

Homework assignments: You may discuss the requirements, concepts, and overall strategies related to homework assignments with your classmates, but you should write the solutions individually, using your own words. Organizing and writing the solutions on your own ensures that you really understand the material. Submitting someone else's work does not help you learn and constitutes academic dishonesty.

Group presentation: The group presentation should be done in pairs and should represent your synthesis of ideas drawn from your research. You should use citations in your presentation to credit all ideas drawn from other sources; you should also list all of your sources in a bibliography at the end of your presentation.

A few words on citations: If you directly quote one of your sources, be sure to put the phrase/sentence in quotes and include a citation. If you use an idea or fact from one of your sources, but do not directly quote it, you should still include a citation. Basically, citations should be included for any information in your paper that is not originally your own.

Detailed presentation expectations and possible topics will be made available on the course schedule. You may ask a reference librarian or the course instructor for help identifying possible sources as you do your research.

Video and student presentation reflections should be entirely your own work.

Penalties for violating the Honor System in this course may include receiving no credit for an assignment, a lowered course grade, or failure of the course. Depending on the severity of the incident, a report may be sent to the Dean's Office, which may result in additional consequences, including suspension from the College. Any subsequent violation will result in the immediate failure of this course.

Any student with a disability who needs an accommodation or other assistance in this course should make an appointment to speak with their instructor as soon as possible.