# Computer Science

## Computer Science Program Mission

The mission of the Computer Science BS program is to equip students with knowledge in, skills of, and values of computer science and the ability to apply and advance the knowledge, skills, and values of computer science.

## Computer Science Program Goals and Outcomes

Student Learning Goals | Student Learning Outcomes |
---|---|

SLG 1: Demonstrate competency in application of programming principles, including fluency in a high-level language, and the object-oriented paradigm. | SLO 1: Students will be able to understand different datatypes and operators used in C++. |

SLO 2: Students will be able to familiarize themselves with concepts of loops, iteration, functions and recursion using C++. | |

SLO 3: Students will understand the different types of sorting and searching algorithms used. | |

SLO 4: Students will implement functions and overloading. | |

SLO 5: Students will implement arguments such as pass-by-value and pass-by-reference. | |

SLO 6: Student will be able to understand the difference between number systems. | |

SLO 7: Students will be able to build a class using encapsulation which bundles data with methods. | |

SLO 8: Students will be able to use (Private, Public and Protected) specifiers in their objects. | |

SLO 9: Students will be able to overload operators. | |

SLO 10: Students will be able to use objects inside of other objects. | |

SLO 11: Students will be able to use arrays of objects in other objects. | |

SLO 12: Students will be able to design and use an abstract object. | |

SLO 13: Students will be able to design an object hierarchy which uses polymorphism and both static and dynamic methods. | |

SLO 14: Students will be able to template an object. | |

SLO 15: Students will be able to use dynamic memory in objects. | |

SLO 16: Students will be able to throw and catch exceptions. | |

SLG 2: Demonstrate knowledge of architecture and organization of computer systems by designing digital logic circuits and showing proficiency with principles of memory systems, disc array systems, and the central processing unit. | SLO 1: Students will demonstrate knowledge of digital concepts. |

SLO 2: Students will demonstrate knowledge of number systems, operations and codes. | |

SLO 3: Students will demonstrate knowledge of logic gates. | |

SLO 4: Students will demonstrate knowledge of Boolean algebra and logic simplification. | |

SLO 5: Students will demonstrate knowledge of combinational logic analysis. | |

SLO 6: Students will demonstrate knowledge of functions of combinational logic. | |

SLO 7: Students will demonstrate knowledge of latches, flip-flops and timers. | |

SLO 8: Students will demonstrate knowledge of shift registers. | |

SLO 9: Students will demonstrate knowledge of counters. | |

SLO 10: Students will demonstrate knowledge of data processing and control. | |

SLO 11: Understand the merits and pitfalls in computer performance measurements. | |

SLO 12: Understand the impact of instruction set architecture on cost-performance of computer design. | |

SLO 13: Design a pipeline for consistent execution of instructions with minimum hazards. | |

SLO 14: Understand ways to incorporate long latency operations in pipeline design. | |

SLO 15: Understand ways to take advantage of instruction level parallelism for high performance processor design. | |

SLO 16: Understand dynamic scheduling methods and their adaptation to contemporary microprocessor design. | |

SLO 17: Understand the impact of branch scheduling techniques and their impact on processor performance. | |

SLO 18: Understand alternatives in cache design and their impacts on cost/performance. | |

SLO 19: Understand contemporary microprocessor designs and identify various design techniques employed. | |

SLO 20: Design an interconnection networks and multiprocessors. | |

SLO 21: Understand the design process of a computer and critical elements in each step. | |

SLO 22: Understand memory hierarchy and its impact on computer cost/performance. | |

SLO 23: Use a set of hardware simulators to model a complex processor. | |

SLO 24: Use tools for modeling various microprocessor design alternatives. | |

SLO 25: Discuss current events in the microprocessor R&D and industry. | |

SLG 3: Demonstrate knowledge of principles of computer data structures and algorithms and apply them to solve different computer problems. | SLO 1: Students will be able to program and understand (shell, insertion, merge, quick, heap and bin sort). |

SLO 2: Students will understand the amount of time it takes to sort for each sorting algorithm. | |

SLO 3 Students will be able to use dynamic memory to represent linked lists, double linked lists, binary trees and AVL trees. | |

SLO 4: Students will be able analyze a variety of common problems and determine an appropriate algorithmic solution (greedy, backtracking, dynamic programming, etc.). | |

SLG 4: Demonstrate knowledge of and apply the functionalities of different network layers and protocols. | SLO 1: Students would be able to understand concepts related to network and internet. |

SLO 2: Students would be able to understand how TCP packets work in the transport layer. | |

SLO 3: Students would be able to understand how IP packets work in the network layer. | |

SLO 4: Students would be able to answer questions related to concepts of sliding window, checksums and various routing algorithms. | |

SLO 5: Students would be able to work on link layer CRC, checksums and ARP. | |

SLO 6: Students would understand concepts in application layer related to HTTP, FTP and DNS. | |

SLO 7: Students would be able to understand the different types of wireless standards used. | |

SLO 8: Students would get an introduction on multimedia streaming such as Netflix or YouTube. | |

SLO 9: Students would learn the current threats and methods to avoid them in networking. | |

SLG 5: Demonstrate knowledge pertaining to designing database systems for storage and management of data. | SLO 1: Students would be able to understand concepts related to SQL queries. |

SLO 2: Students would be able to design databases and normalize them to reduce redundancy. | |

SLO 3: Students would be able to represent queries using relational algebra and optimize them. | |

SLO 4: Students would be able to work with transaction processing and concurrency control. | |

SLO 5: Students would understand concepts related to trees, hashing and indexes. | |

SLO 6: Students would be able to implement databases in web development using PHP and XML. | |

SLO 7: Students would get an introduction to advanced topics such as Data Mining, Data. Warehousing, NoSQL, Object Oriented databases and Information retrieval. | |

SLG 6: Demonstrate knowledge of and apply concepts of shared memory in a multitasking operating system. | SLO 1: Students will be able to spawn processes. |

SLO 2: Students will be able to communicate with spawned processes through standard input and output. | |

SLO 3: Students will be able to spawn threads based off the number of parameters in the command line. | |

SLO 4: Students will be able to use critical sections to protect data from multiple threads. | |

SLO 5: Students will be able to use semaphores to manage many recourses which are being used by multiple threads. | |

SLO 6: Students will be able to design a computer simulation using threads, critical sections, and semaphores. | |

SLO 7: Students will be able to design a computer simulation using threadpools, critical sections, and semaphores. | |

SLG 7: Demonstrate knowledge of and apply concepts of computational grammar used to analyze a programming language. | SLO 1: Students will be able to create FSM, NFA and DFAs. |

SLO 2: Students will be able to prove a language is not regular. | |

SLO 3: Students will be able to minimize a DFA. | |

SLO 4: Students will be able to write and design a lexer. | |

SLO 5: Students will be able to take grammar and create OPC. | |

SLO 6: Students will be able to design and program bottom up parser. | |

SLO 7: Students will be able to remove left recursion from grammar. | |

SLO 8: Students will be able to design and program, top down parser. | |

SLO 9: Students will be able to find (first & follows) of a grammar. | |

SLO 10: Students will be able to create an LL parse table. | |

SLO 11: Students will be able to create a SLR parse table. | |

SLO 12: Students will be able to program a compiler to parse (variables, procedures & functions). | |

SLO 13: Students will be able to program a symbol table into the parser to recognize scope of variables. | |

SLO 14: Students will be able to parse procedures and functions with parameters. | |

SLO 15: Students will be able to create assembler code for all parsed instructions. | |

SLO 16: Students will be able to parse and create assembler code for if and while instructions. | |

SLO 17: Students will be able to parse and create assembler code for one- & two-dimensional arrays. | |

SLG 8: Demonstrate knowledge of computer science and its implication in modern society. | SLO 1: Comprehend the relationships between ethics, social implications, Human Computer/Cyber Interaction (HCI) and cyber technology. |

SLO 2: Analyze examples of how cyber technology implementations affect and/or impact | |

SLO 3: Analyze historical examples of how cyber computer technology can be a benefit | |

SLO 4: Analyze potential future examples of how cyber technology can be a benefit and/or a | |

SLO 5: Comprehend and analyze computer hardware and software terms and/or concepts, how they are related to each other, and their impact on social, ethical and HCI issues of cyber technology. | |

SLG 9: Demonstrate knowledge of abstract mathematical structures, mathematical techniques, and formal mathematical reasoning as they pertain to the area of computer science. | SLO 1: Students will have a strong knowledge of discrete mathematics. |

SLO 2: Demonstrate the ability to write and evaluate a proof or outline the basic structure of and give examples of each proof technique described. | |

SLO 3: Understand the basic principles of sets and operations in sets. | |

SLO 4: Prove basic set equalities. | |

SLO 5: Apply counting principles to determine probabilities. | |

SLO 6: Demonstrate an understanding of relations and functions and be able to determine their properties. | |

SLO 7: Determine when a function is 1-1 and "onto”. | |

SLO 8: Demonstrate different traversal methods for trees and graph. | |

SLO 9: Model problems in Computer Science using graphs and trees. |

## Bachelor of Science with a Major in Computer Science Option 1

Option-1 Preparation for Graduate School | ||

General Education (40) | ||

General Education Courses ^{1} | 36 | |

Required Core | 48 | |

Computer Science I | ||

Computer Science II | ||

Algorithms & Data Structures I | ||

Computer and Digital Hardware I | ||

Social Implications | ||

Theoretical Computer Science | ||

Computer Networks I | ||

Database Management I | ||

Systems Programming | ||

Computer Organization | ||

Compiler & Interpreter Construction | ||

Capstone Project | ||

Ellect 2 or more credits from the following | 2 | |

Web and Internet Programming | ||

UNIX Environment | ||

Robotics | ||

Data Communications & Computer Security | ||

Database Management II | ||

Internship | ||

Graduate School Option | 16 | |

Algorithms & Data StructuresII | ||

Windows Programming | ||

Software Engineering and Testing | ||

Operating Systems | ||

Required Support Math Courses (20 cr) | 20 | |

Calculus I | ||

Calculus II | ||

Discrete Mathematics I | ||

Elementary Statistics | ||

Linear Algebra | ||

Total Hours | 122 |

^{1} | Math 165 is required for the math GenEd requirement |

## Bachelor of Science with a Major in Computer Science Option 2

Option 2 - Software Development/Engineering | ||

General Education (40) | ||

General Education Courses ^{1} | 36 | |

Required Core | 48 | |

Computer Science I | ||

Computer Science II | ||

Algorithms & Data Structures I | ||

Computer and Digital Hardware I | ||

Social Implications | ||

Theoretical Computer Science | ||

Computer Networks I | ||

Database Management I | ||

Systems Programming | ||

Computer Organization | ||

Compiler & Interpreter Construction | ||

Capstone Project | ||

Software Development/Engineering Option | 20 | |

Web and Internet Programming | ||

Algorithms & Data StructuresII | ||

Windows Programming | ||

Software Engineering and Testing | ||

Computer & Network Security | ||

Elect 2 or more credits from the following | 2 | |

UNIX Environment | ||

Robotics | ||

Data Communications & Computer Security | ||

Operating Systems | ||

Database Management II | ||

Internship | ||

Required Support Math Course (17-18 cr) | 15-16 | |

Applied Calculus | ||

or MATH 165 | Calculus I | |

Discrete Mathematics I | ||

Elementary Statistics | ||

Linear Algebra | ||

Total Hours | 121-122 |

^{1} | Math 146 or 165 is required for the math GenEd requirement |

## Bachelor of Science with a Major in Computer Science Option 3

Option 3 - Computer Security | ||

General Education (40 cr) | ||

General Education Courses ^{1} | 36 | |

Required Core (48 cr) | 48 | |

Computer Science I | ||

Computer Science II | ||

Algorithms & Data Structures I | ||

Computer and Digital Hardware I | ||

Social Implications | ||

Theoretical Computer Science | ||

Computer Networks I | ||

Database Management I | ||

Systems Programming | ||

Computer Organization | ||

Compiler & Interpreter Construction | ||

Capstone Project | ||

Security Option | 20 | |

Web and Internet Programming | ||

UNIX Environment | ||

Windows Programming | ||

Computer & Network Security | ||

Operating Systems | ||

Elect 2 or more credits from the following | 2 | |

Robotics | ||

Data Communications & Computer Security | ||

Database Management II | ||

Internship | ||

Required Support Math Courses (15-16 cr) | 15-16 | |

Applied Calculus | ||

or MATH 165 | Calculus I | |

Discrete Mathematics I | ||

Elementary Statistics | ||

Linear Algebra | ||

Total Hours | 121-122 |

^{1} | Math 146 or 165 is required for the math GenEd requirement |

## Bachelor of Science with a Major in Computer Science Option 4

Option 4 - Database Design/Administration | ||

General Education (40) | ||

General Education ^{1} | 36 | |

Required Core (48 cr) | 48 | |

Computer Science I | ||

Computer Science II | ||

Algorithms & Data Structures I | ||

Computer and Digital Hardware I | ||

Social Implications | ||

Theoretical Computer Science | ||

Computer Networks I | ||

Database Management I | ||

Systems Programming | ||

Computer Organization | ||

Compiler & Interpreter Construction | ||

Capstone Project | ||

Data Base Design/Administration Option | 20 | |

Web and Internet Programming | ||

UNIX Environment | ||

Windows Programming | ||

Database Management II | ||

Computer & Network Security | ||

Elect 3 or more credits from the following | 3-4 | |

Algorithms & Data StructuresII | ||

Robotics | ||

Software Engineering and Testing | ||

Data Communications & Computer Security | ||

Operating Systems | ||

Internship | ||

Required Support Math Courses (15-16 cr) | 15-16 | |

Applied Calculus | ||

or MATH 165 | Calculus I | |

Discrete Mathematics I | ||

Elementary Statistics | ||

Linear Algebra | ||

Total Hours | 122-124 |

^{1} | Math 146 or 165 is required for the math Gen Ed requirement. |

## Bachelor of Science with a Major in Computer Science Option 5

Option 5 - System Administration & Web Programmer | ||

General Education (40 cr) | ||

General Education ^{1} | 36 | |

Required Core (48 cr) | 48 | |

Computer Science I | ||

Computer Science II | ||

Algorithms & Data Structures I | ||

Computer and Digital Hardware I | ||

Social Implications | ||

Theoretical Computer Science | ||

Computer Networks I | ||

Database Management I | ||

Systems Programming | ||

Computer Organization | ||

Compiler & Interpreter Construction | ||

Capstone Project | ||

System Administration & Web Programmer Option | 20 | |

Visual Basic and VBA | ||

Web and Internet Programming | ||

UNIX Environment | ||

Computer & Network Security | ||

Elect 6 or more credits from the following | 6 | |

Algorithms & Data StructuresII | ||

Windows Programming | ||

Robotics | ||

Software Engineering and Testing | ||

Data Communications & Computer Security | ||

Operating Systems | ||

Database Management II | ||

Internship | ||

Required Support Math Courses (13-14 cr) | 11-12 | |

Applied Calculus | ||

or MATH 165 | Calculus I | |

Discrete Mathematics I | ||

Elementary Statistics | ||

Total Hours | 121-122 |

^{1} | Math 146 or 165 is required for the math GenEd requirement. |

## Computer Science Minor (Non-Teaching)

Required Core | ||

CSCI 160 | Computer Science I | 4 |

CSCI 161 | Computer Science II | 4 |

CSCI 242 | Algorithms & Data Structures I | 4 |

CSCI 275 | Computer and Digital Hardware I | 4 |

CSCI 340 | Computer Networks I | 4 |

Select two of the following: | 7-8 | |

Any CSCI 300-400 Level Course | ||

Numerical Analysis | ||

Total Hours | 27-28 |

## Computer Science Minor (Teaching)

Required Core | ||

CSCI 160 | Computer Science I | 4 |

CSCI 161 | Computer Science II | 4 |

CSCI 340 | Computer Networks I | 4 |

CSCI 352 | Comparative Languages | 4 |

CSCI 391 | Teaching Computer Science | 2 |

Select two of the following: | 6-8 | |

Any CSCI 300-400- Level Course | ||

Numerical Analysis | ||

Total Hours | 24-26 |

## Certificate in Computer Programming

This certificate will confirm students’ mastery of knowledge and abilities at a level consistent with entry-level programming positions. The program will be of interest both to students who plan to pursue further work in a computing discipline and to students who wish to complement other interests with substantial knowledge of programming.

Required Course | ||

CSCI 112 | Visual Basic and VBA | 4 |

CSCI 160 | Computer Science I | 4 |

CSCI 221 | Web and Internet Programming | 4 |

CSCI 260 | UNIX Environment | 4 |

CSCI 340 | Computer Networks I | 4 |

Total Hours | 20 |