Undergraduate

Student Learning Outcomes
Computer and Information Science

The Department's Undergraduate Committee states the following Student Learning Outcomes. After graduation, a student should be able to:

  1. Write software programs in multiple programming languages.
  2. Understand the theoretical foundations of computer science, including the study of discrete computational structures.
  3. Understand and use different programming language paradigms such as procedural, object-oriented, etc.
  4. Use different data structures such as linked lists, arrays, stacks, trees, graphs, hash tables, etc. to improve efficiency of software, and mathematically or experimentally analyze them and operations on them.
  5. Know a diverse array of computational algorithms and their analysis techniques, as related to searching, sorting, optimization, and graph problems.
  6. Know fundamental limitations of designing efficient algorithms and the theoretical meaning of the P?=NP problem.
  7. Know the basic concepts in formal language theory and their application to compiler design.
  8. Understand the basic design of computer architecture and their relationship to software design.
  9. Understand and design the basic functionalities of different computer operating systems.
  10. Acquire knowledge in multiple advanced areas of computer science, such as databases, data mining, multimedia, graphics, computing security, networking, software engineering, bio-computing, etc.
  11. Design, develop, and test small scale software projects.
  12. Write scientific project reports and software documentation.