Radford University
School of Computing and Information Sciences
Student Outcome 6-CS

(6-CS) Apply computer science theory and software development fundamentals to produce computing-based solutions;

Level 5
The student:
  1. independently identifies and uses mathematics to model systems and analyze their time and space complexity.
  2. Chooses languages, algorithms, and data structures that provide the time and space performance needed for a given task.
  3. identifies and uses library functions that provide needed performance.
  4. is very knowledgeable of consequences of choices of language, algorithms, and data structures.
  5. designs systems that meet all requirements.
  6. chooses a language that is appropriate for the domain, and that has a good balance of flexibility, efficiency, and reliability.
  7. Recognizes where a software pattern exists and implements it.
  8. Uses encapsulation and information hiding to increase abstraction and reliability.
  9. Uses principles of functional decomposition to develop a system that exhibits good program structure.
  10. Decomposes a program into modules or classes that exhibit high cohesion and low coupling.
  11. Can independently refactor code correctly.
  12. Tests code thoroughly.

Level 3
The student:
  1. with guidance can identify and use mathematics to model systems and analyze their time and space complexity .
  2. can choose languages, algorithms, and data structures that needed for a given task but displays little knowledge of their time and space performance.
  3. can identify and use library functions to solve a task, but has little understanding of performance tradeoffs.
  4. is somewhat knowledgeable of consequences of choices of language, algorithms, and data structures.
  5. designs systems that meet some but not all requirements.
  6. can characterize and identify the flexibility, efficiency, and reliability of a language, but many not select the correct language for an application.
  7. can apply a software pattern if directed uses encapsulation and information hiding to increase abstraction and reliability but sometimes incorrectly.
  8. uses principles of functional decomposition to develop a system that overall exhibits good program structure, but with some room for improvement.
  9. decomposes a program into modules or classes whose cohesion and coupling could be improved.
  10. can refactor code when directed to do so, but sometimes incorrectly.
  11. tests code to some extent.

Level 1
The student:
  1. demonstrates little understanding of how to identify and use mathematics to model systems and analyze their time and space complexity.
  2. demonstrates little awareness of how to choose languages, algorithms, and data structures that needed for a given task.
  3. demonstrates little awareness of how to identify and use library functions to solve a task.
  4. demonstrates little understanding of consequences of choices of language, algorithms, and data structures.
  5. designs systems that meet few requirements.
  6. demonstrates little knowledge of the flexibility, efficiency, and reliability of various languages.
  7. has little knowledge of software patterns.
  8. does not use encapsulation and information hiding effectively.
  9. develops systems that do not exhibit good program structure.
  10. decomposes a program into modules or classes with poor cohesion and coupling .
  11. does not recognize opportunities to refactor code and cannot do so when directed.
  12. appears to conduct very little testing of code.