Academic Catalog

CSCI - Computer Science (CSCI)

CSCI U138  Introduction to Computer Technology and Artificial Intelligence  3 Credit Hours  

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.

CSCI U150  Introduction to Computer Science  3 Credit Hours  

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.

Pre/Corequisite(s): MATH U126 or consent of instructor.  
CSCI U200  Computer Science I  3 Credit Hours  

Design, analysis and testing of algorithms and classes, including programming from an Object-Oriented perspective, simple data types, control structures, and arrays.

CSCI U210  Computer Organization  3 Credit Hours  

Computer organization, logic gates and expressions, circuits, CPU, memory, numbering systems, assembly language programming, instruction formats, and addressing modes.

Prerequisite(s): Grade of C or better in CSCI U200; or consent of instructor.  
CSCI U211  Information Systems Hardware and Software  3 Credit Hours  

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.

Prerequisite(s): Grade of C or better in CSCI U200; or consent of instructor.  
CSCI U236  Python Programming  3 Credit Hours  

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.

Prerequisite(s): Grade of C or better in CSCI U200; or consent of instructor.  
CSCI U238  C++ Programming  3 Credit Hours  

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.

Prerequisite(s): Grade of C or better in CSCI U200; or consent of instructor.  
CSCI U300  Computer Science II  3 Credit Hours  

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.

Prerequisite(s): Grade of C or better in CSCI U200; or consent of instructor.  
CSCI U301  Computer Science, Data Science & Mathematics Career Catalyst  1 Credit Hour  

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.

Prerequisite(s): Grade of C or better in CSCI U200 or MATH U241.  
Typically Offered: Upstate Fall Offering, Upstate Spring Offering  
CSCI U310  Introduction to Computer Architecture  3 Credit Hours  

Computer organization and architecture, basic processor design, hard wired and microprogrammed control, ALU, memory organization, data paths, pipelining, and interfacing and communications.

Prerequisite(s): Grade of C or better in CSCI U210; or consent of instructor.  
CSCI U312  Introduction to Computer Networks and Security  3 Credit Hours  

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.

Prerequisite(s): Grade of C or better in CSCI U200; or consent of instructor.  
CSCI U321  Computer Science III  3 Credit Hours  

Design, analysis and testing of advanced data structures, including priority queues, trees, binary search trees, tree traversals and balancing techniques, hashing, and graph theory.

Prerequisite(s): Grade of C or better in both CSCI U300 and MATH U174; or consent of instructor.  
CSCI U355  Digital Forensics  3 Credit Hours  

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.

Prerequisite(s): Grade of C or better in CSCI U300; or consent of instructor.  
CSCI U375  Introduction to Cybersecurity  3 Credit Hours  

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.

Corequisite(s): Enrollment in CSCI U200; or consent of instructor.  
CSCI U395  Internship  3 Credit Hours  

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).

Prerequisite(s): Junior Standing or consent of instructor.  
Typically Offered: Upstate Fall Offering, Upstate Spring Offering, Upstate Summer Offering  
CSCI U399  Independent Study  1-9 Credit Hours  

As needed.

CSCI U412  Introduction to Computer Networks and Security  3 Credit Hours  

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.

Prerequisite(s): Grade of C or better in CSCI U200; or consent of instructor.  
CSCI U421  Design and Analysis of Algorithms  3 Credit Hours  

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).

Prerequisite(s): Grade of C or better in CSCI U321; or consent of instructor.  
CSCI U450  E-Business Web Application Development  3 Credit Hours  

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.

Prerequisite(s): Grade of C or better in CSCI U300; or consent of instructor.  
CSCI U455  Computer Security  3 Credit Hours  

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.

Prerequisite(s): Grade of C or better in CSCI U300; or consent of instructor.  
CSCI U456  Applied Cryptography  3 Credit Hours  

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.

Prerequisite(s): Grade of C or better in CSCI U321; or consent of instructor.  
CSCI U459  Data Analytics and Visualization  3 Credit Hours  

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.

Prerequisite(s): C or better in CSCI U300 or consent of the instructor.  
CSCI U460  Digital Forensics  3 Credit Hours  

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.

Prerequisite(s): C or better in CSCI U312 or consent of instructor.  
CSCI U499  Directed Research  3 Credit Hours  

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.

Prerequisite(s): Grade of C or better in CSCI 300; or consent of instructor.  
CSCI U509  Topics in Computer Science  3 Credit Hours  

Selected topics of special interest in computer science. May be repeated for credit.

Prerequisite(s): Consent of instructor.  
CSCI U511  Operating Systems  3 Credit Hours  

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.

Prerequisite(s): Grade of C or better in CSCI U210 and CSCI U321; or consent of instructor.  
CSCI U512  Advanced Networking  3 Credit Hours  

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.

Prerequisite(s): Grade of C or better in CSCI U412; or consent of instructor.  
CSCI U515  Wireless Networks  3 Credit Hours  

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.

Prerequisite(s): Grade of C or better in CSCI U412; or consent of instructor.  
CSCI U516  Distributed and Network Programming  3 Credit Hours  

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.

Prerequisite(s): Grade of C or better in CSCI U321; or consent of instructor.  
CSCI U520  Database System Design  3 Credit Hours  

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.

Prerequisite(s): Grade of C or better in CSCI U300; or consent of instructor.  
CSCI U521  Database Implementation, Application and Administration  3 Credit Hours  

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.

Prerequisite(s): Grade of C or better in CSCI U520; or consent of instructor.  
CSCI U525  Knowledge Discovery and Data Mining  3 Credit Hours  

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.

Prerequisite(s): Grade of C or better in CSCI U300; or consent of instructor.  
CSCI U530  Programming Language Structures  3 Credit Hours  

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.

Prerequisite(s): Grade of C or better in CSCI U210 and CSCI U321; or consent of instructor.  
CSCI U540  Software Engineering  3 Credit Hours  

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.

Prerequisite(s): Grade of C or better in CSCI U321; or consent of instructor.  
CSCI U545  Operating System Security  3 Credit Hours  

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.

Prerequisite(s): C or better in CSCI U210 and CSCI U312 or consent of instructor.  
CSCI U550  AI and Cybersecurity  3 Credit Hours  

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.

Prerequisite(s): Grade of C or better in CSCI U300 or consent of instructor.  
CSCI U555  Advanced Computer Security and Information Assurance  3 Credit Hours  

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.

Prerequisite(s): Grade of C or better in CSCI U412 and CSCI U455; or consent of instructor.  
CSCI U560  Numerical Analysis  3 Credit Hours  

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.

Prerequisite(s): MATH U245 and MATH U344, and programming competency.  
CSCI U565  Secure Software Development  3 Credit Hours  

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.

Prerequisite(s): C or better in CSCI U321 or consent of instructor.  
CSCI U570  Network Security  3 Credit Hours  

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.

Prerequisite(s): Grade of C or better in CSCI U375 and CSCI U312; or consent of instructor.  
CSCI U575  Applied Cybersecurity  3 Credit Hours  

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.

Prerequisite(s): Grade of C or better in CSCI U375; or consent of instructor.  
CSCI U580  Introduction to Artificial Intelligence  3 Credit Hours  

Intelligent agents, expert systems, heuristic searching, knowledge representation and reasoning, artificial neural networks, ontologies, and natural language processing.

Prerequisite(s): Grade of C or better in CSCI U321; or consent of instructor.  
CSCI U590  Cloud Security  3 Credit Hours  

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.

Prerequisite(s): C or better in CSCI U300 and CSCI U312 or consent of instructor.  
CSCI U599  Computer Science Senior Seminar  3 Credit Hours  

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.

Prerequisite(s): 12 hours of 300 level or above computer science courses; and consent of instructor.