CSCI - Computer Science (CSCI)
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.
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.
Computer organization and architecture, basic processor design, hard wired and microprogrammed control, ALU, memory organization, data paths, pipelining, and interfacing and communications.
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.
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.
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.
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.
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.
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.
Introduction and analysis of IP security, in-depth technical treatment of authentication, email security, web security, network management security, intruders, malicious software, and firewalls.
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.
Intelligent agents, expert systems, heuristic searching, knowledge representation and reasoning, artificial neural networks, ontologies, and natural language processing.
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.