Content: Students will develop a firm comprehension of the fundamental principles of computing and the capabilities, limitations, and applications of algorithmic problem solving.  The study of these principles involves data structures and algorithms, their formal properties, linguistic abstractions, hardware realizations, and the applications of these concepts in several areas.

Skills: Students will master multiple approaches to programming and problem solving, apply analytical methods that establish the correctness and efficiency of algorithms, use levels of abstraction to manage complexity, and prepare to adapt to technological changes in the field.

Communication: Students will be able to convey technical information in written and oral communication to all audiences, experts and non-experts alike.