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.
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.
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.
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.
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.
Demonstrates critical thinking abilities and effective written and oral communication skills. Can identify, analyze, and use sources in both the technical and research literature.
Understands how to work in a team and evidences the willingness to commit to lifelong learning.