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 each of the following categories:

  • Introduction

    • 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.
  • Fundamentals

    • 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.
  • Applications

    • 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

    • 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.