Program Outcomes: B.S. in Computer Science (about/accreditation/bs_cs_prog_out)

Program Outcomes: B.S. in Computer Science

Program outcomes are narrow statements that describe what students are expected to know and be able to do by the time of graduation. These relate to the skills, knowledge, and behaviors that students acquire in the program.

All graduates of the BS/CS program in years 2011-12 and later are expected to have achieved these outcomes by graduation:

  • [BS-CS A apply] An ability to apply knowledge of computing and mathematics appropriate to the program's student outcomes and to the discipline.

  • [BS-CS B analyze] An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution.

  • [BS-CS C design] An ability to design, implement, and evaluate a computer-based system. process, component, or program to meet desired needs.

  • [BS-CS D teamwork] An ability to function effectively on teams to accomplish a common goal.

  • [BS-CS E responsibility] An understanding of professional, ethical, legal, security and social issues and responsibilities.

  • [BS-CS F communicate] An ability to communicate effectively with a range of audiences.

  • [BS-CS G impact] An ability to analyze the local and global impact of computing on individuals, organizations, and society.

  • [BS-CS H professional development] Recognition of the need for and an ability to engage in continuing professional development.

  • [BS-CS I currency] An ability to use current techniques, skills, and tools necessary for computing practice.

  • [BS-CS J tradeoffs] An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices.

  • [BS-CS K construction] An ability to apply design and development principles in the construction of software systems of varying complexity.

The outcomes of required CS courses map to these program outcomes. The mapping can be viewed two ways. First, a spreadsheet that gives an overview of which courses cover which program outcomes is available here. Second, each course outcomes page lists the program outcome that each course outcome maps to. Course outcome pages are available as links on this page.

All graduates of the BS/CS program in years 2010-11 and earlier were expected to have achieved these outcomes by graduation:

  • [core:problem-solving] Use algorithmic problem-solving skills to analyze and solve software development problems. Examples include choice or development of appropriate data structures, and choice or development of approriate algorithms.

  • [core:software] Program with facility in at least two programming languages (Java and C); use abstraction and encapsulation in software design; and use modern object-oriented design techniques, including inheritance and UML diagrams.

  • [core:math-stat] Apply discrete mathematics to software applications in areas such as databases, software engineering, and security; be able to use verification techniques from discrete mathematics (such as induction) to be able to reason at least informally about software correctness; and be able to solve basic problems requiring probabilistic reasoning and the application of standard statistical techniques.

  • [core:environments] Build and integrate applications in at least one interactive programming environment (such as Drjava or Eclipse) and at least one operating systems environment (such as Unix), in the latter case using the development and debugging tools of that environment.

  • [core:runtime] Reason about the runtime organization of modern programs and processes, including the runtime stack, heap, and network and disk input-output, in the development, debugging and performance tuning of software applications.

  • [core:teams] Work cooperatively in team projects, and show awareness of and appreciation for group dynamics.

  • [core:communication] Write and present technical reports at a level expected of the software engineering profession.

  • [core:professional] Recognition of the need for, and an ability to engage in, continuing professional development.

  • [core:ethics] Know about ethical problems that face computer scientists and software engineers, quote codes such as the IEEE Code of Ethics that specify the professional response to them, and act according to these codes of ethics.

  • [core:impact] Analyze the local and global impact of computing on individuals, organizations and society

  • [core:humanities] Exhibit an ability to think and argue critically on issues that are social, historical, literary and artistic; demonstrate a basic level of skills in communication and logical analysis.

  • [core:science] Demonstrate an ability to use the scientific method of inquiry, as evinced by a substantial laboratory experience.

  • [sys:networks] Describe network environments including the protocol stacks underlying internet and Web applications, and develop and run distributed programs using sockets and RPC.

  • [cys:threats] Define and use security models to abstractly describe security properties of computer and communication systems in the face of current, emerging, and potential threats.

  • [se:processes] Apply best current practices, software development processes, and software engineering technology to transform a program into a programming systems product.

  • [se:project-management] Manage and schedule small to medium size software projects.

  • [sys:hardware-interface] Work with both hardware and software, understanding the interface between the two to build software that exploits the capabilities of the underlying hardware, including interrupt-driven execution, the ready queue, process protection mechanisms, input-output and memory management.

  • [core:concurrency] Develop both concurrent and distributed software, using synchronization and communication operations such as semaphores, monitors and message-passing.

The outcomes for the B.S. in Computer Science map to the requirements for ABET accreditation as follows:

A 4 math-stat
B 1 requirements
C 16 processes
D 7 teams
E 10 ethics
F 8 communication
G 11 impact
H 9 professional
I 5 environments
J 2 problem-solving
K 3 software