CSCI - Computer Science (CSCI)
Introduction to, word processing, spreadsheet, presentation software, database concepts, computer components and peripherals, input/output concepts, cloud computing and storage, foundational knowledge of artificial intelligence, AI software, AI ethics and limitations, and use of AI in writing, development of presentations, data analysis, data visualization and other employment related tasks.
Current application, security and systems software, hardware devices, social and ethical issues in computing and information technology, propositional logic, search engines, and computer programming concepts. Basic problem solving, logic, and computer programming are introduced through an active learning environment.
Design, analysis and testing of algorithms and classes, including programming from an Object-Oriented perspective, simple data types, control structures, and arrays.
Computer organization, logic gates and expressions, circuits, CPU, memory, numbering systems, assembly language programming, instruction formats, and addressing modes.
An introduction to computer and system architecture and operating systems for system development personnel. Topics include OS platforms, storage architectures, CPU architectures, instruction sets, memory, registers, input-output, and operating system modules such as process, memory, and file management.
Introduction to Python Programming as an object-oriented language with concepts of OO programming, functions, selection statements, iteration statements, argument passing, strings, arrays, lists, dictionaries, files IO, dynamic typing, sequences, sets, assignments, multiple-target assignments, recursion, polymorphism and Python timing methods and tools.
Introduction to C++ as a second object-oriented language with concepts of OO programming, data abstraction, polymorphism, inheritance, graphical user interface design with MFC, and memory management issues.
Advanced design, analysis and testing of algorithms and classes, including inheritance, polymorphism, UML, complexity analysis, recursion, search and sorting techniques, linked lists, stacks and queues.
An exploration of career development in computer science, cybersecurity, computer information systems, data science, and mathematics. Topics include self-assessment; career planning; use of professional networking and code hosting platforms; introduction to open-source coding projects; participation in professional networking events; development of resumes and personal statements; and job searching and interview skills.
Computer organization and architecture, basic processor design, hard wired and microprogrammed control, ALU, memory organization, data paths, pipelining, and interfacing and communications.
Core concepts and technologies in computer networking and network security. Topics include networking models, architectures, and topologies; operation and configuration of common network devices; and key network applications, services, and communication protocols. The course covers fundamental network administration and diagnostic tools, security mechanisms, and vulnerability analysis. Emphasis is placed on log analysis (traffic, threat, audit, and user activity), configuration management, and system architectures including enterprise and cloud platforms. Additional topics include network defense components such as firewalls, VPNs, intrusion detection systems, and data loss prevention, as well as IT governance and physical security controls.
Design, analysis and testing of advanced data structures, including priority queues, trees, binary search trees, tree traversals and balancing techniques, hashing, and graph theory.
Methods, tools and techniques used to maximize efficiency in investigations that involve digital devices, including malicious code analysis, techniques of evaluation of the physical memory of a compromised machine, digital forensics tools, challenges of anti-forensics phenomena, and use and management of storage area network technology for evidence storage.
Fundamental principles, models, and mechanisms of cybersecurity. Topics include the CIA Triad, McCumber Cube, and cyber kill chain frameworks; risk, threat, and vulnerability management; security and access control models; and detection of malicious activity. Emphasis is placed on governance, security controls, and core concepts such as domain separation, least privilege, fail-safe design, and trust relationships in securing systems.
Supervised practical experience related to the student's major in Computer Science, Computer Information Systems, or Cybersecurity in an elected setting planned in conjunction with the appropriate faculty member. The course may be applied for a maximum of three hours as an Upper Level Elective (CS/CIS) or Major Elective (Cybersecurity).
As needed.
Basic concepts required to securely design, implement, maintain, and monitor networks. Topics covered include the OSI model, topologies, safety procedures, network addressing, VLANs, routing protocols, security protocols, security policies and hardware devices, security risks, physical vs. logical security, IoT security, packet sniffing, virtualization, and cloud computing.
Concepts and fundamental strategies of algorithm design; the analysis of computing time and memory requirements; the theory of computational complexity (NP-hard and NP-complete); graph manipulation algorithms (connected components, minimum spanning trees, traveling salesman, cycles in a graph, and coloring of graphs); search algorithms (depth-first, breadth-first, best-first, and alpha-beta minimax); and computational algorithms (matrix multiplication, systems of linear equations, expression evaluation, and sorting).
A project-oriented course involving the complete application development of an online commercial Web site. Basic Web page design, including HTML and Style Sheets is covered, but the focus is on what happens behind the scenes of a business Web site, including client versus server-side information processing, CGI and Event-Driven programming, data transmission, storage and compressions, risk analysis, and security issues.
A survey of the fundamentals of information security, including risks and vulnerabilities, policy formation, controls and protection methods, database security, encryption, authentication technologies, host-based and network-based security issues, personnel and physical security issues, issues of law and privacy.
Principles, algorithms, and applications of modern cryptography. Topics include security functions such as data protection, integrity, authentication, and non-repudiation, block and stream cipher; symmetric and public key cryptography; various hashing functions along with related concepts; digital signatures; key management; and the analysis of major cryptographic algorithms. Additional topics address probability and statistics in cryptographic systems, cryptographic implementation failures, collision resistance, and common attack methods such as brute force, differential and linear cryptanalysis, and man-in-the-middle. Advanced areas of study include identity-based cryptography, homomorphic encryption, quantum key cryptography, and virtual private networks. Case studies and laboratory exercises provide practical experience with cryptographic tools, protocols, and vulnerabilities.
Fundamental concepts and techniques in data analytics and visualization for cybersecurity. Topics include types of data sources, methods of data collection, and techniques for data preprocessing, cleaning, storage, and management. Emphasis is placed on data collection and visualization for cybersecurity applications, with a focus on analyzing, interpreting, and communicating data-driven insights effectively.
Principles, processes, and tools used in digital forensics. Topics include legal and ethical considerations; e-discovery; authentication and chain of custody; acquisition and preservation of digital evidence; forensic imaging; and analysis of operating system, document, e-mail, mobile, and IoT artifacts. Emphasis is placed on the use of open-source and commercial tools for forensic acquisition, analysis, and reporting throughout the digital forensics lifecycle.
An investigation of technical papers from the instructor's area of research. The composition and presentation of technical papers that either survey the existing literature or make an original contribution to the research area is required.
Selected topics of special interest in computer science. May be repeated for credit.
Introduces the fundamentals of operating systems design and implementation, including an overview of the components of an operating system, mutual exclusion and synchronization, I/O, interrupts, implementation of processes, scheduling algorithms, memory management, and file systems.
Wireless and mobile computing, integration of wireless and wired networks, networking cabling and infrastructure, network performance, recovery, interconnecting LANs and WANs, design and diagrams, packet transmission, datagram encapsulation and fragmentation, network security, and network troubleshooting.
Fundamental concepts and techniques employed in wireless and mobile networks such as cellular networks, wireless LANs, and ad-hoc networks. Topics include wireless communication basics, access technologies, medium access control, naming and addressing, routing, mobility support and management, security, and power management.
Design and implementation of distributed application and network communication programs, including network application development with UCP and TCP/IP protocols, introduction to distributed systems and computing, RIM, socket programming, client/server models, and communication primitives, such as datagrams, packet retransmission, routing, addressing, error handling, and flow control.
Database Management System (DBMS) architecture and organization, design and implementation of DBMS, data models, internal databases structures, conceptual modeling, data independence, data definition language, data manipulation language, normalization, transaction processing, recovery, and security.
Design and implementation of database and client/server applications, in-depth treatments of embedded queries and stored procedures, database triggers, database extended languages, architectures and design patterns of distributed application, transaction processing, performance tuning, recovery and backups, auditing, and security.
Extraction and discovery of knowledge from large databases, data integration and data warehousing, data mining algorithms, models, and applications including association rule mining information retrieve (IR) and mining of text databases, decision tree, decision rules, classification techniques, cluster analysis, and evaluation, visualization, and interpretation of patterns.
Paradigms and fundamental concepts of programming languages, such as scope, binding, abstraction, encapsulation, typing, and language syntax and semantics. Functional and logic programming paradigms are also introduced through sample programming languages.
Methods and tools of software engineering, software life cycle, iterative development processes including the Agile Method and Unified Process, object oriented analysis and design of software, software testing, cost and effort estimation, project management, risk analysis, and documentation. A relatively large software system is developed in a team environment.
Operating system security concepts and system administration practices. Topics include installation and configuration of common operating systems (e.g., Linux distros, Windows), application processes and threads, memory management, files systems management, virtualization/hypervisors, fundamental security design principles as applied to an OS, access controls, domain separation, process isolation, resource encapsulation, privilege management, scripting languages, user accounts management, configuration management, event logging and auditing, system services management, network configuration, security policy development, and firewall settings.
Artificial intelligence techniques applied to modern cybersecurity challenges. Topics include the development of AI-driven applications for detecting phishing attacks, malware, intrusions, and anomalies; the collection and analysis of cybersecurity threat intelligence; threat hunting; and network traffic analysis. The course involves constructing and evaluating machine learning and deep learning models using real-world datasets and professional cybersecurity tools.
Cryptography, telecommunication and network security, applications and system development security, Business Continuity Planning (BCP), cyber-crimes and countermeasures. The hands-on laboratories provide extensive practices on firewalls, Virtual Private Networks (VPN), Intrusion Detection Systems (IDS), and other computer security tools.
Difference calculus, direct and interactive techniques for matrix inversion, eigen value problems, numerical solutions of initial value problems in ordinary differential equations, stability, error analysis, and laboratory applications.
Principles and practices for developing secure software throughout the system life cycle. Topics include vulnerability identification and mapping, threat modeling, and security risk management. Students explore software assurance maturity models, configuration management, and approaches to mitigating developmental threats. Emphasis is placed on interpreting and implementing security requirements, applying principles of secure, robust, and defensive programming, and preventing common programming flaws. Additional topics include data obfuscation techniques and security considerations in web application development.
Concepts, tools, and practices used in network defense and security operations. Topics include network monitoring, security incident and event management, policy development and implementation, and alignment of business objectives with technology solutions. Additional areas of focus include evaluation of security products and architectures, assessment of risk posture and appetite, and application of cybersecurity best practices in incident detection and response.
Penetration testing methodologies and threat analysis frameworks. Topics include widely used models for identifying and assessing stages of cyberattacks, log file and anomaly analysis, intrusion detection and prevention, and the use of honeynets and honeypots for threat research. Additional emphasis is placed on vulnerability scanning, attack surface discovery, attack vectors, exploitation and post-exploitation techniques, open-source intelligence gathering, and both passive and active reconnaissance. Coverage is also given to ethical and professional practices in penetration testing methodologies, vulnerability assessment, reconnaissance, exploitation, reporting, and the use of specialized tools and scripts. Laboratory exercises provide practical experience with selected tools and techniques.
Intelligent agents, expert systems, heuristic searching, knowledge representation and reasoning, artificial neural networks, ontologies, and natural language processing.
Virtualization platforms and cloud computing technologies, emphasizing major cloud service models (Software as a Service, Platform as a Service, Desktop as a Service, Infrastructure as a Service, and Function as a Service) and service-oriented architectures. Topics include cloud deployment models, cloud security frameworks encompassing data protection, identity and access management, compliance, governance, and incident response, as well as tools and best practices for ensuring cybersecurity in cloud environments. Topics also include resilience and disaster recovery strategies, forensic and incident response considerations in cloud systems, and key web application technologies. Additional focus areas include web security threats such as SQL injection, cross-site scripting, and application vulnerabilities, along with security mechanisms such as access control, client-side controls, and secure coding practices.
Integration of knowledge at an advanced level, a review of recent developments in theoretical and applied computer science, the exploration of ethical issues, along with research and oral presentation.
