|
Outcome 6 for 2022-2023
Outcome 6 is:
Apply computer science theory and software development fundamentals to
produce computing-based solutions.
The following abilities support outcome 6:
-
6a: ETS Major Field Test.
The ETS Major Field Test in computer science
tests a student's comprehension in fundamental
areas of computer science. It allows us
to know where our graduating students
stand compared to other computer science students
across the nation.
-
6b: Finite-state machines.
Deterministic Finite Automata (DFA) are models of computers with limited amount of memory.
They typically serve as a starting point in undergraduate theory courses.
However, they are ubiquotous and have applications in many different areas
such as sequential logic cirucit design, neural networks, markov chains and
lexical analyzers. Here, we test the ability of students to design a DFA
to recognize a specified language.
-
6c: Functional programming.
Functional programming is an approach based on
stating facts and on using data structures that
have no time-varying characteristics.
Studying functional programming
shows students how to think about the relationship
between what they write in software and underlying facts.
Those ideas can be employed in most programming languages
and they lead to more reliable software.
Students are expected to demonstrate competency
in writing in a functional style.
-
6d: Relational databases and SQL.
In relational database, the database is represented as a collection of relations.
SQL is a query language to query and manipulate the relational database.
-
6e: Software development life cycle.
The software development life cycle (SDLC) is the series of steps used to
manage the development of a software project. This includes steps for
gathering requirements, designing the overall architecture or more
detailed system components, development and testing, and
maintenance/evolution of the system. Different process models organize
these steps in different flows (e.g., linear versus iterative and/or
incremental models), with different expected deliverables, preconditions,
and postconditions for each step.
-
6f: Concurrency.
Concurrent computing refers to situations where different
computational tasks are executed in overlapping time periods
(i.e, concurrently) instead of sequentially (one after the
other). The tasks could be implemented as processes or
threads. Also, there may be a need to synchronize the different
tasks in some manner. Here, we test the ability of students to
solve a problem using concurrent programming that involves either
multiple processes or multiple threads.
|