The undergraduate programs are designed to be flexible enough to satisfy the needs of all students interested in computer science. Their goals are twofold:To give students a solid and rigorous background in computer science principles, including the requisite mathematical foundations,To expose students to the problems and solution techniques used in the various areas of the discipline.