Top/public/assessment/2020-2021/Outcomes/6
For evaluators
Catalog
Courses
Course coords
Courses offered
Personnel
ABET assessment
Library resources

Curricular issues
Course portfolios
Student transcripts
Dept. meetings
Assessment
    Data & results
    Responsibilities
    Forms
Videos

Site map / help

Outcome 6 for 2020-2021

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.