Computer Science (COMP)

Courses

COMP 1003 Digital Communication: 3 semester hours.

Efficient communication in the digital world, including multi-media editing, web page/site design, publishing on the internet, and cloud computing. Social and ethical responsibility of using social media, surfing the internet, and information security. Fundamentals of Excel spreadsheets and MS Access together pertinent information analyzed, evaluate, interpret, display data, and draw conclusion. Team projects using Sharepoint and group presentation.

COMP 1011 Intro to Basic Engr & Comp Sci: 1 semester hour.

Students will become aware of the various disciplines of engineering, computer science and technology, ethical and professional responsibilities in these fields, creativity and design.
Prerequisites: COMP 1021 (may be taken concurrently).
Co-requisite: GNEG 1100.

COMP 1013 Introduction to Computer Science: 3 semester hours.

Fundamentals of computer science and programming to include algorithm definition, concepts, semantics and logic, fundamental data types (character, integer, and floating-point) and their binary representations and limits, arithmetic and logical operators and precedence, program structure and flow, branching and looping, functions and parameters, and basic input and output methods, emphasizing modular design and implementation of an object-oriented language such as C++.

COMP 1021 Introduction to Computer Science Lab: 1 semester hour.

This lab component will cover the overview of the current job opportunities and some hands-on exercises to understand the current topics.
Prerequisites: COMP 1011 (may be taken concurrently).

COMP 1211 Computer Science Lab I: 1 semester hour.

A laboratory course in programming for computer science utilizing the concepts introduced in COMP 1213, including language concepts of input/output, constants, data types, control structures, loops, functions, enumerated data types, arrays and strings structures, exception handling.
Prerequisites: (MATH 1123 (may be taken concurrently)) or (MATH 1115 (may be taken concurrently)) or (MATH 1124 (may be taken concurrently)).
Co-requisite: COMP 1213.

COMP 1213 Computer Science I: 3 semester hours.

Introduction to and practice of modern problem solving and programming methods. Special emphasis is placed on top-down modular design and implementation of robust and easily maintainable programs in a high-level, object-oriented language such as C++ to include external files, control structures, loops, scope, functions, output formatting, inline functions and function templates, enumerated data types, arrays, structures, exception handling.
Prerequisites: MATH 1115 (may be taken concurrently) or MATH 1123 (may be taken concurrently) or MATH 1124 (may be taken concurrently).
Co-requisite: COMP 1211.

COMP 1221 Computer Science Lab II: 1 semester hour.

A laboratory course in programming for computer science utilizing the concepts in COMP 1223 in object-oriented programming concepts including classes, abstraction, data hiding, polymorphism, inheritance; as well as basic programming data structures including array based lists, pointers, basic linked lists, stacks and queues.
Prerequisites: COMP 1213 and COMP 1211 and MATH 1124 (may be taken concurrently).
Co-requisite: COMP 1223.

COMP 1223 Computer Science II: 3 semester hours.

COMP 1224 Computer Science and Laboratory II: 4 semester hours.

Continuation of COMP 1214 with continued emphasis on program development techniques, array based lists, pointers, basic linked lists, classes, abstraction, data hiding, polymorphism inheritance, stacks and queues.
Prerequisites: COMP 1213 (may be taken concurrently) and COMP 1211.
Co-requisite: MATH 1124.

COMP 2003 Introduction to Web Design and Multimedia: 3 semester hours.

The role of internet and as a tool in business; design and development of simple internet applications using HTML; basics of scripting languages; development of home pages incorporating graphics, and multimedia.

COMP 2013 Data Structures: 3 semester hours.

Fundamental data structures; the implementation and application of binary files, stacks, queues, recursion, advanced linked lists, trees, graphs, data compression, heap, priority queue, and sorting techniques.
Prerequisites: COMP 1224 or (COMP 1223 and COMP 1221).

COMP 2023 Applications Development using C#: 3 semester hours.

Introduction to developing Windows based applications using the Visual Studio C# language. Students will learn how to develop software for several types of (fun) applications using interactive forms, multimedia, graphics, images, Web services, streaming video, etc. Basics of developing simple games, incorporating web services such as Mapping, weather, You-tube, stock quotes, etc. will also be covered. Open to all majors.
Prerequisites: COMP 1013 or COMP 1213.

COMP 2033 Assembly Language: 3 semester hours.

Study of the logical design and internal operation of digital computers and programming using a macro assembly language. Using several practical exercises to illustrate machine structures and programming techniques for a typical microprocessor environment, such as the Intel processor/IBM PC architecture.
Prerequisites: COMP 1224.

COMP 2043 Digital Logic Circuits: 3 semester hours.

The design and implementation of digital logic circuits. Combinational and sequential circuit analysis. Digital circuit design optimization methods using random logic gates, multiplexers, decoders, registers, counters, and programmable logic arrays.
Prerequisites: COMP 1224 or (COMP 1223 and COMP 1221).

COMP 2103 Discrete Structures: 3 semester hours.

A bridge course between data structures/discrete mathematics and analysis of algorithms, to include reviews of functions and relations, basic combinatorics (set operations, counting, combinations, and permutations) and introductions to prepositional and predicate logic, discrete probability theory, recursive definitions, computational complexity, and proof techniques including mathematical induction. The concepts are illustrated by applications involving graphs, trees, networks and related algorithms.
Prerequisites: COMP 1224 or (COMP 1223 and COMP 1221).

COMP 2133 Introduction to Information Security: 3 semester hours.

Expose students to the concept of network security and make them aware of related information security and privacy problems. Topics in network security includes malware, social engineering attacks, Web application attacks, wireless security, access control, authentication, basic cryptography, and security in social medial and cloud computing. Various attack demonstrations and animations will be utilized. This course can be used as low-level CS elective.
Prerequisites: COMP 1224.

COMP 2143 Introduction to Java: 3 semester hours.

An introduction to the Java Programming language. Includes coverage of Java Development Kit (JKD), applications, creating applets for enhancing web pages, and an introduction to the object model, and object oriented programming. Prerequisites: Proficiency in at least one programming language. Can be used as a computer science lower level elective.

COMP 2153 Python Programming Language: 3 semester hours.

An introduction to the fundamentals of python programming. It covers various topics, including variables and data types, functions, file input and output, and recursion. Packages for data processing and analytics such as Numpy, Scipy, Pandas, Scikit-learn, and Matplotlib will be introduced. Students will program using popular platforms like PyCharm and Jupyter notebook.
Prerequisites: COMP 1223.

COMP 3013 Embedded Systems: 3 semester hours.

Examines how to design, program, and test embedded systems that interact with the physical world. Topics include microcontrollers, hardware interfacing, sensors, and real time programming.
Prerequisites: COMP 2013.

COMP 3033 Digital Logic Circuits: 3 semester hours.

The design and implementation of digital logic circuits. Combinational and sequential circuit analysis. Digital circuit design optimization methods using random logic gates, multiplexers, decoders, registers, counters, and programmable logic arrays.
Prerequisites: COMP 2033.

COMP 3043 Computer Organization: 3 semester hours.

The study of a computer as a series of levels, each one built on its predecessor. Digital logic level, the microprogramming level, the conventional machine level, the operating systems level, and the assembly language level.
Prerequisites: COMP 2043.

COMP 3053 Analysis of Algorithms: 3 semester hours.

Introduction to algorithm design and analysis, computational complexity, and NP-completeness theory, emphasizing design, appropriate algorithms and data structures to solve a given problem efficiently, including divide- and-conquer techniques, greedy methods, and dynamic programming.
Prerequisites: COMP 2013 and COMP 2103.

COMP 3063 Operating Systems: 3 semester hours.

Basic functions of operating systems including device management, multi-programming, job management, memory management, and input/output processing.
Prerequisites: COMP 2013 or (ELEG 4393 and COMP 3043).

COMP 3213 Graphics and Visual Computing: 3 semester hours.

Principles of interactive computer graphics; Topics include fundamental techniques in graphics, graphic systems, graphic communication, geometric modeling, rendering, computer animation, visualization and virtual reality and other recent developments in computer graphics.
Prerequisites: COMP 2013.

COMP 3223 Software Engineering: 3 semester hours.

Formal software development, including the software life-cycle, modular and top-down design, validation and verification, and maintainable systems.
Prerequisites: COMP 2013.

COMP 3313 Information Privacy: 3 semester hours.

An introduction to the fundamentals of information privacy. It covers various topics, including data anonymization, differential privacy, location privacy, web and network privacy; multiparty computation, privacy in internet of Things; privacy in social networks, and secure data outsourcing. The course also provides students with hands-on experience in information privacy.
Prerequisites: COMP 2013.

COMP 3323 Cryptography: 3 semester hours.

An introduction to the fundamentals of cryptography. It covers various topics, including classic data encryption and decryption schemes, private and public key systems, message authentication, digital signature, and hash function. The course also provides students with hands-on experience in cryptograph.
Prerequisites: COMP 2103.

COMP 3333 Smart Device App Development: 3 semester hours.

Introduction to app development for smart devices, specifically for Apple iOS or Google Android devices. Differences between smart devices and traditional desk top computer systems will be examined. Various app development environments will be covered, including Xcodc and programming language Objective-C for iOS, and Eclipse for Android.
Prerequisites: COMP 2013.

COMP 3953 Database Management: 3 semester hours.

File structures and access methods, database modeling design and user interface, components of database management systems. Information storage and retrieval, query languages, high-level language interfaces with database systems.

COMP 4001 Ethics and Social Issues in Computing: 1 semester hour.

Social and ethical implications of computing. Topics include history of computing, social context of computing, methods and tools of analysis, professional and ethical responsibilities, risks and liabilities of computer-based systems, intellectual property, privacy and civil liberties.

COMP 4063 Artificial Intelligence: 3 semester hours.

Introduction to artificial intelligence and expert systems to include heuristic search methods, first-order logic, forward and backward inference, knowledge representation, machine learning, and neural networks.
Prerequisites: COMP 2013 and MATH 3023.

COMP 4072 Senior Design Project I: 2 semester hours.

A first of a two-part senior design course for computer science majors. Students will study computer systems design working as a design-team member, conceptual design methodology, design evaluations, project planning and management techniques, design optimization, systems manufacturing, cost considerations with an emphasis on students' activities as design professionals.
Prerequisites: COMP 3223 (may be taken concurrently) and COMP 3063 (may be taken concurrently).
Co-requisite: COMP 4001.

COMP 4073 Special Topics: 1-3 semester hour.

Studying selected current and emerging topics in Computer Science. Courses may be repeated for credit when topics vary.

COMP 4082 Senior Design Project II: 2 semester hours.

A continuation of COMP 4072 giving students the opportunities to complete a design project, make formal presentation, research, proposal writing, patents, and literature searches.
Prerequisites: COMP 4072.

COMP 4113 Programming Languages: 3 semester hours.

Overview of programming languages, syntactic and semantic specification, virtual machines and fundamental issues in language design, analyzing of the imperative, object-oriented, functional, and declarative language paradigms. Introduction to formal grammars, including Backus-Naur notation studying the formal theory behind the design of a programming languages. Several programming languages will be analyzed.

COMP 4123 Computer Networks: 3 semester hours.

Introduction to the networking of computer systems to include the study of local area (LAN) and wide area (W AN) networks, data transmission, communications software, the architecture of networks, and network communication protocols.
Prerequisites: COMP 3063.

COMP 4133 Formal Languages and Automata: 3 semester hours.

Introduction to formal grammars, including Backus-Naur notation studying the formal theory behind the design of a computer language. The corresponding types of automata that will serve as recognizers and generators for a language will be described.
Prerequisites: COMP 2103.

COMP 4143 Introduction to Parallel Computing: 3 semester hours.

Students will study modern parallel computer architectures and the major parallel programming models in both shared and distributed systems. Topics include parallelism, concurrency, partition, divide-and-conquer, synchronization, load balancing, parallel algorithm design, implementation, and debugging.
Prerequisites: COMP 2013 and COMP 2103.

COMP 4153 Data Mining and Analytics: 3 semester hours.

Topics cover fundamental data mining and analytical algorithms and paradigms, including supervised learning, unsupervised learning, frequent pattern mining, link analysis, performance improvement through data interaction, etc. Focus on implementation and data visualization using modern programming languages in the knowledge discovery process. Latest concepts such as big data and social media are also discussed.
Prerequisites: MATH 3023 and MATH 3073.

COMP 4163 Machine Learning: 3 semester hours.

Topics cover fundamental machine learning algorithms and paradigms including information-based learning, probability-based learning, instance-based learning, error-based learning, neural networks and deep learning, unsupervised learning, etc. Focus on implementation and data visualization using modern programming languages such as Python and R.
Prerequisites: COMP 2013.

COMP 4233 Network Security: 3 semester hours.

Address the fundamentals of network security, including compliance and operational security; threats and vulnerabilities; application, data and host security; access control and identity management; and cryptography. Topics includes psychological approaches to social engineering attacks, Web application attacks, penetration testing, data loss prevention, cloud computing security, and application programming development security.
Prerequisites: COMP 4123.

COMP 4313 Computer Forensics: 3 semester hours.

An introduction to the fundamentals of computer forensics, it covers various topics, including cyber crimes, evidence extraction and control, data recovery, network forensics, mobile platform forensics, software reverse engineering, and legal issues. The course also provides students with hands-on experience in digital forensics.
Prerequisites: COMP 3063.

COMP 4323 Network Security: 3 semester hours.

Address the fundamentals of network security, including compliance and operational security; threats and vulnerabilities; application, data and host security; access control and identity management; and cryptography. Topics includes psychological approaches to social engineering attacks, Web application attacks, penetration testing, data loss prevention, cloud computing security, and application programming development security.
Prerequisites: COMP 4312.

COMP 4333 Ethical Hacking and Penetration Testing: 3 semester hours.

This course teaches students the underlying principles and many of the techniques associated with the cyber-security practice known as penetration testing or ethical hacking. The course also provides students with hands-on experience on this topic.
Prerequisites: COMP 3063 and COMP 4123.

COMP 4843 Human-Computer Interaction: 3 semester hours.

Focuses on the dynamics of human-computer interaction (HCI). Provides a broad overview of HCI as a sub-area of computer science and explores user-centered design approaches in information systems applications. Addresses the user interface and software design strategies, user experience levels, interaction styles, usability engineering, and collaborative systems technology. Students will perform formal software evaluations and usability tests.
Prerequisites: COMP 3223.

COMP 4953 Data Base Management: 3 semester hours.

File structures and access methods, database modeling design and user interface, components of database management systems. Information storage and retrieval, query languages, high-level language interfaces with database systems.
Prerequisites: COMP 2013.

COMP 5003 Research Methods and Graduate Seminar: 3 semester hours.

Series of lectures given by faculty and by visiting computer and information scientists and information technologists.

COMP 5113 Fundamentals and Concepts of Programming Languages: 3 semester hours.

Study of the principles that form the basis of programming language design. Research topics in high-level languages including data abstraction, parameterization, scoping, generics, exception handling, parallelism, and concurrency. Additional topics include alternative language designs (imperative, functional, descriptive, object-oriented, and data flow designs) and an overview of interfacing with support environments.
Prerequisites: COMP 4113.

COMP 5123 Advanced Computer Architecture: 3 semester hours.

New technological developments, including details of multiprocessor systems and specialized machines. The main focus is on the quantitative analysis and cost-performance tradeoffs in instruction set, pipeline, and memory design. Descriptions of real systems and their performance data are also given. Topics covered include quantitative performance measures, instruction set design, pipelining, vector processing, memory organization, input/output methods, and an introduction to parallel processing.
Prerequisites: COMP 3043.

COMP 5133 Advanced Operating Systems: 3 semester hours.

Theoretical and practical aspects of operating systems, including an overview of system software, time-sharing and multiprogramming operating systems, network operating systems and the Internet, virtual memory management, inter-process communication and synchronization, and case studies.
Prerequisites: COMP 3063.

COMP 5143 Advanced Database Management System: 3 semester hours.

Topics related to database design and data management in a database environment, including data normalization, functional dependencies, database design, query language design, implementation constraints, data integrity and security, and distributed data processing. The emphasis is on the concepts and structures necessary to design and implement a database management system. Selected advanced topics such as distributed databases, object-oriented databases, real-time databases, and multimedia databases will be discussed. Because of the many advances in information technology and the database development techniques, new business needs and opportunities are constantly emerging and, with them, the need to manage new technologies and applications effectively. This course explores these new application areas and the management approaches needed to make them successful.
Prerequisites: CINS 5033.

COMP 5153 Design and Analysis of Algorithms: 3 semester hours.

Introduction to algorithm design and analysis, computational complexity, and NP-completeness theory. The course emphasizes how to design and choose appropriate algorithms and data structures to solve a given problem efficiently. Design methods covered include divide-and-conquer techniques, greedy methods, and dynamic programming. Problem domains covered include string matching, polynomials and matrices, graph theory, optimal trees, and NP-hard problems.
Prerequisites: COMP 3053.

COMP 5163 Artificial Intelligence: 3 semester hours.

An introduction to artificial intelligence. The topics include intelligent agents, problem solving through search, knowledge representation and reasoning, planning, probabilistic reasoning and models, reinforcement learning, and their applications.
Prerequisites: COMP 2013 and MATH 3023.

COMP 5173 Computer Vision: 3 semester hours.

An introduction to the principles of computer vision. It covers various topics, including fundamentals of image formation, feature detection and matching, motion estimation and tracking, image classification, and deep learning with neural networks. The course also provides students with hands-on experience in developing computer vision algorithms.
Prerequisites: COMP 2013.

COMP 5233 Distributed Computing and Parallel Processing: 3 semester hours.

Comprehensive introduction to the field of parallel and distributed computing systems, including algorithms, architectures, networks, systems, theory, and applications. Distributed parallel computation models, and the design and analysis of parallel algorithms will be emphasized.
Prerequisites: COMP 5133.

COMP 5273 Data Mining: 3 semester hours.

Data Mining Studies algorithms, paradigms to find patterns and regularities in databases, perform prediction and forecasting, and improve their performance through data interaction. The knowledge discovery process includes data selection, cleaning, coding, and visualization. Data warehousing is also discussed.
Prerequisites: COMP 4953 or CINS 5033.

COMP 5291 Research: 1 semester hour.

Topics cover literature review and summarization, scientific article writing, problem analysis and formulation, references and citation.

COMP 5293 Text Mining: 3 semester hours.

The study of text mining and information retrieval techniques including text structuring, patterns deriving, interpretation of the output, and empirical evaluation. Topics cover data analysis, text categorization, text clustering, concept extraction, text summarization, sentiment analysis, web search and their implementation.
Prerequisites: COMP 2013 and MATH 3023.

COMP 5323 Computer and Network Security: 3 semester hours.

Survey of various computer attacks, viruses, malware, and operating system vulnerabilities and safeguards. Emphasis will be put on defense techniques and skills. A study of problems related to data communication and networking security; databases security; authorization mechanisms for systems with shared resources; cryptography and applications.
Prerequisites: (CINS 5043 or COMP 4123) and (CINS 5063 or COMP 3053).

COMP 5423 Software Engineering Processes: 3 semester hours.

Engineering of complex systems that have a strong software component. Topics include deriving and allocating requirements, system and software architectures, systems analysis and design, integration, interface management, configuration management, quality, verification and validation, reliability, and risk.
Prerequisites: COMP 2013 or CINS 5063.

COMP 5893 Applied Research: 3 semester hours.

A realistic experience in Computer Science to enhance the student's professional abilities. Students work on significant projects with industry firms or governmental agencies involving decision-making responsibility. Course requires oral and written report.

COMP 5906 Masters Thesis: 6 semester hours.

A candidate for the Master of Science in Computer Science with thesis option is required to perform a study, a design or investigation, under the direction of a faculty advisory committee. A written thesis is required to be presented, defended orally and submitted to the faculty advisory committee for approval.

COMP 5913 Masters Project: 3 semester hours.

A candidate for the Master of Science in Computer Science with project option is required to perform a study, design, or investigation, under the direction of a graduate faculty advisor. An oral presentation and a written report are required. Prerequisite: candidacy for the Non-Thesis option of the Master of Science in Computer Science.