CCIS Learning Outcomes
Updated: October 9, 2014
Learning outcomes for degree programs in Computer Science
-
Understand the intellectual foundations for the design
of software programs and for the design of algorithms
and data structures within programs and larger systems.
Be able to apply these principles in the creation of
software systems.
-
Understand in-depth the three fundamental programming
paradigms: functional, imperative, and object-oriented.
Know when and how to apply these paradigms singly and
in combination to build efficient, maintainable systems.
Be aware that other more specialized paradigms exist
such as declarative and logic-based.
-
Understand the basics of event-driven programming. Be
able to apply this model to create human computer
interfaces or to handle asynchronous data that arrives
from external sources.
-
Develop skills in problem analysis and problem solving,
especially in the context of the high complexity of the
computing world. Be prepared to apply known design
patterns in a setting of multiple constraints. Be able
to invent new approaches by systematic experimentation.
Be able to predict the performance of planned systems
by use of the techniques of algorithm analysis.
-
Understand that the computing world is networked and
that software is almost always running in an
interconnected manner on multiple machines throughout
the network. Be able to take advantage of network
access and at the same time be aware of security risks
and know how to mitigate these risks.
-
Possess some knowledge of the major software technologies:
programming languages, operating systems, network
systems and the web, database management systems,
artificial intelligence, graphics systems,
human computer interfaces, and intelligent systems.
Know some systems in sufficient depth to be
able to design and implement software using these systems.
-
Be sensitive to the relationship of technology to social
issues, in particular: benefits to society and possible
drawbacks; security, both for individuals and
organizations; privacy. Take into account social issues
during the design of software systems.
-
Show respect for the diversity of all individuals in
the computing/information field in all its settings:
academia, research, industry, business, health care,
government. Understand that people have different
backgrounds and experiences that provide varied and
useful perspectives on problem solving and design.
-
Possess skills in writing, reading, and speaking because
communication within organizations and to the public is
essential.
-
Acquire the mathematical foundations appropriate to the
degree program that is chosen by the student. Be able to
use mathematics during the design and analysis of systems.
Additional learning outcomes for degree programs in
Information Science
-
Understand and be able to carry out the steps in the design
of information systems for organizations: planning, analysis,
design, project management, and implementation. Understand
the tradeoffs between traditional development models and more
agile techiques. Be able to choose a development model and
be able to complete a project using that model.
-
Understand and be able to program traditional SQL-based
relational database systems. Be aware of modern trends in
the design of large scale storage systems. Understand
standard text-based techniques for small-scale data storage.
-
Understand human computer interaction from multiple
perspectives:
the pyschology of the user,
the needs of the organization,
and the technical issues of implementation.
Be able to weigh issues of ease of use against concerns for
security.
-
Be able to apply statistical techniques to perform research
on systems about to be deployed or already in the field.
Know how to collect and analyze data about the end user
experience and data about system performance and
throughput.