Program Objectives and Student Outcomes
Our mission is to prepare graduates for career opportunities in this fast-growing technology field and/or to prepare for graduate study.
The Association of Computing Machinery (ACM), the world’s largest professional organization for educational and scientific computing, has produced a series of recommendations for university-level undergraduate Computer Science programs intended to guide, standardize and ensure breadth and depth of the content presented to students of such programs. The USI Computer Science Program has adopted the ACM recommendations as its goals for producing well-prepared Computer Science graduates. In particular, the USI CS Program strives to adhere to the ACM Computer Science Curriculum 2013  Chapter 3 paragraph, “Characteristics of Computer Science Graduates”. To ensure conformity, the CS Program self-monitors its courses and course content by comparing course topic matter and level of exposure to ACM recommendations. The CS faculty compared offered-content to ACM CC2001, ACM CS2008 and ACM CS2013.
At a broad level, the expected characteristics of USI computer science graduates include the following:
- Mastery of computer science technical foundations.
Graduates have a mastery of computer science as described by the core of the Body of
Knowledge in ACM Computer Science Curriculum 20131.
- Recognition of common computer science themes and principles.
Graduates recognize a number of recurring themes, such as abstraction, complexity, and evolutionary change, and a set of general principles, such as sharing a common resource, security, and concurrency. Graduates understand that these themes and principles have broad application to the field of computer science and should not consider them as relevant only to the domains in which they were introduced.
- Recognition of interplay between theory and practice.
Graduates understand the interplay between theory and practice and the essential links between them. Graduates understand how theory and practice influence each other.
- Capability of assessment from a system-level perspective.
Graduates think at multiple levels of detail and abstraction. This understanding transcends the implementation details of the various components to encompass an appreciation for the structure of computer systems and the processes involved in their construction and analysis. They recognize the context in which a computer system may function, including its interactions with people and the physical world.
- Effective problem solving and critical thinking skills.
Graduates understand how to apply the knowledge they have gained to solve real problems, not just write code and move bits. They are able to design and improve a system based on a quantitative and qualitative assessment of its functionality, usability and performance. They realize that there are multiple solutions to a given problem and that selecting among them is not a purely technical activity, as these solutions will have a real impact on people’s lives. Graduates will also be able to communicate their solution to others, including why and how a solution solves the problem and what assumptions were made.
- Ability to work effectively in a team.
Graduates were involved in at least one substantial team project. In most cases, this experience was a software development project, but other experiences would also appropriate in particular circumstances. Such projects challenged students by being integrative, requiring evaluation of potential solutions, and requiring work on a larger scale than typical course projects. Students had opportunities to develop their interpersonal communication skills as part of their project experience.
- Commitment to life-long learning, and professional and ethical responsibility.
Graduates realize that the computing field advances at a rapid pace, and graduates must possess a solid foundation that allows and encourages them to maintain relevant skills as the field evolves. Specific languages and technology platforms change over time. Therefore, graduates realize that they must continue to learn and adapt their skills throughout their careers. To develop this ability, students were exposed to multiple programming languages, tools, paradigms, and technologies as well as the fundamental underlying principles throughout their education. In addition, graduates were expected to manage their own career development and advancement. Graduates will seek career advancement by engaging in professional development activities, such as certifications, management training, or obtaining domain-specific knowledge.
Graduates recognize the social, legal, ethical, and cultural issues inherent in the discipline of computing. They will further recognize that social, legal, and ethical standards vary internationally. They are knowledgeable about the interplay of ethical issues, technical problems, and aesthetic values that play an important part in the development of computing systems. They will understand their individual and collective responsibility and the possible consequences of failure. They will understand their own limitations as well as the limitations of their tools.
- Effective communication and organizational skills.
Graduates can make effective presentations to a range of audiences about technical problems and their solutions. This may involve face-to-face, written, or electronic communication. They are prepared to work effectively as members of teams. Graduates manage their own learning and development, including managing time, priorities, and progress.
- Awareness of the broad applicability of computing.
Platforms range from embedded micro-sensors to high-performance clusters and distributed clouds. Computer applications impact nearly every aspect of modern life. Graduates understand the full range of opportunities available in computing.
- Appreciation of domain-specific knowledge.
Graduates understand that computing interacts with many different domains. Solutions to many problems require both computing skills and domain knowledge. Therefore, graduates are able to communicate with, and learn from, experts from different domains throughout their careers.
ACM CS2013  identifies 18 high-level Knowledge Areas, divided into 162 Knowledge Units. The Knowledge Units are further classified into student exposure hours. 165 exposure hours have been classified as Core Tier-1 units (topics necessary for all CS programs), 143 hours as Core Tier-2 units (topics that should seriously be considered for inclusion in all CS programs, 80% bare minimum, 90% desirable) and elective hours (topics that should be considered as specialization topic matter for individual programs). A mapping of the USI CS Program can be viewed using this link.
Computer Science students are primarily assessed using three techniques:
A1. exposure to ACM CS2013 Knowledge Units, evaluated by examination,
A2. substantial project work, evaluated by rubrics,
A3. research assignments with written and/or oral presentation, evaluated by rubrics.
Computer Science Program Goals are primarily introduced, reinforced and assessed in the following required courses:
1The Joint Task Force on Computing Curricula ACM/IEEE Computer Society. (2013). Computer Science Curricula 2013. ACM Press and IEEE Computer Society Press.