Learning Outcomes

Students who successfully complete either a major or a minor in the discipline of computer science are expected to demonstrate the successful attainment of learning outcomes in the following basic, core, application, advanced, research, and professional development categories.

Basic Concepts

Understands the basic and practical foundations of computer science (e.g., algorithms, data types, conditional logic, recursion, procedural programming concepts, object-oriented programming principles). Knows how to use standard development tools to implement software solutions to problems.

Core Concepts

Can design, implement, evaluate, improve, and document an algorithmic solution to a problem. Understands the mutually beneficial connections between (i) computer hardware and software and (ii) theoretical computer science and practical software development.

Application Concepts

Understands the basics of application areas such as networking, data management, artificial intelligence, and computer graphics. Can apply key concepts from these application areas to formulate and solve problems and evaluate solutions implemented as computer programs.

Advanced Concepts

Understands advanced concepts in areas such as compiler design, operating systems, and distributed systems. Knows how to apply key ideas from these advanced subjects to formulate and solve problems and evaluate solutions implemented as complete, efficient, and effective computer systems.

Independent Research

Demonstrates critical thinking abilities and effective written and oral communication skills. Can identify, analyze, and use sources in both the technical and research literature.

Professional Development

Understands how to work in a team and evidences the willingness to commit to lifelong learning.