Bachelors (BS) in Computer Science
Overview
The computer science major offers a 54-semester-hour core course of study with an optional 29-semester-hour cybersecurity concentration. Students are required to obtain a minimum grade of C- in all courses taken for the major.
Degree Outcomes
Graduates with a BS in computer science will:
- Demonstrate problem-solving competency through programming and software development
- Understand applications of discrete structures and algorithms
- Apply theoretical and practical system implementations (architecture, operating systems, networking, database)
- Apply professional/ethical responsibility to their work
- Understand cultural influences within the technical industry
Major Requirements
Complete the following:
A foundational course for the study of computer science and information systems. The course covers an overview of programming methodology and gives the student an ability to write computer programs using standard style and structure. Programming projects are completed in one or more high-level languages. Additional course fee is required. Prerequisite: High school algebra or equivalent.
A foundational course for the study of computer science and information systems. The course covers an overview of programming methodology and gives the student an ability to write computer programs using standard style and structure. Programming projects are completed in one or more high-level languages. Additional course fee is required. Prerequisite: CSIS 201 Introduction to Computer Science I or ENGR 152 Engineering Principles II.
An introduction to the concepts of information organization and manipulation. The course covers basic sequential structures such as array-backed lists, singly- and doubly-linked lists, stacks, and queues, and moves on to more complex data structures such as trees, graphs, priority queues, and dictionaries. Programming projects are completed in one or more high-level languages. Additional course fee is required. Prerequisites: CSIS 201 Introduction to Computer Science I and CSIS 202 Introduction to Computer Science II.
An introduction to the formal processes and industry-standard tools used in producing quality software. The entire life cycle of software development is presented and utilized. Students work in teams to specify, design, implement, test, release, and maintain a non-trivial software project using a modern software development methodology. Additional course fee required. Prerequisite: CSIS 202 Introduction to Computer Science II.
A study of the organization of database systems for information storage, retrieval, performance, and security. Examples of hierarchic, network, and relational-based systems are presented. Additional course fee is required. Prerequisite: CSIS 310 Data Structures.
An introduction to digital computer hardware architecture and organization. Topics include digital logic, processor design, instruction sets, and system architecture. Programs written in assembly language will be used to gain hands-on experience with the underlying system architecture. Additional course fee is required. Prerequisite: CSIS 310 Data Structures.
A study of the fundamental concepts of object-oriented programming, including data abstraction and typing, encapsulation, single and multiple inheritance, substitutability, static and dynamic polymorphism, generics, interfaces, and design patterns. Object-oriented solutions will be designed using UML class and sequence diagrams and implemented in one or more high-level languages. Additional course fee is required. Prerequisite: CSIS 310 Data Structures.
A study of the basic design of computer programming languages, with the greater emphasis placed on semantics (over syntax). A comparative analysis is made among several of the common languages. Additional course fee is required. Prerequisite: CSIS 310 Data Structures.
An introduction to the design and analysis of algorithms. The course covers the fundamentals of analyzing algorithms for correctness and time and space bounds. Topics include advanced sorting and searching methods, graph algorithms, geometric algorithms, matrix manipulations, string and pattern matching, set algorithms, and polynomial computations. Additional course fee is required. Prerequisite: CSIS 310 Data Structures.
A study of the organization and architecture of computer systems. The major principles of operating systems are presented, along with case studies involving actual operating systems. Additional course fee is required. Prerequisite: CSIS 310 Data Structures.
Servant engineering is a two-semester course sequence typically taken in the student鈥檚 junior year. In the summer before the course begins, students research a potential engineering project designed to serve others. These projects are proposed early in the first semester, and the most feasible projects are selected for the program. Students are then assigned to a team of four or five who work on a selected project. Projects might require a multi-disciplinary team ranging from computer science to civil engineering, or they might be more focused on a specific skill-set. Each team has a faculty mentor who helps guide the project. In both semesters, teams meet weekly with their faculty mentors and work through problem definition, specification development and conceptual development, with the goal of selecting a specific design for detailed design-and-build. Every project will be an opportunity to use the gifts that God has given us to serve others. Additional course fee is required. Prerequisite: ENGR 152 Engineering Principles II. Final enrollment is contingent on approval from the College of Engineering.
Servant engineering is a two-semester course sequence typically taken in the student鈥檚 junior year. In the summer before the course begins, students research a potential engineering project designed to serve others. These projects are proposed early in the first semester, and the most feasible projects are selected for the program. Students are then assigned to a team of four or five who work on a selected project. Projects might require a multi-disciplinary team ranging from computer science to civil engineering, or they might be more focused on a specific skill-set. Each team has a faculty mentor who helps guide the project. In both semesters, teams meet weekly with their faculty mentors and work through problem definition, specification development and conceptual development, with the goal of selecting a specific design for detailed design-and-build. Every project will be an opportunity to use the gifts that God has given us to serve others. Additional course fee required. Prerequisite: ENGR 381. Final enrollment is contingent on approval from the College of Engineering.
In the senior design sequence, students apply their knowledge and design skills gained through course work to an industry-based project. In the first semester, interdisciplinary teams are formed to begin projects in conjunction with participating industrial sponsors. Necessary background research and feasibility studies are completed. Students must also consider the ethical, moral, environmental, and social impact of their designs. Collaboration with other departments of the university is encouraged. Additional course fee is required. Prerequisite: senior status in the engineering major.
The projects that were initiated in the first semester are further developed through simulation, prototyping, and testing. Use of analytic, computer, experimental, and design techniques is applied throughout the project. The design sequence culminates in the construction of the projects, oral presentations, and formal written reports. Additional course fee is required. Prerequisite: ENGR 481 Senior Design I.
The class is a study of limits of functions, applications of derivatives, and an introduction to integration. Prerequisite: MATH 190 Precalculus Mathematics or sufficient score on Math Placement Exam (See Mathematics Department).
An introduction to discrete mathematics. Topics covered include sets, functions, math induction, combinatorics, recurrence, graph theory, trees, and networks.
Students must complete an additional 9 credit hours from the following options:
Computer Science (CSIS) coursework 300-level or above.
Introduction to digital systems and binary codes; Boolean algebra and digital logic devices; combinational logic circuits and design methods; ROM and RAM memory elements; sequential logic circuits and design methods. Laboratory experience includes TTL logic circuits and CAD tools. Three lectures and one laboratory per week. Additional course fee is required. Prerequisite: ENGR 152 Engineering Principles II or CSIS 201 Introduction to Computer Science I.
Optional Concentration
In addition to the Computer Science Core course requirements students can elect to add a Cybersecurity Concentration and complete an additional 29-hours of course work. The 9-hour elective requirement required in the Computer Science Core can be met by the courses required to complete the Cybersecurity Concentration.
Complete the following:
Introduction to digital systems and binary codes; Boolean algebra and digital logic devices; combinational logic circuits and design methods; ROM and RAM memory elements; sequential logic circuits and design methods. Laboratory experience includes TTL logic circuits and CAD tools. Three lectures and one laboratory per week. Additional course fee is required. Prerequisite: ENGR 152 Engineering Principles II or CSIS 201 Introduction to Computer Science I.
In a highly connected, data intensive, and cost-focused business environment, the practice of information security is not a business advantage; it is a customer requirement. Viruses, malware, trojans, denial of service attacks, phishing, and leaks have become headline news. Failure to insure the confidentiality, integrity, and availability of data, costs companies millions, if not billions of dollars in legal settlements, lost business, and trade secrets. The course provides a broad overview of information security principles and practices, including security models, risk management, access controls, intrusion detection and prevention, cryptography, software vulnerabilities, and ethical issues. The course also provides an overview of digital forensics. Students will learn techniques behind digital forensic investigations and evidence collection, and will cover the fundamental steps of the traditional computer forensic methodology, including building forensic workstations, collecting evidence, extracting artifacts, identifying unknown files and reassembling evidence from network packet captures and device images. Additional course fee is required. Prerequisite: CSIS 202 Introduction to Computer Science II.
An introduction to the field of communications among computers and computer systems, with an emphasis placed on local area network (LAN) systems and the OSI model. Students will experience the installation of one or more network systems. Additional course fee is required. Prerequisite: CSIS 202 Introduction to Computer Science II.
As more communications are conducted via mobile and cellular technologies, these technologies have become critical to both industry and private life. The course covers how data is processed and transmitted using mobile and wireless devices. Sample topics include but are not limited to: an overview of smart phone technologies, embedded operating systems, wireless and mobile specific protocols, mobile identifiers, location based services, Internet of Things, drone technologies and more. Additional course fee is required. Prerequisites: CSIS 310 Data Structures and CSIS 312 Computer Security and Digital Forensics.
A study of a number of advanced topics such as cellular and mobile technologies and their security, system vulnerabilities and penetration testing of corporate networks/systems, risk management of information systems, and other current topics. Students will also be introduced to both international and U.S. cyber laws including reporting compliance. Additional course fee is required. Prerequisite: CSIS 473 Secure Software.
A theoretical and practical survey of parallel processing, including a discussion of parallel architectures, parallel programming languages, and parallel algorithms. Students will program one or more parallel computers in a higher-level parallel language. Additional course fee is required. Prerequisite: CSIS 310 Data Structures. (CSIS 460 Operating Systems preferred.)
An introduction to system administration of a local area network (LAN). Topics covered include adding and removing users; monitoring and controlling processes; adding, removing, and managing groups; mounting and unmounting filesystems; monitoring and troubleshooting a TCP/IP network; managing and controlling network and system security; and administration of network file systems. Additional course fee is required. Prerequisite: CSIS 350 Data Communications and Networks.
An introduction to the concepts of defense in-depth, a security industry best practice. Topics include firewalls, backup systems, redundant systems, disaster recovery, and incident handling. Upon completion, students should be able to plan effective information security defenses, backup systems, and disaster recovery procedures. The course requires a lab component that provides practical experience working with current technologies for defense. Additional course fee is required. Prerequisites: CSIS 413 Ethical Hacking and CSIS 450 Network Administration.
Many security problems in software occur when software developers make poor implementation decisions or unwittingly introduce bugs into their code. The course focuses on many of the classic flaws in systems that can lead to security problems including: buffer overflows, format string problems, race conditions, memory leaks, etc. It also covers many web-application specific topics such as SQL injection attacks and cross-site scripting (XSS) attacks. Additional course fee is required. Prerequisite: CSIS 360 Computer Architecture and Assembly Language.