CS 101 Introduction to Computer Science Fall 2005

Course Information

Course Homepage:
http://bj.middlebury.edu/~cs101/

Time and Place:
Lectures: MWF 9:05-9:55 (A) and MWF 10:10-11:00 (B)
in McCardell Bicentennial Hall 303
Labs: Tues 9:30-10:45 (X), 11-12:15 (Y), 1:30-2:45 (Z)
in McCardell Bicentennial Hall 505

Professors:
Amy Briggs
McCardell Bicentennial Hall 634
443-2255
cs101 "at" middlebury.edu
Office Hours: Monday, Wednesday, Friday 11-12,
and by appointment

Tim Huang
McCardell Bicentennial Hall 637
443-2431
cs101 "at" middlebury.edu
Office Hours: Tuesday 3-4:50pm, Friday 2-4:30pm,
and by appointment

Lab system administrator:
Dave Guertin
McCardell Bicentennial Hall 506
443-3143
guertin "at" middlebury.edu

Text book (required):
Java: An Eventful Approach, by Kim Bruce, Andrea Danyluk, and Thomas Murtagh
Prentice Hall, 2005


Course Overview

What is computer science, and what are the analytical skills that enable computer scientists to build systems that do everything from managing enormous web sites to creating spectacular graphics to ensuring the confidentiality of information transmitted over the internet? To begin to answer this question, CS 101 provides an introduction to the structure of computer programs and the principles of abstraction that are fundamental to all computer systems, both simple and complex. Through computer labs and programming assignments using the Java programming language, we will explore algorithmic strategies such as divide-and-conquer, recursion, iteration, and selection; abstraction as a means to capturing common patterns and managing levels of complexity; and object-oriented methodology for building well-organized, easily extensible computer programs.


Honor Code

The work you submit in CS 101 must be the result of your own individual effort. You may discuss strategies for approaching homework and lab problems with your classmates, and you may receive debugging help from them, but you must write your own code. It is unacceptable to write a program together with one or more classmates and then turn in multiple copies of the same program or to copy code written by your classmates. You may not read or copy someone else's solutions from the current or past semesters, and you should never have in your possession a copy of all or part of another student's homework. If you do receive conceptual or debugging help from other students, you should acknowledge their assistance on your write-ups. It is also your responsibility to protect your own work from unauthorized access by others. Quizzes and exams, whether in-class or take-home, must be entirely your own work. The use of class decompilers is expressly forbidden on all work including labs, homework, and exams. If you have any questions about how the honor code applies, please ask us.

For those who plan to work on homework and labs with others, we suggest the following procedure: spend as much time as you need working with others to understand the problems, take a break to read the newspaper or play ping pong, and then go back and write your programs without the notes you used while working with the others. This will help ensure that you follow both the letter and the spirit of the honor code.


Coursework and Grading

Your grade will be based on attendance and participation, weekly homework assignments, occasional quizzes, an evening midterm exam, two programming exams, and a final exam. The components will be weighted as follows:
    Attendance, participation, and quizzes  10%
    Homework assignments          40%
    Test Programs                 25%
    Final                         25%

Although the assignments will vary somewhat in difficulty and required time, all must be completed, as they will be equally important for your understanding of the course material. Lab attendance is mandatory. Missing labs will lower the "attendance and participation" component of your grade. If you miss more than 3 labs, you will automatically receive a failing grade in the course. Although the exams are the most significant component of your final grade, the weekly homework assignments are very important. Late assignments will not be accepted. In extenuating circumstances (e.g., serious illness, family emergency, personal crisis), you may request an extension. Such extensions are more likely to be granted if the request is made before the due date. The final exam will be during the scheduled time during finals week.


Acknowledgements

Much of the material used in this course was developed by the computer science faculty at Williams College and adapted by the computer science faculty at Middlebury College.