Computer Science and Information Systems Courses

CSCI 189 - Independent Study
Hours: 0-4

CSCI 197 - Special Topics
Hours: 0-4
Special Topics

CSCI 233 - Application Program Development
Hours: 3
This course emphasizes software building with the use of integrated development tools and software subsystems for diverse applications. Learning activities include laboratory and classroom tasks to develop the knowledge and skills necessary to write effective computer programs for information system applications. Prerequisites: CSCI 151 or COSC 1436.

CSCI 303 - Technical Communication for Computing Professionals
Hours: 3
The course will consist of a study of formal and informal communications for computing professionals. Types of communications that will be examined will include academic conference and journal publications; power point presentations for technical and non-technical audience; writing clean code with comments; collaborative software development; soft skills for IT job interviews; in-house technical reports, progress reports, and email messages; writing blog posts and wiki articles. Some of these communications/documents will be created as an individual requirement and will be completed as a team project. Prerequisites: COSC 1437 with a C or better and Junior standing.

CSCI 310 - Cybersecurity
Hours: 3
This course will provide students with key terminology, system concepts, and current cyber threats to organizations and individuals. This course provides a high-level overview of cybersecurity challenges and counter measures, and introduces the Confidentiality, Integrity, and Availability (CIA) framework for designing and analyzing secure systems. Prerequisites: COSC 1437.

CSCI 317 - Numerical Analysis
Hours: 3
Computer algebra systems will be introduced. Topics include methods for approximate solutions of equations in one variable, polynomial approximation methods, numerical calculus, numerical solutions to ordinary differential equations, linear systems of equations and difference equations. Prerequisites: MATH 2414 with a minimum grade of C or concurrent enrollment in MATH 2414 and COSC 1436 with a minimum grade of C. Crosslisted with: MATH 317.

CSCI 319 - Computational Simulations of Physical Systems
Hours: 3
This self-contained course introduces the student to the Python programming language before exploring applications including finite difference methods, solving linear and non-linear equations, Fourier transforms, simulating physical systems governed by ordinary and partial differential equations, random processes and the Monte Carlo method. No previous programming experience is required. Prerequisites: PHYS 2425.

CSCI 323 - Secure Programming
Hours: 3
The course will provide techniques and best practices utilized in secure coding. This will cultivate the habits of programming with a security consideration. Prerequisites: COSC 2336 and CSCI 310 or concurrent enrollment with CSCI 310.

CSCI 324 - Software Engineering
Hours: 3
This course will provide an overview of software design with architectural design. It will include models of software architecture, architecture styles and patterns, decomposition and composition of architectural components and interactions, and component based software development, deployment, and management. Prerequisites: COSC 2336.

CSCI 333 - Applied Data Analytics with Python
Hours: 3
This course covers both theoretical and practical aspects of applied data science, analytics and visualization in Python. The course coverage includes general python programming basics, data structures and algorithm design with heavy emphasis on applying data analysis and visualization techniques to solve real-world problems in different domains. Topics include data representation, manipulation and clearing, visualization, regression, convolutional and recurrent neural networks, reinforcement learning, model development and evaluation with most up-to-date Python modules and popular toolkits. Prerequisites: COSC 2336.

CSCI 334 - Introduction to Statistical Programming Methods with R
Hours: 3
This course provides an introduction to probability and statistics with an emphasis on practical data analytic tasks using the R language. The course covers fundamental statistical concepts such as probability, random variables, probability distributions, linear regression and correlation. We use the R language to understand these concepts, and learn how to perform basic statistical analysis on data sets. Experimental methods, sampling distributions, hypothesis testing and basic ANOVA will be introduced. This course also discusses principles of modern data analysis including tidy data principles, visualization, shiny applications, and reproducible research. Prerequisites: COSC 2336.

CSCI 338 - Introduction to Artificial Intelligence with Python
Hours: 3
This course presents a general overview of Artificial Intelligence, a fast-growing field in Computer Science that focuses on building rational or intelligent systems. This course introduces the principle techniques of Artificial Intelligence (AI) using the Python programming language to explore concepts and algorithms that form the foundation of AI systems. The topics covered in this course include: search techniques, classical planning and reasoning, evolutionary algorithms, reinforcement and other general learning algorithms. A historical overview of this fast-growing field is presented, as well as considerations of the ethical and social impacts that AI systems may have. Prerequisites: CSCI 333.

CSCI 340 - Database
Hours: 3
This course is an introduction to database systems and information management. It is designed to develop entry-level knowledge and skills in data modeling, design, and the representation of information in relational database systems. Structured Query Language and advanced features of relational database systems will be utilized to develop database applications. In addition, this course will include topics on the physical characteristics of databases, techniques for improving access to information, and improving performance and reliability with relational database systems. Prerequisites: CSCI 233 or COSC 2336 or concurrent enrollment with COSC 2336 or CSCI 270.

CSCI 345 - Data Security and Privacy
Hours: 3
This course will provide measures and tools used to guard both the data and analytics processes from attacks, theft, or other malicious activities that could harm or negatively affect them from both online and offline aspects. It includes protection of incoming data, data storage, and output data, using big data analytical models and machine learning techniques. Prerequisites: CSCI 310 and CSCI 340. Corequisites: CSCI 360.

CSCI 351 - Foundations of Information Security
Hours: 3
This course provides the foundation for understanding the key issues associated with protecting information processing systems. Topics include essential security concepts, software security, network attacks and countermeasures, and practical cryptography. Prerequisites: CSCI 152 or COSC 1337 or COSC 1437.

CSCI 352 - Digital Forensics
Hours: 3
This course will introduce students to the fundamentals of computer forensics and cyber-crime scene analysis. The various laws and regulations dealing with computer forensic analysis will be discussed. Students will be introduced to the emerging international standards for computer forensic analysis, as well as a formal methodology for conducting computer forensic investigations. The course combines theory and hands-on learning. Prerequisites: CSCI 152 or COSC 1337 or COSC 1437.

CSCI 353 - Threat and Vulnerability Management
Hours: 3
The course will provide tools and processes to identify and analyze various vulnerabilities, needed to protect a computing system. Prerequisites: CSCI 310 with a minimum grade of C and CSCI 430 with a minimum grade of C.

CSCI 359 - Systems Analysis & Design
Hours: 3
This course serves as the initial phase of a comprehensive capstone design project experience, integrating contemporary software engineering practices to equip students with the skills and knowledge necessary for modern software development. In this course, students will delve into traditional and object-oriented methodologies, gaining expertise in the analysis, design, and implementation of computer-based information systems. Furthermore, the curriculum will introduce students to crucial aspects of DevOps, microservices architecture, and containerization technologies to ensure they are well-versed in cutting-edge software development practices. Additionally, students will explore project management techniques tailored to software engineering projects, fostering a holistic understanding of the development lifecycle. Prerequisites: COSC 2336 with a minimum of C or better.

CSCI 360 - Cryptography
Hours: 3
The course includes key concepts and fundamental technology of cryptography, including number-theory related to cybersecurity, such as various encryption/decryption methods. The course will also covers private key / public key approaches. Some advanced methods, such as RSA, DES, and AES will be covered. Prerequisites: CSCI 310 and MATH 2305.

CSCI 371 - Natural Language Processing
Hours: 3
Natural language processing is a crucial field of artificial intelligence, with various cutting-edge real-world applications thanks to the advances of deep learning. This course presents an overview of the theories and practices of Natural Language Processing. It covers different concepts and techniques on how to build software that works with natural language. Topics include, syntax, semantics discourse; and language models. Students will also be introduced to various applications of natural language processing such as spell checking, question answering, conversational systems, and sentiment analysis. The main objective of this course is to learn and apply various algorithms and methods for building applications to process human language. This course will provide theoretical and practical knowledge for applications that learn, interpret, and/or generate natural language. Upon completion of the course, students will have a good understanding of and appreciation for natural language processing and be capable of planning and applying various techniques and computational tools to build natural language processing models. Prerequisites: COSC 2336 with a minimum of C or better.

CSCI 373 - Data Engineering
Hours: 3
This course introduces the basics of data engineering and outlines the steps in the data engineering process. Additionally, it delves into the main ideas of distributed data engineering. Techniques for collecting, transforming, and visualizing data from a variety of sources and formats are covered. The course also instructs on how to use SQL for efficient data querying, manipulation, and management. Emphasis is placed on hands-on labs to ensure thorough knowledge and practical skills development. Prerequisites: COSC 2336.

CSCI 376 - Introduction to Game Design & Development
Hours: 3
Introduction to Game Design & Development provides student with opportunity to learn the necessary concepts and skills of computer game programming in 2D and 3D environments. Students will have the opportunity to design, create, and program fully functional computer games. Topics include engine/design techniques, i.e. real-time 2D/3D graphics, lighting, terrain and texture mapping, visibility and occlusion, collision detection and avoidance, character animation, and Artificial Intelligence characters. Prerequisites: CSCI 270 or COSC 2336.

CSCI 377 - Image Processing and Computer Vision
Hours: 3
This course will introduce Digital Image Processing and Computer Vision from Computer Science point of view. Topics include the fundamental theory and techniques of image representation and modeling, image enhancement, image transforms, and image segmentation. This course will also introduce state-of-art methods in Computer Science research and applications such as object detection, matching, feature extraction, and classification. Prerequisites: CSCI 270 or COSC 2336.

CSCI 378 - Knowledge Graphs
Hours: 3
his course will enable students to design, implement, and utilize knowledge graphs. Anchored on foundational semantic technologies, this course provides a thorough introduction to knowledge representation, Resource Description Framework (RDF), and Web Ontology Language (OWL). Through a balanced blend of theoretical concepts and practical exercises, students will gain hands-on experience in constructing knowledge graphs from a variety of data sources using modern techniques and tools. Prerequisites: COSC 2336.

CSCI 379 - Introduction to Generative AI
Hours: 3
This course provides a foundational understanding of Generative AI, and its real-world applications for text, image, audio, and video generation. Special emphasis will be given to the accuracy of its outputs and the ethical considerations surrounding its usage. Through interactive lectures, hands-on exercises, and insightful case studies, students will gain a well-rounded perspective of the potentials and pitfalls of Generative AI. Prerequisites: COSC 2336.

CSCI 380 - Web Programming and Interface Design
Hours: 3
This course covers modern web development concepts such as client/server architecture, full-stack development, cross-platform design, and responsive interfaces. Students will explore multimedia technologies, microservices like AWS, and harness frameworks for efficient web programming. Through practical projects, students will bridge theory and practice, gaining the skills needed to excel in web development. They will create user-friendly interfaces and multimedia-rich web experiences with confidence in this dynamic field. Corequisite: CSCI 270

CSCI 397 - SPECIAL TOPICS
Hours: 0-4
Special Topics. One to four semester hours. Organized class. May be repeated when topics vary.

CSCI 399 - Junior Cyber Design Project
Hours: 3
Students will work in groups to apply the skills and knowledge acquired to demonstrate their mastery of the discipline through a successfully working prototype project. Prerequisites: Junior Classification, Cybersecurity Majors only. CSCI 310 and Instructor's consent.

CSCI 405 - Internship
Hours: 3
This course is offered to students having work internships within a computing, information technology, or related type of enterprise. Students are supervised by employing personnel and Computer Science faculty. This course gives students the opportunity to earn course credit for the application of computing knowledge and skills used in the working environment. Prerequisites: Junior or Senior standing in CSCI and departmental approval.

CSCI 415 - Ethics, Law & Cybersecurity
Hours: 3
The course introduces students to various aspects of cybersecurity as it relates to computing, ethics and law. The course will define ethics in general and in specific to the field of computer science, morality and moral systems, and provide a distinction between ethical theory and professional ethics. Prerequisites: Junior Standing.

CSCI 419 - Secure Software Development
Hours: 3
Planning and managing of software development projects, with various secure methods and techniques to protect the software system. Planning, scheduling, tracking, cost estimation, risk management, and configuration management, with security and privacy consideration will be covered. Prerequisites: CSCI 310 and CSCI 324.

CSCI 421 - Intrusion Detection & Prevention
Hours: 3
This course provides a look at intrusion detection methodologies and tools and the approaches to handling intrusions when they occur; includes a study of proper computer and network protection procedures to assist in the identification and tracking of intruders. Prerequisites: CSCI 310, CSCI 430, and CSCI 434.

CSCI 422 - Cloud Computing & Security
Hours: 3
This course will cover the key concepts and technologies related to secure cloud computing. The course will include virtualization technology, deployment, models, threats, vulnerabilities, and privacy and security issues in cloud. Prerequisites: CSCI 310 and CSCI 434.

CSCI 428 - Object Oriented Design
Hours: 3
This course introduces fundamental concepts, terminology and methodology of object oriented programming. Further emphasis will be given on current techniques in object oriented analysis, design and applications programming. In particular, the concepts of exception handling, encapsulation, data hiding, inheritance, polymorphism, arrays, and arrayList will be introduced in greater detail. Prerequisites: CSCI 270 or COSC 2336.

CSCI 430 - Operating Systems
Hours: 3
A study of operating systems with emphasis on a multiprogramming environment; concentrates on principles involved in resource management; topics such as job scheduling and memory management are also studied. Prerequisites: CSCI 241 or COSC 2325; and CSCI 270 or COSC 2336.

CSCI 434 - Computer Networks
Hours: 3
This course covers the basic principles and operations of the modern computer networks. Topics include basic data communications, the layered architecture and reference model, protocols and topologies, and network service models and applications. TCP/IP networking and protocols are covered to understand the Internet core functions. Prerequisites: COSC 2325 and COSC 2336.

CSCI 440 - App Software Project Dev
Hours: 3
This is the second part of the capstone design project experience course. As a member of a systems development team, students will experience analysis, design and implementation of a project. Students will delve into contemporary software engineering practices by integrating DevOps, microservices, and containers into their project work. Prerequisites: CSCI 359, CSCI 380.

CSCI 444 - Network Routers and Switches, VLANs and ACLs
Hours: 3
This course is designed to introduce the student to the operation of Computer Network Routers and Communications Switches. Network security features involving Virtual Local Area Networks (VLANs) and Access Control Lists (ACLs) will also be studied. Students will gain practical laboratory experience working with routers and switches. Lab exercises include router and switch configuration, and the implementation of VLANs and ACLs. Prerequisites: CSCI 434.

CSCI 450 - Computer Architecture
Hours: 3
This course offers a comprehensive coverage of computer architecture and the internals of computer systems. Topics include Computer system performance metrics and analysis, instruction set design, CPU organization (datapath and control, out-of-order execution, register renaming, branch handling techniques, supporting precise interrupts in out-of-order pipelines, superscalar processors), Memory systems (caches, virtual memory, TLBs, multi-level cache hierarchies), Input-output systems, Storage systems and RAIDs, Introduction to multicore and multithreaded processors. Upon completion of this course, the student will understand the operations and timing issues of modern microprocessors, memory systems and input/output devices, and the interactions among these components Prerequisites: COSC 1437 and COSC 2325.

CSCI 451 - Wireless and Mobile Security
Hours: 3
This course on wireless networks and mobile security will cover threats, attacks and defenses of wireless and mobile computing platforms spanning across secure coding, cryptography, physical security, underlying protocols for secure communication, and policy management in the wireless and mobile environments, including WiFi networks and mobile devices and cloud. The course will also introduce the functions of monitoring, security detection and malware prevention capabilities to protect its wireless networks and mobile customers. Prerequisites: COSC 2336.

CSCI 452 - Malware Analysis and Reverse Engineering
Hours: 3
This class provides insights about the motivations of malware developers and the software weaknesses commonly exploited. In addition, the course will provide students with concepts, tools and methods associated with reverse engineering malicious code. Different attacking methods will be examined and analyzed to defend against malicious code. Safe handling practices for malware analysis will be taught/practiced. Prerequisites: COSC 2325 and CSCI 310.

CSCI 455 - Parallel Computing
Hours: 3
This course is intended to introduce students to the fundamentals of parallel computing and principles of parallel algorithms. Topics include parallel programming architectures, paradigms, data scattering and gathering, parallel algorithm design, analysis, implementation, performance evaluation, and parallel application development that are scalable and can run efficiently on platforms like desktop systems and supercomputers. Prerequisites: COSC 2336.

CSCI 457 - Programming Mobile Devices
Hours: 3
This course covers the development of applications for network enabled mobile devices including smart phones. Topics include components for graphical user interface, memory management, custom user interface development, touch-based or timer-based event handling, file I/O, animation using 2-D/3-D graphics, audio and video application programming interfaces, and data storage. Object Oriented Programming will be introduced by Swift. Prerequisites: COSC 2336 or CSCI 270.

CSCI 458 - Network Security & Management
Hours: 3
Network access control, intrusion detection and prevention, network and communication protection, network segmentation and flow control/monitoring. Network deep packet inspection and anomaly detection. Prerequisites: CSCI 310, CSCI 434.

CSCI 459 - AI Enhanced Security
Hours: 3
This course will provide key terminology and techniques to understand AI and cybersecurity. It emphasize on how to adopt AI techniques, such as machine learning algorithms and big data techniques to enhance the security and privacy for various computing systems. The course will illustrate the cutting-edge techniques and provide hands-on experiences on combining AI with cybersecurity to enhance various secure systems. Prerequisites: CSCI 310, MATH 2414.

CSCI 463 - Systems Security & Trusted Computing
Hours: 3
This course provides the lower-level systems software and hardware from a security perspective. Discusses the challenges and opportunities present in these lower levels to provide security to the higher levels of kernel and applications Prerequisites: CSCI 310 and CSCI 430.

CSCI 465 - Smart Things Security
Hours: 3
This course will provide the technology and security challenges associated with smart devices, Internet of Things (IoT), Internet of Medical Things (IoMT), and certain cyber-physical systems. The issues are discovered from various perspectives such as hardware, network, management policies, and with hands-on experiences. Prerequisites: CSCI 310 and CSCI 451.

CSCI 467 - Server Security & Maintenance
Hours: 3
This course will provide techniques and methods to maintain and secure servers from intrusions and attacks. Prerequisites: CSCI 310, CSCI 430, and CSCI 434.

CSCI 489 - Independent Study
Hours: 3
Independent Study. One to four semester hours. Individualized instruction/research at an advanced level in a specialized content area under the direction of a faculty member. May be repeated when the topic varies. Prerequisite: Consent of department head.

CSCI 490 - H Honors Thesis
Hours: 3-6

CSCI 491 - H Independent Honors Rdgs
Hours: 3
Individualized instruction/research at an advanced level in a specialized content area under the direction of a faculty member. Prerequisite: Consent of department head. This course may be repeated when the topic varies.

CSCI 497 - Special Topics
Hours: 1-7
Special Topics. One to four semester hours. Organized class. May be repeated when topics vary.

CSCI 499 - Senior Cyber Design Project
Hours: 3
Students will work in groups to apply the skills and knowledge acquired to demonstrate their mastery of the discipline through a successfully working prototype project. Prerequisites: Senior Classification, Cybersecurity Majors only. Course must be scheduled the final semester of graduation and Instructor's consent.