|
CS102 Computer Science II
|
Spring
2008
|
Overview
This class is fundamentally about the way in which complex problems
can be solved in computer science by breaking them down into an
assembly of simpler patterns of data organization and computation.
Over time, we have learned that a standard set of data
structures can be used in combinations and arrangements
(algorithms) to solve a wide variety of useful problems.
We will cover the fundamental data structures (arrays, linked lists,
binary trees, heaps, and hash tables), more advanced data structures
(multiway trees, balanced trees, sets, graphs), fundamental searching
and sorting algorithms, general principles of algorithm design
(recursion, divide-and-conquer, encapsulation, randomization, dynamic
programming), and basic algorithm analysis (asymptotic analysis,
recurrences).
These fundamental concepts will be studied in the
context of applications such as symbolic computation, data
compression, searching, image processing, physical simulation, and
game playing.
All programming will be done in Java
using the Eclipse development
environment.
Prerequisites
CS101 Computer Science I, or permission of instructor.
Lecture
Lectures are in Fulton 415, M/W/F 12:00-12:50.
Facilities
You may use the CS Lab in Fulton 460.
The CS Lab Wiki has much
information on the lab, including
account information.
Grading
Projects (50%) - Four projects broken into weekly programming assignments.
Problem Sets (25%) - Conceptual/mathematical aspects of the material.
Exams (25%) - One in-class midterm exam (10%) and a final exam (15%).
Academic Integrity
Boston College values the academic integrity of its students and
faculty. It is your responsibility to familiarize yourself with the
university’s
policy on academic integrity. If you have any questions, always
consult your professor.
Violations of academic integrity will be reported to your class dean and judged by
the academic integrity committee in your school. If you are found responsible for
violating the policy, penalties may include a failing grade as well as possible
probation, suspension, or expulsion, depending on the seriousness and
circumstances of the violation.
Collaboration Policy
All homework should be done in accordance with the university's policy
on academic integrity. Within this context, there is no limit to how
much you may speak with each other or help each other so long as
any work that you hand in is your own work.
Late Policy
Late homework and programming assignments will not be accepted, and
will receive an automatic zero. The reason for this is that I
will often discuss the homework in lecture immediately, so it
would be unfair to accept late assignments.
Extension Policy
Only extraordinary circumstances merit an exension. I require a
doctor's note with contact information for illness, and a phone call
from a parent or guardian for a family emergency.
Books
The required textbook for this class is:
The following Java language reference is strongly recommended:
The following is an excellent book on good Java practice:
|