|
Outcome 2 for 2022-2023
Outcome 2 is: Design, implement, and evaluate a computing-based solution to meet a
given set of computing requirements in the context of the program's
discipline.
The following abilities support outcome 2
-
2a: Data structures.
Effective software development requires
a good understanding of a variety of data
structures, including not just an abstract
view but also a physical view that enables
the software developer to understand the
inner workings of tools and to create his or her
own data structures where needed.
Students are expected to be competent
in implementing and using a variety of data
structures.
-
2b: Procedural abstraction.
Procedural abstraction is the process of breaking a
computational problem down into small, sensible and
well-specified subproblems.
Students are expected to master procedural
abstraction for both problem analysis and
software synthesis.
-
2c: Software testing.
Software testing consists of the dynamic verification that a program
provides expected behaviors on a finite set of test cases, suitably
selected from the usually infinite execution domain.
-
2d: Object-oriented programming and abstract data types.
An Abstract Data Type (ADT) is a mathematical model for data
types. ADTs enable defining the behavior of a data type from the
perspective of users of data — range of values, valid operations
on the data, and behavior of these operations. A generic data type
is an ADT, class, or interface parameterized over types. ADTs
helps to decouple the use of an ADT from its underlying
implementation.
Object-oriented programming (OOP) is a natural extension of
ADTs. OOP adds to ADTs the following features: class, inheritance,
class hierarchy, polymorphism, composition, and interfaces.
|