COSC-111: Introduction to Computer Science I

Fall 2017

Home    Schedule and Assignments

Course Information

Meeting times: MW 9-9:50am (lecture), F 9-9:50am (Section 1) OR 10-10:50am (Section 2) (lab)
Location: MW: Merrill 1, F: 014 Seeley Mudd
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: 405 Seeley Mudd
Phone: 413-542-5428
Web site
Office hours: MW 4-5pm and by appointment. Sign up for a 10-minute office hours slot here (please only sign up for one slot per week to ensure that other students can also sign up for times).

TA evening help sessions: Sunday, Tuesday, and Thursday, 7-9pm, Seeley Mudd 014

Recommended Textbook

There is no required textbook, but the following book (written by Prof. McGeoch) is a good reference that closely follows the topics covered in this course:

Java Programming, by Lyle McGeoch. Available online on Prof. McGeoch's web site


1. Labs (15%). There will be weekly assignments, introduced in lab each Friday and usually due one week later. Each lab assignment must be turned in by the date on which it is due. Extensions will be granted on a case-by-case basis due to an illness or other extenuating circumstance; please email me at least 48 hours before the deadline should you need to request an extension (a sudden illness or other emergency less than 48 hours before the deadline is, of course, a special case).

2. Midterm (20%). There will be an in-class midterm, likely in mid-October.

3. Final exam (30%). There will be a cumulative final exam, scheduled during exam week.

4. Projects (35%). There will be one or two projects assigned during the semester, as well as a final project. The final project is a larger programming assignment that will incorporate all of the concepts we discuss this semester. It will be assigned after Thanksgiving and will be due on the last day of class.

I will not take attendance and you will not be explicitly graded on participation, but participating in class (or not) can help (or hurt) you should you end up on the border between two grades. I strongly encourage you to attend all class meetings. 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.

Special Grading Policy: For many good reasons, your grades matter to you. This course may be a bit of a risk, as you probably do not have any prior experience in programming or in computer science. It might not even be clear to you, right now, exactly what computer science is. But much of this course focuses on practicing a logical, structured way of thinking that I believe is important no matter what you end up doing after completing this course. I do not want students to avoid this course out of fear of getting a low grade. Therefore, this course uses a special grading policy:

If you complete all of the course work, submit all work on time, and demonstrate a sincere effort in all assigned work (including exams), then your final grade will be no lower than a B.

Please note that this policy requires you to put forth a sincere effort. While this is a somewhat subjective standard, it should be apparent to me from your attendance in class and office hours and from the content of your work whether you are making such an effort. If you do not make a reasonable effort to learn the material, this policy will not apply and any final grade becomes possible. If you are unsure of how you are doing, please come see me.

Intellectual Responsibility

In general, you are expected to do your own work in this class unless otherwise specified. You may discuss how to approach assignments with other students who are currently taking the class, but all code must be your own. Do not look at other students' code, and do not show your code to other students. If you discuss an assignment with other students in the class, please note their names in a comment at the top of your submission. You do not need to note if you consulted with me or the course TAs. Do not discuss assignments with anyone other than myself, the course TAs, and students currently enrolled in the class, and do not look for solutions on the internet. Exams must be completed individually.

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.