Academic Catalog

CSCI - Computer Science (CSCI)

CSCI U138  Introduction to Computer Technology  3 Credit Hours  

Introduction to graphical user interface, word processing, spreadsheet, database, Internet, cross-platform training, computer components and peripherals, input/output concepts, storage concepts, and computer buyer's guide considerations.

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

Introduction of information security practices and needs including concepts of information security, types of attacks, risk analysis and management, security technologies, and basic information security implementation.

Prerequisite(s): Grade of C or better in CSCI U200; or consent of instructor.  
CSCI U395  Internship  1-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  

Symmetric-key cryptography including Stream ciphers and Advanced Encryption Standard, password-based encryption, public-key cryptography, session-key encryption, digital signatures, hash functions and message authentication codes. The hands-on laboratories provide extensive practice on file encryption using public-key cryptography, password storage and authentication by message digest, utilization of key transport and key agreement to establish secure channel for socket programming and RSA encryption implementation.

Prerequisite(s): Grade of C or better in CSCI U321; 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 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 U570  Network Security  3 Credit Hours  

Introduction and analysis of IP security, in-depth technical treatment of authentication, email security, web security, network management security, intruders, malicious software, and firewalls.

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

Introduction to practical concepts and principles of personal, organizational, and national cybersecurity, including hands-on labs and examples in computer security, network security, web security, encryption, security policies, countering cyber stalking, social engineering, fraud and abuse, malware, computer viruses, techniques used by hackers, and how to detect and combat cyber threats.

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