| 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
|
|
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.
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.
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.
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.