intro

CSCI 1101B
Intro to Computer Science

Bowdoin College
Fall 2014
Instructor: Sean Barker

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 Java programming language and build a variety of graphical programs in weekly lab assignments. Labs will reinforce concepts presented in class that are fundamental to computer science and algorithm design regardless of any particular choice of programming language. Topics covered include variables, conditionals, loops, objects, arrays, and recursion.

Prerequisites: None. This course fulfills the MCSR requirement.

People

Instructor: Sean Barker
Email:
Phone: 207-798-4220
Office: Searles 221
Office hours: Tuesdays 12:30-2, Wednesdays 3-4:30, Thursdays 2-4, or by appointment.

Lab Assistant:
Daniel Zeller

TAs / QR Mentors: (office hours in Searles 128, times below)
Kyle Nowak: Sundays 5-7pm
Liam Taylor: Mondays 6-8pm
Heather Witzel Lakin: Wednesdays 7-9pm
Will Conover: Thursday 7-9pm

Course Requirements

Attendance in class and lab sessions, completion of weekly lab assignments, 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 lab assignments are not designed to be completed during scheduled lab meetings and will require 5-10 hours of work to complete. Labs are to be submitted via Blackboard and are due at 10 PM the night before the next lab meeting (Sunday night for the Monday lab section and Monday night for the Tuesday lab section). As concepts used in labs are cumulative, late assignments will not be accepted unless you request an extension from the instructor in advance of the due date.

Textbook

eventfuljava

K. Bruce, A. Danyluk, and T. Murtagh. Java: An Eventful Approach, 1st edition (2005). Available at Amazon or elsewhere.

The textbook is optional but recommended. I will have several copies on-hand for reference and (short-term) loans.

Class Information

Mondays and Wednesdays
11:30 AM - 12:55 PM
Searles 217

Lab Information

Section 1: Mondays
2:30 - 3:55 PM
Searles 128

Section 2: Tuesdays
2:30 - 3:55 PM
Searles 128

Exams

Electronic Device Policy

Use of laptops in-class is permitted for note-taking 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.

Collaboration Policy and Honor Code

You are expected to follow Bowdoin's Computer Use Policy and its Academic Honor Code. No collaboration whatsoever is permitted on exams. You may, however, discuss lab assignments with other class members. Ideally, these discussions should be limited to broad, conceptual questions, since labs are the primary means for you to learn the material, but you are also allowed to discuss more detailed questions regarding the design and implementation of your programs. However, you are not allowed to share code under any circumstances. For example, it is permitted for one student to ask another student how he/she did something or to ask for help debugging a problem in his/her code; it is not permitted for a student to take another student's code or to let another student write code for him/her. Remember that providing help beyond what is allowed here is as much of an infraction as receiving help. Once you have finished the course, sharing your work with future students taking the course is also a violation.

Use of the internet (e.g., Google) for reference purposes is allowed on lab assignments, such as looking up the use of a particular library function. Blindly copying sections of code found online, however, is not allowed, and you should never submit code that you do not understand or would not be able to clearly explain.

In the interest of fairness to all students, violations of this policy are grounds for me to initiate an action that would come before the Judicial Board. If you have any questions about this policy, please do not hesitate to ask for clarification.