Computer Science (COMP)

Courses

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

Intro to basic engineering and computer science concepts. Students will become aware of various discipline of engineering and computer science, ethical and professional responsibilities in these fields, creativity and design. It also prepares students for professional engineering world. Provides career planning tools; discusses expected and financial goals and how such goals contribute to short-and-long term personal, professional, academic, and financial goals. Professional, ethical, and moral behavior and proper communication for the workplace.. This course enables engineers to take full advantage of internships, co-ops, engineering jobs, and the classroom.
Prerequisites: COMP 1021 (may be taken concurrently) or COMP 1102 (may be taken concurrently).

COMP 1102 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 1101 or COMP 1011.

COMP 1121 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 1316 (may be taken concurrently) or MATH 1123 (may be taken concurrently)) or (MATH 2413 (may be taken concurrently) or MATH 1124 (may be taken concurrently)) or (MATH 1511 (may be taken concurrently) or MATH 1115 (may be taken concurrently)).
Co-requisite: COMP 1336.

COMP 1122 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 1336 or COMP 1213) and (COMP 1121 or COMP 1211) and (MATH 2413 (may be taken concurrently) or MATH 1124 (may be taken concurrently)).
Co-requisite: COMP 1337.

COMP 1300 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 1315 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 1336 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 1511 (may be taken concurrently)) or (MATH 1123 (may be taken concurrently) or MATH 1316 (may be taken concurrently)) or (MATH 1124 (may be taken concurrently) or MATH 2413 (may be taken concurrently)).
Co-requisite: COMP 1121.

COMP 1337 Computer Science II: 3 semester hours.

Continuation of COMP 1336 with continued emphasis on program development techniques, 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 1336 or COMP 1213) and (COMP 1121 or COMP 1211) and (MATH 2413 (may be taken concurrently) or MATH 1124 (may be taken concurrently)).
Co-requisite: COMP 1122.

COMP 2300 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 2302 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 1315 or COMP 1213 or COMP 1336.

COMP 2303 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 1422 or COMP 1224) or ((COMP 1221 or COMP 1122) and (COMP 1337 or COMP 1223)).

COMP 2310 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 1422 or COMP 1224) or ((COMP 1221 or COMP 1122) and (COMP 1337 or COMP 1223)).

COMP 2313 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 1422 or COMP 1224) or ((COMP 1221 or COMP 1122) and (COMP 1337 or COMP 1223)).

COMP 2314 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 2315 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 1337 or COMP 1223.

COMP 2319 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 1337 or COMP 1223) and (COMP 1122 or COMP 1221).

COMP 2336 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 1422 or COMP 1224) or ((COMP 1337 or COMP 1223) and (COMP 1122 or COMP 1221)).

COMP 3301 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 2336 or COMP 2013.

COMP 3303 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 2303 or COMP 2033.

COMP 3305 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 2336 or COMP 2013) and (COMP 2310 or COMP 2103).

COMP 3306 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 2336 or COMP 2013) and (COMP 2319 or COMP 3304 or COMP 3043).

COMP 3311 Introduction to Data Science: 3 semester hours.

This course introduces students to Big Data and Data Analysis techniques. Topics covered include data science and analytics, introduction to programming languages suitable for data analysis, ,data explorations, visualization technique for large datasets and basics of machine learning. The course consists of weekly lectures followed by hands-on labs.
Prerequisites: COMP 1337 or COMP 1223.

COMP 3321 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 2336 or COMP 2013.

COMP 3322 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 2336 or COMP 2013.

COMP 3331 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 2336 or COMP 2013.

COMP 3332 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 2310 or 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 or COMP 2336.

COMP 3343 Internet of Things: 3 semester hours.

Introduction to the Internet of Things(IoT), evolution and market around Internet of things, embedded systems and distributed systems to support IoT devices, communication and data storage in IoT, IoT design considerations and constraints, current components of IoT and future trends. The goal of this course is to help students with solid technical knowledge and skills to build IoT systems from the ground up. The course will focus on creative thinking and on hands-on project development.
Prerequisites: COMP 2013 or COMP 2336.

COMP 3395 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 4100 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 4107 Computer Science Special Topic: 1 semester hour.

This special topic course covers critical topics and skills, such as tech-interview, start-up tech entrepreneurship, emerging new tech development seminar, etc.

COMP 4207 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 3322 or COMP 3223 and (COMP 3306 or COMP 3063) and (COMP 3305 or COMP 3053) and (COMP 3395 or COMP 3953).
Co-requisite: COMP 4100.

COMP 4208 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 4207 or COMP 4072.

COMP 4307 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 4311 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 4312 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 3306 or COMP 3063.

COMP 4314 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 2336 or COMP 2013) and (COMP 2310 or COMP 2103).

COMP 4315 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 3302 or MATH 3023 and (MATH 3307 or MATH 3073).

COMP 4316 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 2336 or COMP 2103) or (COMP 2013 or COMP 2336).

COMP 4317 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 2310 or COMP 2103.

COMP 4318 Information Retrieval: 3 semester hours.

An introduction to information retrieval theory and web searching algorithms. The topics include indexing, vector space models, evaluation, probabilistic and language models, web search engine, text classification, link analysis, web crawling, etc., with their implementation and applications.
Prerequisites: COMP 2336 or COMP 2013 and (MATH 3302 or MATH 3023).

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 or COMP 4123.

COMP 4331 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 3306 or COMP 3063.

COMP 4332 Mobile Security: 3 semester hours.

introduction to the principles of mobile security. It covers various topics, including wireless and mobile network security, security models of mobile device platforms, mobile service security, and security of the Internet of Things. The course also provides students with hands-on experience in the security of various mobile systems.
Prerequisites: COMP 2336 or COMP 2013.

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 or COMP 3306) and (COMP 4123 or COMP 4312).

COMP 4384 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 3322 or COMP 3223.

COMP 5129 Research: 1 semester hour.

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

COMP 5300 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 5311 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 4311 or COMP 4113.

COMP 5312 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 3304 or COMP 3043.

COMP 5313 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 3306 or COMP 3063.

COMP 5314 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 or CINS 5305.

COMP 5315 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 3305 or COMP 3053.

COMP 5316 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 2336 or COMP 2013 and (MATH 3302 or MATH 3023).

COMP 5317 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 2336 or COMP 2013.

COMP 5324 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 5313 or COMP 5133.

COMP 5326 Machine Learning: 3 semester hours.

An introduction to machine learning theory and techniques including supervised and unsupervised learning, learning models, theoretical and empirical evaluation. Topics include decision tree, Bayesian learning, instance-based learning, regressions, support vector machine, neural networks, deep learning, reinforcement learning, etc.
Prerequisites: COMP 2336 or COMP 2013 and (MATH 3302 or MATH 3023).

COMP 5327 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 5328 Natural Language Processing: 3 semester hours.

An introduction to the natural language processing theory, including language models, automatic syntactic processing, semantic processing, discourse, and pragmatics. This course will cover typical applications of natural language processing, such as information extraction, sentiment analysis, question answering, and machine translation.
Prerequisites: COMP 2336 or COMP 2013 and (MATH 3302 or MATH 3023).

COMP 5329 Text Mining: 3 semester hours.

Study text mining principles for high-quality information retrieval, including text structuring, patterns deriving, interpretation of the output, and empirical evaluation of the algorithms. Topics cover data analysis, text categorization, text clustering, concept extraction, text summarization, sentiment analysis, topic models, etc., with their implementation and applications.
Prerequisites: (COMP 2336 or COMP 2013) and (MATH 3302 or MATH 3023).

COMP 5332 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 CINS 5304 or COMP 4312 or COMP 4123) and (CINS 5063 or CINS 5306 or COMP 3053 or COMP 3305).

COMP 5342 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 2336 or COMP 2013 or CINS 5063 or CINS 5306.

COMP 5389 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 5391 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.

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