Spring 2023

Thinking Like a Computer Scientist

Listed in: Computer Science, as COSC-121

Moodle site: Course


Kristy Gardner (Section 01.)


Analytical thinking is inherent in every aspect of computer science. We need to be able to answer questions such as: how do I know that my program works correctly? How efficient is my approach to solving a problem? How does human-readable code get translated into something that can run on physical hardware? What problems are even solvable by computers? In order to study such questions, computer scientists must be able to communicate with one another using a common language, express ideas formally and precisely, and reason logically about these ideas. This course will introduce mathematics as the primary analytical tool used by computer scientists. Topics may include but are not limited to set notation, symbolic logic, proof techniques such as induction and contradiction, and applications of these topics in computer science. Much more important than any individual topic, however, is the experience that students will gain with formal reasoning.

Restricted to Amherst College students. Instructor permission required. This is to ensure that the students who take this course are those students who will benefit most from it, i.e., those students who do not yet have significant mathematical maturity. Prerequisite: COSC-111. Limited to 20 students. Spring semester: Professor Gardner.

How to handle overenrollment: Preference given to Computer Science majors who have not taken a math course at Amherst. Not open to students who have taken COSC-311.

Students who enroll in this course will likely encounter and be expected to engage in the following intellectual skills, modes of learning, and assessment: quantitative work, group work, in-class quizzes or exams, written problem sets.