Computer Science (COSC)

COSC 5050. Independent Study. 1-3 Hours.

Students work on a specific research topic under a faculty member's supervision. The specific topic or problem is chosen from current trends and future research directions, which are not covered in the current Computer Science graduate curriculum. Therefore, the course content will vary based upon the topic that both the student and the mentoring faculty member choose. Variable Credit (1 to 3).
Prerequisite: Consent of instructor.

COSC 5300. Computer Science Internship. 3 Hours.

Students engage in a supervised work environment that provides on-the-job computer science related experience within a public, non-profit, or private organization. Under the supervision of a faculty internship coordinator, students apply computing knowledge and theory learned in the classroom to real-world applications, gain practical software coding and development skills, and get professional networking opportunities for their careers in computing and data science. Students are required to complete 240 hours of internship experience in analyzing, designing, developing, testing, implementing, and maintaining software.
Prerequisite: Department Approval.

COSC 5301. Quantitative Foundations of Computer Science. 3 Hours.

Students are provided the fundamental quantitative methods needed in the area of computer science (CS). Topics may include numbering systems, propositional logic, digital logic, combinatorics, probability and statistics, and automata theory, focusing on their application to computing and information science. This course serves graduate students without an undergraduate degree in a quantitative field by providing necessary stem work. This course may not be counted toward the requirements for a graduate degree in Computer Information Science, Digital Forensics, or Information Assurance and Security.
Prerequisite: Approval by the graduate advisor.

COSC 5302. Computer Science Core Topics. 3 Hours.

Students are provided a solid foundation of Computer Science core concepts, fundamental principles, generalizations, and theories essential to pursuing the CS graduate program. Topics may include computer programming, database systems, and computer networks. This course provides stem work for those graduate students whose undergraduate degrees are not in CS and thus have little exposure to core CS topics. This course may not be counted toward the requirements for a graduate degree in Computer Information Science, Digital Forensics, or Information Assurance and Security.
Prerequisite: Approval by the graduate advisor.

COSC 5310. Cryptography & Steganography. 3 Hours.

This course is designed to cover the theoretical and practical aspects of cryptography and steganography including specification, design, and programming. Topics may include digital signatures, symmetric and asymmetric (public key) algorithms, hash functions, cryptographic algorithms, cost to break algorithms including key safety, Diffie-Hellmann, RSA, key stores, Secure Socket Layers, Virtual Private Networks (VPN), Certificate Authorities, and important cryptanalysis and stegananalysis strategies.

COSC 5313. Artificial Intelligence. 3 Hours.

Students engage in a survey of topics in artificial intelligence. Topics may include: history of AI, knowledge representation, knowledge acquisition, search techniques, control strategies, and AI languages. Applications include natural language processing, neural nets, and expert systems.

COSC 5318. Database Systems. 3 Hours.

Students engage in a survey of contemporary topics in database systems. Topics may include: relational database theory, database design issues, normalization, functional dependency, transaction management, indexing, query processing, security integrity issues, data recovery, concurrency problems, optimization, distributed database systems, the client/server model, object-oriented databases, logic/knowledge based systems, and other related topics.

COSC 5319. Algorithm Design and Analysis. 3 Hours.

Students focus on how to design and analyze computing algorithms with emphasis on correctness, -efficiency, and feasibility. Topics may include asymptotic analysis, recurrences and divide-and-conquer algorithms, greedy algorithms, dynamic programming, graph algorithms, and randomized algorithms. Computational complexity theory and computability will also be discussed.

COSC 5320. Computer Architecture & Organization. 3 Hours.

Students are introduced to Computer Architecture and Organization. Topics may include computer evolution and performance issues, the computer systems including system buses, internal and external memory, input/output, and operating system support, CPU issues including computer arithmetic, instruction sets, addressing modes, RISC and superscalar organization, control unit issues, microprogramming, and parallel organization.

COSC 5321. Parallel Computing. 3 Hours.

Students study large-scale parallel processing systems. The central themes are theoretical models, machine architecture, computer algorithms, and programming languages that model, support, describe and implement parallel processing.
Prerequisite: COSC 5319.

COSC 5322. Real-Time and Embedded Systems. 3 Hours.

Students explore real-time and fault-tolerant computing systems. Topics may include interrupt processing, real-time programming and scheduling, fault-tolerant architectures and systems, and robotic programming. Extensive programming will be done.

COSC 5325. Operating System Security. 3 Hours.

Students are provided the rationale and necessity for a full range of security concepts and techniques and how to apply them to multiple operating systems. Students study methodologies for the design of operating system security and forensic techniques for operating systems as well as the identification of best practices in the administration, testing, and security for operating systems.

COSC 5326. Networks & Data Communications. 3 Hours.

Students are introduced to the basic techniques for interconnecting computers and peripherals for decentralized Computer. Network components, digital communications, interconnection architectures, communications protocols for geographic and local area networks and interprocess communications are covered.

COSC 5327. Operating Systems. 3 Hours.

Students engage in a comprehensive study of computer operating systems. Topics may include: computer architecture, concurrent processes, multi-threaded systems, scheduling, memory management, I/O management, file systems, networking and the client/server model, distributed systems, and computer security.

COSC 5329. Mobile Application Development. 3 Hours.

Students learn to create applications for various mobile platforms. Topics may include mobile application development frameworks, software engineering, mobile interface design, programming languages, data management, and application distribution.

COSC 5330. Malware. 3 Hours.

Students are provided an in-depth approach to the identification and deconstruction of malicious software, including static and dynamic analyses, malware deconstruction, and rootkit elimination. The course requires the use of virtual machines to isolate live malware samples, and access to a high-speed internet connection. Credit: 3 hrs.

COSC 5332. Computer Graphics. 3 Hours.

Students study modern Computer Graphics programming techniques. Topics may include: representations, transformations, and analysis of 2-dimensional and 3-dimensional objects; techniques for hidden surface/edge removal, illumination and shading models, rendering, and practical exercises, using Modern OpenGLgraphics software libraries and applications.

COSC 5335. Database Security. 3 Hours.

Database security has an immense impact on the design of today’s electronic information systems. Students are provided an overview of database security concepts and techniques and discuss new directions of database security in the context of a connected commercial world. Students are provided the information needed to develop, deploy, and maintain a secure database solution. The pitfalls of database design, their means of identification and the methods of exploiting vulnerabilities are exposed. Topics may include database authentication, accounts security, wallets, encrypting data while transit and at-rest, database auditing and virtual private database.

COSC 5340. Special Topics. 3 Hours.

Topics and courses are selected to suit individual needs of students. The course may be repeated for additional credit.
Prerequisite: Approval by the graduate advisor.

COSC 6049. Thesis. 1-3 Hours.

This course focuses on the execution of the research project outlined in Thesis 1. During the graduating semester, students will carry out their research plan, analyze data, and draw meaningful conclusions. They will also develop strong academic writing skills for the preparation of a comprehensive thesis document. This course emphasizes effective project management, data analysis, and scholarly writing to ensure students are well-prepared to present their research findings and defend their thesis successfully. Course Equivalents: COSC 6349
Prerequisite: COSC 6348.

COSC 6312. Multimedia Forensics. 3 Hours.

Students examine the theory and practice of multimedia security and forensics. Topics may include image processing, JPEG compression, audio compression (MP3, Advanced Audio Coding, and VOIP), MPEG compression, multimedia source identification, biometrics, steganography, steganalysis, multimedia forgery detection, and pattern recognition techniques for multimedia analysis, multimedia forensics software, and advances in multimedia forensics.
Prerequisite: Approval by the graduate advisor.

COSC 6313. Neural Networks. 3 Hours.

Students are introduced to Neural Networks. Topics may include discussion of variety of standard neural networks, with architecture, training algorithm, and applications; and development of neural network expert systems.

COSC 6314. Data Mining/Knowledge Discovery. 3 Hours.

Students explores the emerging techniques and methodologies in Data Mining for the automatic extraction of latent information and knowledge from ever-evolving huge data. Topics include discussion of variety of data mining and computational algorithms as well as the logic behind the data mining approaches. Students will learn a comprehensive framework to collect, clean, process, extract novel information from large-scale data, and evaluate the result. Recent trends and applications will also be discussed. Course Equivalents: COSC 6414
Prerequisite: COSC 5318.

COSC 6315. Machine Learning. 3 Hours.

Students are provided with the principles, design, and implementation of a broad range of machine learning algorithms. Topics may include computational learning theory, machine learning algorithms, and algorithm assessment techniques. Both a computational aspect (how to compute the answer) and a statistical aspect (how to ensure that future predictions are accurate) of each machine learning algorithm are discussed. Recent trends and application are covered, as well.
Prerequisite: COSC 5319.

COSC 6318. Language and Compiler Design. 3 Hours.

Students engage in a comprehensive study of computer programming languages. Topics may include: language design principles, formal grammars, procedural operating environment, language standardization, and language support for parallel and distributed programming. Language paradigms to be discussed will include procedural programming, logical programming, functional programming, and object-oriented programming.

COSC 6319. Software Engineering. 3 Hours.

Students explore strategies, techniques, and methodologies that deal with the complexity in developing large-scale information systems. Methods for Software engineering methodologies, conventional as well as object-oriented, are discussed. Software measurement and management are discussed. Formal mechanisms for system specification, software development, and project management are introduced.
Prerequisite: Approval by the graduate advisor.

COSC 6321. Distributed Computing. 3 Hours.

Students exam the principles and theories of distributed systems, which include MapReduce, Raft Algorithm, Remote Procedure Call (RPC), etc. In addition, real distributed systems, such as Google File Systems (GFS) and Distributed Transactions, are discussed as examples of recent distributed systems. The course emphasizes both lectures and programming labs, in order to help students validate their understanding through hands-on exercises.
Prerequisite: Graduate Standing.

COSC 6331. Data Visualization. 3 Hours.

Students organize and derive meaning from data by using visual presentation tools and techniques. Topics may include cognitive science, perceptual psychology, data management, data visualization theory, visual designs, evaluations of visual designs, and visualization application programming.
Prerequisite: Graduate Standing.

COSC 6332. Computer Vision. 3 Hours.

Students learn both theoretical and practical aspects of computer vision problems and applications. Topics may include camera models, multi-view geometry, image reconstruction, image processing, image classification, object detection, computational photography, and applications of deep learning techniques to computer vision problems.
Prerequisite: Graduate Standing.

COSC 6333. Deep Learning. 3 Hours.

Students examine the architectures, platforms, tools, trends, and research directions of deep learning. Topics may include the relevant algorithms, techniques, and methodologies of convolutional neural networks, recurrent neural networks, auto-encoders, generative adversarial networks, gated recurrent units, long short-term memory networks, deep reinforcement learning, and recent new deep learning architectures. Students get hands-on practices for analyzing real-world large data with deep learning open-sourced frameworks and software tools.
Prerequisite: Graduate Standing.

COSC 6335. Big Data Analytics. 3 Hours.

Students examine advanced analytic techniques, methodologies, and tools for processing big data whose volume, velocity, and variety are unconventional. Topics include types and characteristics of big data, flexible data storage and cost-effective data processing techniques and methodologies, trends and research directions, and hands-on practices for collecting, storing, manipulating, visualizing, and analyzing big data. Particularly, students acquire hands-on big data analytics and data science skills with open-source computing platforms and tools.
Prerequisite: Graduate Standing.

COSC 6338. Data Science Capstone. 3 Hours.

Students conduct team-based capstone projects, which require student teams to apply the knowledge and skills they gained throughout the computer science graduate programs. Particularly, students target to solve real world data science problems and demonstrate their skills in data engineering, machine learning, data mining, big data analytics, data visualization, and other data science-related subjects. Through active learning, students develop effective oral, visual, and written scientific communication skills.
Prerequisite: Approval by the Graduate Advisor.

COSC 6347. Programming Practicum. 3 Hours.

The practicum provides the student an opportunity to develop their programming and analytical skills by applying concepts and techniques learned in organized classes to real world projects under the supervision of faculty and/or supervisory Computer professionals. Prerequisite: Eighteen hours of Computer and Information Science graduate level coursework. Student must register for this course every semester the practicum is in progress but only three hours of practicum will apply to the student's degree plan.
Prerequisite: Student must register for this course every semester the practicum is in progress but only three hours of practicum will apply to the student's degree plan.

COSC 6348. Thesis. 3 Hours.

This course is designed to guide Computer Science Master's students in the initial stages of their thesis research. In the proposal semester, students will work closely with faculty advisors to identify a research topic, conduct a comprehensive literature review, and formulate a research proposal. The course will emphasize the development of strong research questions, the exploration of relevant methodologies, and the creation of a robust research plan. By the end of this course, students will have a well-defined research proposal ready for approval.