Computer Science (CSCI)

CSCI-140  Foundations of Computer Science  (3 Credits)  
Introduces the software and hardware components that comprise modern computer systems. It approaches problem solving through algorithms and their implementation in programming languages. It presents elementary concepts of computer architecture and the constraints such architectures impose on the representation of data and on the efficiency of operations. It provides a brief overview of networking, security, and representative software applications.
CSCI-185  Script Programming  (3 Credits)  
Introduces students to the fundamentals of scripting for systems management, emphasizing hands on automation using languages such as Bash and Python. In this course, you will explore variables and simple data types, control structures (conditionals and loops), functions and modular script design, arrays and string manipulation, as well as file and directory input/output with robust error handling. You'll also gain practical experience with regular expressions for text processing.
CSCI-195  Programming I  (3 Credits)  
Introduces the fundamental concepts of programming from an object-oriented perspective. Topics include simple data types, control structures, an introduction to array and string data structures and algorithms, and debugging techniques. The course emphasizes good software engineering principles and developing fundamental programming skills in the context of a language that supports the object-oriented paradigm.
CSCI-250  Introduction to Cybersecurity  (3 Credits)  
Students will explore the role of information security in a hyperconnected world and learn how the exploitation of cyberspace has influenced historical and modern events. Through case studies of cybercrime, malware outbreaks, intrusion detection strategies, and cryptographic techniques, you'll build a deep understanding of how to secure data, systems, and networks. Along the way, you'll examine risk management and the CIA triad, investigate the mechanics of common attacks and defenses, and survey the social, political, economic, and cultural forces that shape cyberspace.
CSCI-270  Networks and Data Communications  (3 Credits)  
You'll gain a solid foundation in how computer networks are architected, built, and secured. We begin by unpacking the OSI and TCP/IP models before moving on to physical media, cabling and connection schemes, and common LAN topologies. You'll learn the inner workings of key protocols (IP, TCP/UDP, ARP, ICMP, Ethernet), practice error detection and flow control techniques, and configure basic switching and routing devices. Finally, we'll explore how to defend those networks-covering firewalls, VLANs, and intrusion detection concepts.
CSCI-281  Discrete Structures  (3 Credits)  
Dive into the discrete mathematics that underpins computer science. You'll explore propositional and predicate logic (including truth tables, proofs by contradiction and induction, and simple digital circuit logic), elementary number theory, and the fundamentals of sets and functions. We'll cover sequences and summations, combinatorics (permutations and combinations), basic graph theory (trees, paths, and connectivity), and discrete probability. Through these topics, you'll develop rigorous proof techniques and problem-solving skills essential for algorithms, cryptography, and the theoretical foundations of computing.
CSCI-294  Contemporary Programming Topics  (3 Credits)  
Addresses the design, implementation, and testing of computer programs using a contemporary programming language different than that used in CSCI-195. The specific programming language used may vary among course offerings. *This course may be repeated for credit provided the programming language is not repeated.
Prerequisites: CSCI-195  
CSCI-295  Programming II  (3 Credits)  
Continuation of CSCI 195. Examine advanced programming language techniques as they apply to problem solving. Topics included inheritance and multi-threading, network programming, recursion, and an introduction to data structures. All topics stress good software engineering practices and debugging techniques.
Prerequisites: CSCI-195  
CSCI-301  Software Engineering  (3 Credits)  
This course offers computer science majors with the knowledge and understanding of how software engineering practices are applied in software development. In a team environment, the students will gather requirements to design and analyze possible solutions. The students will develop, construct, verify, and validate reliable applications. The students will use formal methodologies to refactor the applications based on code and requirements evolution.
Prerequisites: CSCI-295  
CSCI-303  User Interface Design  (3 Credits)  
This course offers computer science majors with the knowledge and understanding of how user-experience (UX) is applied in software development. The students will design, create, and evaluate user-centered applications for a diverse range of user profiles. The students will communicate the results and findings in oral and written formats.
Prerequisites: CSCI-295  
CSCI-310  Data Structures  (3 Credits)  
Introduces the fundamental concepts of data structures and the algorithms that proceed from them. Topics include recursion, fundamental data structures (including stacks, queues, linked lists, hash tables, trees, and graphs) searching and sorting, and the basics of algorithmic analysis. Many data structures are implemented using a high level programming language.
Prerequisites: CSCI-281, CSCI-295  
CSCI-320  Computer Architecture  (3 Credits)  
Introduces the organization and architecture of computer systems, beginning with the standard von Neumann model and then moving forward to more recent architectural concepts. Topics include Boolean functions, logic design, combinational and sequential circuits, basic computer organization (CPU, memory, and input/output), microprogramming, pipeline architecture, multiprocessing.
Prerequisites: CSCI-140, CSCI-281  
CSCI-330  Web Programming  (3 Credits)  
Examine both client-side and server-side programming. Client-side programming includes JavaScript, HyperText Markup Language (HTML5), Cascading Style Sheets (CSS3) and the Document Object Model (DOM). Server-side programming will include web servers, PHP, and MySQL.
Prerequisites: CSCI-185 or CSCI-195  
CSCI-335  Cybersecurity, Hacking & Network Forensics I  (3 Credits)  
Explore the core principles of cyber offense and defense while building foundational network forensics skills. You'll learn to identify and exploit common vulnerabilities, apply hardening techniques to protect applications and systems, and capture & analyze network traffic to reconstruct security incidents. Through hands on labs, projects, and case studies, you'll gain practical experience with intrusion techniques, log analysis, packet inspection, and event reconstruction-setting you up for more advanced forensic investigation in the follow-on course.
Prerequisites: CSCI-270  
CSCI-355  Cryptography  (3 Credits)  
Students will explore both basic and advanced cryptography. Topics include cryptographic system components, symmetric & asymmetric algorithms, modes of operation, key management, PKI, advanced primitives (homomorphic, identity-based, post-quantum), and common cryptanalytic attacks and failures.
Prerequisites: CSCI-281/MATH-220  
CSCI-360  Database Management Systems  (3 Credits)  
Databases underpin nearly every modern information system, and this course introduces you to their essential role in today's organizations. You'll learn the relational model, design techniques using Entity Relationship diagrams, and data normalization processes to ensure integrity and efficiency. Through hands-on labs and projects, you'll implement, query, and maintain a relational database using Structured Query Language (SQL), gaining practical experience in designing tables, defining keys, writing complex queries, and performing routine administration tasks.
CSCI-365  TCP/IP Fundamentals  (3 Credits)  
Delve into the suite of protocols that form the backbone of modern networks, with an emphasis on Transmission Control Protocol and Internet Protocol (TCP/IP) and their critical supporting services. You'll study how TCP manages reliable data delivery and how IP addressing and subnetting enable scalable internetworking. Key topics include ARP, DHCP, DNS, SSH, firewall concepts, routing principles, subnetting and super netting techniques, VLAN configuration, and foundational Internet security practices. Through a mix of lectures and hands on labs, you'll configure and troubleshoot TCP/IP settings, analyze packet captures, deploy core network services, and apply security measures to protect data in transit.
Prerequisites: CSCI-270  
CSCI-375  Network Forensics II  (3 Credits)  
This advanced network forensics course builds on foundational incident-handling skills to teach you how to investigate and analyze security breaches across complex network environments. You'll learn to deploy packet capture tools, sift through system and security logs, and perform intrusion detection/prevention system forensics. Emphasis is placed on reconstructing attack timelines by correlating data from multiple sources, recovering hidden or deleted network artifacts, and maintaining a proper chain of custody. Through hands on labs and realistic breach simulations, you'll master industry standard tools to extract evidence, document your findings in professional forensic reports, and examine real world case studies to understand legal and procedural best practices.
Prerequisites: CSCI-335  
CSCI-393  Algorithm Design & Analysis  (3 Credits)  
Introduces formal techniques to support the design and analysis of algorithms, focusing on both the underlying mathematical theory and practical considerations of efficiency. Topics include algorithm design techniques (brute force, divide and conquer, dynamic programming, and greedy), asymptotic complexity bounds, recurrence relations, sorting, searching, basic graph algorithms, and NP-completeness.
Prerequisites: CSCI-195, CSCI-281  
CSCI-400  Programming Language Concepts  (3 Credits)  
Study of theoretical aspects of programming languages. Topics include general syntax and semantics, axiomatic semantics, context free grammars, regular expressions, finite automata, Turing machines, parameter passing. Imperative, Functional and Logic programming paradigms will be explored.
Prerequisites: CSCI-195  
CSCI-410  Operating Systems  (3 Credits)  
Introduces the fundamentals of operating systems design and implementation. Topics include an overview of the components of an operating system, mutual exclusion and synchronization, implementation of processes, scheduling algorithms, memory management, concurrency, and file systems. *An additional course fee will be charged.
Prerequisites: CSCI-195  
CSCI-415  Computer and Network Security  (3 Credits)  
This course covers the essential concepts and practices for protecting both individual computer systems and networked information environments. Students examine site security and security management principles, intrusion detection and prevention techniques, and incident response strategies. The course includes foundational cryptography concepts such as symmetric and asymmetric encryption, hashing, digital signatures, and secure communication protocols. Through lectures, hands-on exercises, and realworld case studies, students develop the ability to design, implement, and evaluate comprehensive security controls across diverse IT infrastructures.
Prerequisites: CSCI-270, CSCI-365  
CSCI-425  Computer Forensics I  (3 Credits)  
This course introduces the fundamentals of digital evidence acquisition and preservation. You'll learn how to perform forensically sound imaging of storage media, verify integrity through hashing and checksums, and securely handle and document chain of custody procedures. Through hands on labs and case studies, you'll explore primary data structures on FAT16, FAT32, and NTFS file systems and recover deleted or hidden files using industry standard tools. By semester's end, you'll be able to produce admissible forensic images, reproduce verification workflows, and write clear, concise reports of your findings.
Prerequisites: CSCI-270  
CSCI-426  Computer Forensics II  (3 Credits)  
Building on introductory techniques, this course advances your skills in deep artifact analysis, timeline reconstruction, and incident response. You'll examine volatile data capture and memory forensics, reconstruct user activities across multiple log sources, and analyze network traffic captures to identify intrusion indicators. Through complex case studies and project work, you'll integrate data from system memory, application logs, and packet captures to create cohesive event timelines, apply steganalysis methods, and develop recommendations for real world incident investigations.
Prerequisites: CSCI-425  
CSCI-430  Artificial Intelligence  (3 Credits)  
This course provides a comprehensive introduction to the principles and techniques of artificial intelligence. Students will explore intelligent agent architectures, uninformed and informed search strategies, adversarial game playing, knowledge representation and reasoning, constraint satisfaction, planning, and the foundations of machine learning. Through lectures, hands-on programming assignments, and a semester-long project, students will apply AI methods to solve real-world problems and critically assess the performance, limitations, and ethical implications of intelligent systems.
Prerequisites: CSCI-140, CSCI-281  
CSCI-450  Cloud & Server Infrastructure  (3 Credits)  
This course gives you hands on experience designing, deploying, and managing both cloud based and on premises server environments. You'll learn to provision and configure Infrastructure as a Service (IaaS) platforms (e.g., Microsoft Azure, AWS), deploy virtual machines and containers, and administer core services such as Active Directory, DNS, DHCP, and file/print sharing on Windows Server and Linux hosts. The curriculum also covers software defined networking concepts, storage architectures (SAN/NAS), and automation with Infrastructure as Code tools. Through real world labs and projects, you'll build resilient, secure, and scalable infrastructures-whether in the cloud, a data center, or a hybrid topology
Prerequisites: CSCI-270  
CSCI-474  Cybersecurity Practicum  (3 Credits)  
In this applied practicum, each student undertakes an individual, semester long cybersecurity project under faculty supervision. From problem identification and requirements gathering through design, implementation, testing, and documentation, students experience the full lifecycle of a professional cybersecurity engagement. Projects may include-for example-developing and evaluating a new intrusion detection module, architecting a secure cloud deployment, performing an end to end forensics investigation, or building a custom threat hunting toolkit. Deliverables consist of a formal project proposal, periodic status reports, a final technical report, and a recorded live demonstration or defense. This course sharpens hands on skills, project management, and professional communication. Must have senior standing, Cybersecurity major.
CSCI-475  Cybersecurity Capstone Seminar  (3 Credits)  
Building on the practicum or internship foundation, this collaborative seminar challenges small teams to tackle complex, integrative cybersecurity projects-such as enterprise security architecture design, incident response tabletop exercises, or policy development for emerging technologies. Over the semester, teams conduct literature reviews, define scope and deliverables, implement technical components, and present their findings in both written and oral formats. Emphasis is placed on group decision making, stakeholder communication, and synthesizing best practices across technical and managerial domains.
Prerequisites: CSCI-474, CSCI-499  
CSCI-476  Computer Science Capstone Seminar  (3 Credits)  
This course offers computer science majors with the final assessment of the CS program. The student will complete a software development project proposal and project plan, implement the software project, present the finished project, and document the project progress and project closing.
Prerequisites: CSCI-360  
CSCI-480  Topics in Computer Science  (1-3 Credits)  
This course serves as a vehicle for offering a variety of topics in the rapidly changing field of computing. The course may be repeated with different topics. Prerequisites: Instructor permission.
CSCI-490  Independent Study in CSCI/Cybersecurity  (3 Credits)  
Students will work with an instructor on a semester long project. Students will research, write, program or identify objectives and go through the relevant objectives throughout the semester. For computer science it must be computer science related, and for cybersecurity it must be cybersecurity related. Students can take up to 3 credits.
CSCI-499  Internship  (1-3 Credits)  
Experiential learning in a professional business setting based on an agreement between the advisor, student and sponsoring organization on learning contract, placement, academic project, evaluation. Prepare a résumé and participate in the job screening process. Emphasis on how practical experience directly relates to course work.
CSCI-515  Computer and Network Security  (3 Credits)  
Presents the basic concepts and techniques for securing a computer system and for securing information systems in a network environment. Topics include site security, security management, intrusion detection/protection, integrity management, and event recovery.
Prerequisites: CSCI-270, CSCI-250  
CSCI-560  Data Security and Privacy  (3 Credits)  
This course examines security issues related to the safeguarding of sensitive personal and corporate information against deliberate or inadvertent disclosure or corruption. The societal value of security and privacy regulations and the effects of data breaches on individuals and businesses are explored, with particular attention given to balancing interests among individuals, governments, and enterprises.
CSCI-570  Advanced Computer Networks & Data Com  (3 Credits)  
Extends understanding of network topics such as network protocols, topologies, frame relay, ATM, virtual networks, WAN, encryption and other current topics.
Prerequisites: CSCI-270  
CSCI-600  Systems Analysis in the Enterprise  (3 Credits)  
Explores the different phases involved in the development of an information system: Planning, Analysis, Design, and Implementation. These phases are examined through the Object Oriented paradigm using the Unified Modeling Language (UML). Students will complete the Planning, Analysis, and Design phases of a semester long project. *An additional course fee will be charged.
CSCI-630  Information Assurance  (3 Credits)  
Study of the issues related to management of the computer systems security function in a corporate setting. Topics include the relationship of security to a corporate mission, creating security plans and policies, budget and implementation issues, risk assessment and management, and auditing and compliance. *An additional course fee will be charged.
CSCI-635  Secure Software Design  (3 Credits)  
This course addresses the field of software security, focusing particularly on preventing risks and vulnerabilities that can arise early in the software development life cycle. The emphasis is on methodologies for identifying and eliminating common weaknesses in software security.
CSCI-640  Legal & Ethical Issues in Informational Technology Management  (3 Credits)  
Explores legal, ethical and social implications of computing from the perspective of the information technology manager. Examines ethical theory in the context of computing, ethical codes for computing professionals, with emphasis on organizational leadership and management. Examines current law and court precedents as they pertain to digital creations as intellectual property, software contracts, employer/employee relationships, data security and control, privacy, e-discovery, safety-critical software, and transnational issues. *An additional course fee will be charged.
CSCI-650  Project Management and Control  (3 Credits)  
Addresses the business and control aspects of managing projects. Students will learn how to accurately estimate a project's scope, schedule, budget, and staffing needs. Project control will also be addressed, paying particular attention to critical-path monitoring, activity dependencies, activity lead-lag times, avoiding "scope creep," and critical resources management. *An additional course fee will be charged.
CSCI-660  Computers in Commerce  (3 Credits)  
Examines the benefits and risks associated with a variety of computerized business systems and the impact of computerization on traditional business processes. The information technology infrastructure required to support automated business processes is addressed. *An additional course fee will be charged.
CSCI-740  Management of Information Technology  (3 Credits)  
This course is directly concerned with the management issues surrounding information and telecommunications systems. Presents the ingredients of management knowledge necessary for success in the management of information technology. This course views information technology from the perspective of managers at several levels-from the CIO to the first line manager. It provides frameworks and management principles that current or aspiring managers can employ to cope with the challenges inherent in the implementation of rapidly advancing technology. *An additional course fee will be charged.
CSCI-775  Professional Internship  (1-3 Credits)  
Supervised professional work experience to provide practical experience in the IT field. May be repeated as needed but credits earned may not be used to replace either a core course or an elective.
CSCI-780  Special Topics in Information Technology  (3 Credits)  
This course will present special topics from the information technology fields that are not covered in the regular curriculum. May be repeated with different topics. *An additional course fee will be charged.
CSCI-790  Research  (3 Credits)  
This course will be used by a student who has chosen to complete independent research. This course is only available on a pass/fail basis. *An additional course fee will be charged.