COSC-111: Introduction to Computer Science I

Spring 2020

Home    Schedule and Assignments

Course Information

Lecture times: MW 9-9:50am (Section 1) OR MW 10-10:50am (Section 2)
Lab times: F 9-9:50am OR 10-10:50am OR 11-11:50am OR 1-1:50pm
Location: MW: Chapin 201, F: Science Center A331
Prerequisites: None. If you have some prior programming experience, please come talk to me so we can determine if you should instead take COSC-112, Introduction to Computer Science II.

Overview: This is a first course in computer science, designed for students who have no prior computer science or programming experience. The goal of the course is to provide a foundation in the ideas and techniques that are used in computer science. Much of the course focuses on learning to program in Java, but a programming language is really just a tool to tell the computer what to do. The greater (and more interesting) challenge is figuring out an algorithm---a sequence of clearly defined steps---that enables you to solve the problem at hand. In this course we will see the basics of how to break a problem down into smaller tasks, how to put the pieces together to design an algorithm, and how to write a program that tells the computer how to solve a problem using your algorithm.

Contact Information

Kristy Gardner
Office: Science Center C215
Phone: 413-542-5428
Web site
Office hours: Monday and Wednesday 11am-12pm (by appointment, sign up for a 15-minute slot here. Please sign up for only one slot at a time, and please don't sign up more than 5 days in advance. This is to ensure that all students have access to office hours meetings.), Thursday 3:30-5:30pm (drop in, no appointment needed). If you're not available during my office hours or the TA hours (see below) and you need to meet with me, please send me an email to schedule an appointment on MWF. I am not available to meet on Tuesdays and Thursdays outside of office hours.

TA evening help sessions (all in Science Center A131):
Sunday 7-9pm: Kaitlin Hoang and Niamani Williams
Monday 7-9pm: Feriel Ouerghi and Terrence Wang
Wednesday 7-9pm: Kaitlin Hoang and Jack Klein


I will regularly post related readings and practice exercises from the following two books. While neither book is required, I recommend using them to supplement the in-class material and to get extra practice. The first book is on reserve at the library, and the second is available for free online.

Introduction to Programming in Java, by Robert Sedgewick and Kevin Wayne. Second Edition, Addison-Wesley, 2017. ISBN: 978-0-672-33784-0

Java Programming, by Lyle McGeoch. Available online here


Your grade will be based on the following components:

1. Labs. There will be weekly assignments, introduced in lab each Friday and usually due one week later.

2. Midterm exams. There will be two in-class midterm exams on Wednesday March 11 and Wednesday April 15.

3. Final exam. There will be a cumulative final exam, scheduled during exam week. The final exam date will be announced by the Registrar's office a month or so into the semester; please do not make your end-of-semester travel arrangements until after the final exam schedule has been released.

4. Projects. There will be two projects assigned during the semester. These are larger programming assignments that will incorporate all of the concepts we discuss this semester.

I will not take attendance and you will not be explicitly graded on participation, but participating in class can help you should you end up on the border between two grades. I strongly encourage you to attend all class meetings. You likely will find it difficult to keep up with the material if you do not come to class, and I will not use office hours time to teach you material from lectures that you decided to skip. In particular, it is in your best interest not to skip lab, because this is when you will get a chance to practice the ideas we discuss in lecture with myself and the course TAs present to help if you get stuck.

Deadlines, late days, and extensions: Each lab and project must be submitted via Moodle by the day and time at which it is due. You may take 5 late days during the semester. These can be used for any reason, without penalty, and you do not need to ask me or tell me that you are using them. You may use up to 2 late days on any individual assignment. I will grant additional extensions only if I hear from your class dean that you are facing extenuating medical or personal circumstances.

Intellectual Responsibility

In general, you are expected to produce your own work in this class unless otherwise specified. Computer science is inherently a collaborative discipline, but in this course we must also be able to fairly assess each of you individually. There is a lot of learning to be gained from both collaborating and working individually, but anything that you submit for evaluation must reflect your own understanding, work, and finished product. Some guidelines for collaboration in this class: If you have any questions about whether and how you are allowed to collaborate, please ask. In all cases, you are bound to the Amherst College Honor Code.

If you are struggling...

Please come see me. In addition to my office hours and the TA-led evening help sessions, the Dean of Students office offers peer tutoring if we decide you would benefit from some extra time spent one-on-one with a peer tutor. Should you need support related to challenges beyond this course, I encourage you to seek help from the numerous resources available on campus, including but not limited to your class dean, your RC, the health center, and the counseling center.

If you have a documented disability that requires accommodations, you will need to contact Accessibility Services ( or 413-542-2337). After you have arranged your accommodations with Accessibility Services, please set up a time to meet with me to discuss how we can best implement your accommodations in this class. If you use accommodations for exams, you MUST let me know at least two weeks before each exam that you plan to use your accommodations for that exam.