Cybersecurity and Operations


CSCI 101. Introduction to Computer Science. 3 Hours.

General hardware and software issues such as: terminology, environments. Applications such as: word processing, spreadsheets, databases, Internet usage.

CSCI 111. Introduction to Web Languages. 4 Hours.

Introduction to programming in a high-level language. Emphasis on problem solving and logical thinking. Design, implementation and testing of programs for small scale problems using elementary data types and control structures using web programming languages.

CSCI 112. Visual Basic and VBA. 4 Hours.

Introduction to programming in the Visual BASIC and Visual Basic Application.

CSCI 160. Computer Science I. 4 Hours.

An introduction to computer science, with problem solving algorithm development, and structured programming in a high-level language. Emphasis is on code design, code debugging, and code documentation, using techniques of good programming style. Prerequisites: ASC 93 with a C or higher or instructor consent.

CSCI 161. Computer Science II. 4 Hours.

Object-oriented concepts, terminology and notation. The C++ language is explored including topics such as dynamic memory, exception handling, function and class templates, operator overloading, inheritance, polymorphism, and generic programming with the standard template library. Additional topics may include GUI libraries. Prerequisites: CSCI 160 and MATH 103 with a C or higher in both courses.

CSCI 221. Web and Internet Programming. 4 Hours.

Service side programming for the WWW. Emphasis on servlet programming and distributed component programming using API's for object serialization, remote method invocation, database connectivity and XML generation. Prerequisite: CSCI 161 with a C or higher.

CSCI 242. Algorithms & Data Structures I. 4 Hours.

Advanced programming techniques including recursion, divide-and-conquer, and backtracking will be considered. Dynamic and static data structures including lists, stacks, and queues. Modular programming, program specification and verification, and analysis of algorithms. Prerequisites: CSCI 161, MATH 107 or both MATH 103 and MATH 105 with a C or higher in all courses.

CSCI 243. Algorithms & Data Structures II. 4 Hours.

Advanced programming techniques including sorting, binary trees, AVL trees, graphs and networks. A discussion of searching techniques for conceptual graphs and networks and additional searching strategies. Analysis of algorithms will also be presented. Prerequisite: CSCI 242 with a C or higher.

CSCI 260. UNIX Environment. 4 Hours.

An introduction to the UNIX environment. Basic tools and utilities. Shell programming. Prerequisite: CSCI 160.

CSCI 275. Computer and Digital Hardware I. 4 Hours.

Fundamentals of digital systems, data representations, mathematics digital systems, microprocessor design and instruction sets, introduction to laboratory equipment. Prerequisites: CSCI 161. Corequisite CSCI 161.

CSCI 297. Internship. 1-8 Hour.

Supervised professional work experience in a cyber-technology environment at the 100 & 200 course level. May not be counted towards earned credits for major or minor. Student must have departmental approval before enrolling.

CSCI 299. Special Topics. 1-4 Hour.

Prerequisite: CSCI 160.

CSCI 321. Windows Programming. 4 Hours.

Development of applications for the Windows environment and use of a standard library and its classes. Prerequisite: CSCI 161 with a C or higher.

CSCI 323. Robotics. 4 Hours.

Introduction to robotics, emphasis is on computer design, programming of autonomous robot systems, basic dynamics and control of motion, sensors, and artificial intelligence techniques for robot applications in the real world. Individual and group projects analyze robot control problems, designing hardware, and software solutions. Students write basic control programs for different robot platforms and apply state-of-art artificial intelligence techniques to the control of robotic mechanisms. Prerequisite: CSCI 161 with a C or higher.

CSCI 330. Software Engineering and Testing. 4 Hours.

The principles, methods, and models used to develop and manage software projects, including test implementation of a large-scale project. Prerequisite: CSCI 161, CSCI 275, and CSCI 340 with a C or higher.

CSCI 331. Social Implications. 4 Hours.

An introduction to: The effects of computer technology (hardware and/or software) on society and individuals; ethical problems faced by computer professionals; human interaction and interfacing with computer technology. Prerequisite: CSCI 160 or CSCI 112, or instructor consent.

CSCI 335. Theoretical Computer Science. 4 Hours.

Models of computation, regular expressions, finite automata, Kleene's Theorem, lexical analysis, context-free grammars, pushdown automata, introduction to parsing. Prerequisites: CSCI 242, CSCI 275, and MATH 208, with a C or higher in all courses.

CSCI 340. Computer Networks I. 4 Hours.

Introduction to network design and management. Topics include the local area networks, wireless networks and communication systems, OSI and TCP/IP Models, signals and modulation, protocol designs such as Ethernet, Wifi, Bluetooth, cellular networks, ad hoc networks, flow control, error handling, routing, interfaces, and applications. Prerequisites: CSCI 161, CSCI 275, and MATH 208, with a C or higher in all courses.

CSCI 356. Database Management I. 4 Hours.

Introduction to database management systems, database theory and schema design, and programming, including data modeling, set theory, relational calculus, functional and multivalued data dependencies, and normalization. Various database models are discussed including, relational, NoSQL, network, hierarchical, and inverted files, and database management and security. Prerequisites: CSCI 161 and MATH 208 with a C or higher in all courses or BIT 312 or instructor consent.

CSCI 360. Systems Programming. 4 Hours.

Programming using interrupts and operating systems services. Device driver implementation. Brief comparison of different hardware systems. Prerequisites: CSCI 242, CSCI 275, and MATH 208, with a C or higher in all courses.

CSCI 370. Computer Organization. 4 Hours.

The structure and organization of computer hardware. Register implementation and usage. Memory management. Comparison of architectures. Prerequisites: CSCI 161, CSCI 275, and MATH 208 with a C or higher in all courses.

CSCI 375. Computer and Digital Hardware II. 4 Hours.

Advanced applications of digital systems. Builds on the content of CSCI 275, emphasis on system designs. Prerequisite: CSCI 275.

CSCI 380. Malware Analysis. 4 Hours.

This course introduces students to concepts related to malware analysis and discusses several static analysis techniques. Students will be working with several tools which can function as static analyzers. Students would also understand Malware taxonomies and perform heap analysis to identify malware at run-time.

CSCI 390. Ethical Hacking. 4 Hours.

Development of the structured knowledge base needed to discover vulnerabilities and recommend solutions for tightening network security and protecting data from potential attackers. Focus is on penetration-testing tools and techniques to protect computer networks.

CSCI 391. Teaching Computer Science. 2 Hours.

Classroom management and equipment. Analysis of student difficulties, survey of current literature, observation, and practicum. Prerequisites: CSCI 160, Admission to Teacher Education.

CSCI 410. Defensive Network Security. 4 Hours.

This course explores the methodologies used in the development and deployment of firewalls, anomaly and signature-based detection systems and virtual honeypots. Secure software development techniques will be covered as will practical exercises in how to analyze and defend against network-based attacks.

CSCI 415. Vulnerability Analysis. 4 Hours.

This course introduces students to software vulnerability discovery and how to overcome identified issues from both a design and implementation perspective. Reverse engineering methodologies such as black, grey, and white box testing and techniques such as fuzzing will be covered. Historical vulnerabilities, corresponding exploits and techniques to minimize exposure and mitigate risk will be covered.

CSCI 420. Mobile and Wireless Security. 4 Hours.

This course explores concepts related to various generations of mobile networks such as 2G, 3G, 4G and discusses their security frameworks. Security models related to common mobile platforms such as iOS and Android would be explored. WPA standards in Wi-Fi along with security standards for various proprietary protocols implementing features such as VoIP would also be discussed.

CSCI 425. Applied Cryptography. 4 Hours.

This course investigates advanced topics in cryptography. It begins with an overview of the necessary background in algebra and number theory, private- and public-key cryptosystems, and basic signature schemes. The course will cover number theory and basic theory of Galois fields used in cryptography; the history of primality algorithms and the polynomial-time test of primality; discrete logarithm-based cryptosystems including those based on elliptic-curves; interactive protocols including the role of zero-knowledge proofs in authentication.

CSCI 440. Data Communications & Computer Security. 4 Hours.

Network administration and management of data protocols and models, basic configurations, software, hardware, and routing applications. Problems of computer security and possible solutions, internet security, secure operation system and kernels, with an emphasis on applications. Prerequisite: CSCI 340 with a C or higher.

CSCI 450. Operating Systems. 4 Hours.

Design and implementation of operating systems. Study of the control of and communication between interacting processes. Resource allocation and management in a multiprogramming environment. Prerequisites: CSCI 360 and CSCI 370 with a C or higher in both courses.

CSCI 452. Compiler & Interpreter Construction. 4 Hours.

Theory and practice of program translation. Lexical and syntactic analysis, error detection and response, optimization. Prerequisites: CSCI 335 with a C or better.

CSCI 456. Database Management II. 4 Hours.

Advanced database theory and applications. Students will be expected to have a solid foundation in normalization and database programming. Students will be expected to apply their knowledge of set theory, relational calculus and normalization to design and develop a large database project in a relational database system and create an application which uses the database in the programming language of their choice from a large data set. Prerequisite: CSCI 356 with a C or higher.

CSCI 458. Computer & Network Security. 4 Hours.

Introduction to computer and network security. Topics covered include the CIA triad model, symmetric and public-key encryption algorithms, hashing algorithms, and securing data storage, application and communications systems, firewalls, penetration testing, vulnerability assessments, reverse engineering, malware and ethics. Prerequisites: CSCI 340 and CSCI 370 with a C or higher in both courses.

CSCI 460. Capstone Project. 4 Hours.

The student chooses a research or software development project in consultation with the instructor. The student prepares a project proposal discussing the scope of the project and develops it to those specifications. On completion of the project the student is expected to present the results of their work and submit a final report. It is recommended that the project is focused on student's chosen field of study. Prerequisites: CSCI 242, CSCI 340, CSCI 356, and CSCI 370 with a C or higher in all courses.

CSCI 497. Internship. 1-8 Hour.

Supervised professional experience in computing applications. A maximum of two credits may be counted toward a major or minor. May be repeated up to a total of eight credits. Grading is pass/fail. Prerequisite: Departmental Approval.