CS 102 Computer Science II
Spring 2014

Computer Science Department
The College of Arts and Sciences
Boston College

About Staff Textbooks Grading Schedule Vista
Piazza algs4 Resources Java APIs Problem Sets
The principal subjects of computer science are information and computation. What are these things? How can we represent information in such a way that it can be used to solve problems? How can we express a computation, an algorithm, that solves a problem in a good way? What is "a good way" anyway? One of the central issues is the question of how to represent things in a computer in such a way that our algorithms can manipulate the representations as required by a given application. By "as required" we mean that both the functional requirements (i.e., what the software system must do) and also the performance requirements (i.e., how efficiently the software does it) must be taken into account. Our programs can't take all day and they must perform well within the existing memory constraints.

This course is primarily concerned with the design and development of efficient data structures and algorithms. A second major theme is to further develop the student's software development skills. To that end we'll stress good programming methodology (e.g., data abstraction, modularity, documentation and testing).

This is very much a hands-on course. You'll find yourself asking a lot of questions starting with "How can I ... ?" By the end of the course, you should be able to design fairly complex programs that do interesting and useful things. The motto of our textbook site, Algorithms, sums it up it poetically, this course explores:

essential information that
every serious programmer
needs to know about
algorithms and data structures
Created on 01-12-2014 22:09.