Computer Science (BS)

Shown here are the general learning goals of the program broken down into specific student learning outcomes (SLOs). These SLOs represent what a student should be able to do as a result of successfully completing this program. Student performance on these outcomes are routinely assessed by program faculty as a way of informing programmatic improvement efforts.

Goal Outcome

Computer science students can communicate persuasively and work collaboratively.

  • Students can create a significant software project working collaboratively in a team.
  • Students can demonstrate effective visual and oral communication of technical subjects.
  • Students can produce well written documents explaining technical issues in a variety of contexts.

Computer science students can create an artifact that utilizes knowledge in a specific area of computer science.

  • Students can create a significant software project working collaboratively in a team.

Computer science students can identify the ethical issues of their profession and their responsibilities.

  • Students can identify fundamental ethical/legal issues related to intellectual property, privacy, programmed threats, and professional ethics.
  • Students can identify standard ethical paradigms appropriate for computer science.

Computer science students demonstrate proficiency in software design and development.

  • Students can create object oriented programs to solve well specified problems.
  • Students can implement classical data structures and explain design tradeoffs.
  • Students can trace, explain, classify, and analyze fundamental computer science algorithms.
  • Students can write programs utilizing advanced Java programming features.

Computer science students demonstrate proficiency in the fundamental areas of computer systems.

  • Students can articulate the important components of the linking process.
  • Students can demonstrate knowledge of virtual memory systems by translating virtual addresses to physical addresses and predicting paging behavior.
  • Students can describe the different kinds of exceptional control flow and analyze the code that uses forks for process creation.
  • Students can evaluate the behavior of a digital logic circuit presented in a logic diagram.
  • Students can explain basic concepts in database theory and database systems design and organization.
  • Students can explain I/O and trap routines.
  • Students can explain run time stack and register handling conventions.
  • Students can identify cache parameters and analyze cache performance.
  • Students can identify components of the memory hierarchy and describe how the components are organized, how they operate, and how they interact.
  • Students can identify methods for optimizing code to reduce memory accesses and the number of computations performed.
  • Students can identify the basic elements of a modern processor assembly language.
  • Students can interpret bit patterns as different kinds of data including integers, floating point numbers, characters, and instructions.
  • Students can solve basic word problems that involve counting techniques with combinations and permutations.
  • Students can trace the operation of a processor from a simple sequential CPU to a modern pipelined processor.
  • Students can write basic C programs.

Computer science students demonstrate proficiency in the theoretical foundations of computer science.

  • Students can classify languages in the Chomsky Hierarchy.
  • Students can identify applications of theoretical computer science.
  • Students can read and use mathematical notation and vocabulary.
  • Students can read, follow, analyze, and create algorithms.
  • Students can trace and write proofs.
  • Students can use models such as graphs, abstract machines, and grammars to represent and solve problems.
  • Students understand the complexity of algorithms and the limitations of computers.