CSCI 1101
Intro to Computer Science

Bowdoin College
Spring 2016
Instructors: Eric Chown, Sean Barker, Clare Bates Congdon

Course Description

This course will provide an introduction to computational thinking, programming, and the field of computer science in general. Computer science is fundamentally a study of problem solving, not simply computers (or computer programs) themselves. We will consider questions such as (1) what defines computer science, (2) how do we design an algorithm to solve a problem, and (3) how do we translate an algorithm into a computer program?

Over the course of the semester, students will learn the fundamentals of programming using the Python programming language and write a variety of programs during weekly lab assignments and larger projects. Labs will reinforce concepts presented in class that are fundamental to computer science and computation across many fields. Specific topics covered include variables, functions, conditionals, loops, arrays, recursion, and object-oriented programming.

Prerequisites: None. No programming background is expected of students taking CSCI 1101. Students with extensive programming background may wish to instead enroll in CSCI 2101 (Data Structures).

Distribution: This course fulfills the MCSR distribution requirement by teaching students to employ programming and algorithmic problem solving. These skills are broadly applicable across many fields of study.


Instructor (Section A): Eric Chown
Email: echown
Phone: 207-725-3084
Office: Searles 221
Office Hours: Monday/Tuesday 1-2:30, or by appointment.

Instructor (Section B): Sean Barker
Phone: 207-798-4220
Office: Searles 220
Office Hours: Tuesday/Thursday 2-3:30 and Wednesday 1-3, or by appointment.

Instructor (Section C): Clare Bates Congdon
Email: congdon
Phone: 207-725-3824
Office: 109 Bannister Hall
Office Hours: Monday/Wednesday 2:30-4, or by appointment.

TAs / QR Mentors: Drop-in lab hours in Searles 128:
Jack Truskowski: Sunday 7-9 PM
Liam Taylor: Monday 6-8 PM
Jasper Houston: Tuesday 7-9 PM
Sophie Ardell: Wednesday 6:30-8:30 PM
Nikki Morin: Thursday 6-8 PM

Course Requirements

Attendance during class and lab sessions, completion of weekly short lab assignments and longer projects, and three exams (two midterms and a final). Evaluation will be as follows:

Regular class participation will contribute positively towards your grade, particularly in borderline cases.

Most labs and projects are not designed to be completed during scheduled lab meetings and will require significant work outside of class to complete. Labs are to be submitted using the CodeRunner system and are due at 10 PM the night before your section's next lab meeting.

Late Policy: As concepts covered in the course are highly cumulative, it is crucial that you do not fall behind on assignments. In general, late submissions are not accepted unless an extension is granted by the instructor well in advance of the due date (not the night of the deadline!). Plan ahead and don't wait until the last minute to start working!

Discussion Forum

We will use Piazza to facilitate discussion outside of class. In general, you should prefer posting to Piazza over sending me email, as it will allow your classmates to both see and answer your questions (though you can also post privately such that only instructors can see your question).

Here is the CS 1101 Piazza page.

Textbook (optional)


P. Gries, J. Campbell, and J. Montojo. Practical Programming: An Introduction to Computer Science Using Python, 2nd edition (2013). Available at Amazon or elsewhere.

The textbook is optional but will roughly follow the schedule of the course.

Class Information

Each class section meets three times a week (or twice with one double session). While one meeting is officially designated a 'lab', regular class sessions may be used as labs or vice versa.

All classes (lab or otherwise) meet in Searles 128.

Section A: Tuesday and Thursday
Tuesday 10:00 AM - 11:25 AM
Thursday 10:00 AM - 11:25 AM, 1:00 PM - 2:25 PM
Lab normally during Thursday PM meeting.

Section B: Tuesday, Thursday, and Friday
11:30 AM - 12:55 PM
Lab normally on Friday.

Section C: Monday and Wednesday
Monday 1:00 PM - 2:25 PM
Wednesday 8:00 AM - 9:25 AM, 1:00 PM - 2:25 PM
Lab normally during Wednesday AM meeting.

Final Exam

Section A: May 19, 9:00 AM - 12:00 PM, Searles 128

Section B: May 19, 2:00 PM - 5:00 PM, Searles 128

Section C: May 17, 2:00 PM - 5:00 PM, Searles 128

Electronic Device Policy

Computers will be extensively used for in-class exercises, labs, and exams. Use of personal laptops is permitted for these or other class-related purposes. Cell phones should be silenced and put away during class to avoid disruptions.

No electronic devices, including computers, phones, or calculators, are permitted during exams unless specifically indicated by the instructor.

To set up your computing environment for this course, please follow the CSCI 1101 Environment Setup Guide.

Collaboration Policy and Honor Code

Please review the CSCI 1101 Collaboration Policy. You are responsible for understanding and adhering to this policy!