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).

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 1133 Visual Basic Programming: 3 semester hours.

Fundamentals of programming in Visual Basic including an extensive examination of Graphical User Interface programming, creating classes, Dynamic Data Exchange, Object Linking and Embedding (OLE) and creating OLE Servers. The course also covers client/server development using the built-in database jet engine and using Open Database Connectivity (OBDC) to access other popular database systems.

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 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 1811 Intro. to Game Design and Dev.: 1 semester hour.

Introduction to game design and development, animation/simulation, scientific visualization, and multimedia technology; basic concept of game programming language.

COMP 1821 Intro to Game Dev. Env.: 1 semester hour.

Introduction to various software, tools, and systems for game design, animation, and scientific visualization; game programming language concepts and practice.
Prerequisites: COMP 1811.

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.

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

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 2813 Game Design and Dev. I: 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.
Prerequisites: COMP 1214 and COMP 1821.

COMP 2821 Game Design and Dev. II: 1 semester hour.

Advanced topics on game design and development, including motion tracking, physics-based animation, virtual reality, 3D object authoring tools, and scientific visualization.
Prerequisites: COMP 2813.

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 2033.

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 Operation Systems: 3 semester hours.

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

COMP 3113 Object-Oriented Analysis and Design: 3 semester hours.

Application and benefits of the object-oriented software process model with special consideration to concepts, models, notations, and methods to effectively and efficiently design and implement complex software applications using a practical, state-of-the-art object-oriented method, covering concepts intrinsic to object-oriented technology such as data abstraction, encapsulation, inheritance and polymorphism. State-of-the-art design and implementation tools, such as the unified modeling language (UML) and a high-level object-oriented language such as C++ will be used to illustrate these concepts.
Prerequisites: COMP 2013.

COMP 3203 System Analysis and Design: 3 semester hours.

Studying analytical models of system design with emphasis on evaluating system for efficiency, maximum utilization and appropriateness, and on structuring and designing systems.
Prerequisites: COMP 1224.

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 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 3811 VR and Visualization: 1 semester hour.

Introduction to advanced virtual reality technology and scientific visualization; Development of VR and visualization applications.
Prerequisites: COMP 2821 and PHYS 2511 and PHYS 2513.

COMP 3823 Computer Graphics and Program: 3 semester hours.

Principles of interactive computer graphics. Topics include fundamental techniques in graphics, graphic systems, graphic communication, geometric modeling, rendering and other recent developments in computer graphics.
Prerequisites: COMP 2013 and COMP 2821 and PHYS 2521 and PHYS 2523.

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 4053 Parallel Algorithm Design: 3 semester hours.

Hardware organization of vector, array, and parallel processors for high performance computations. Study of interconnection networks and parallel processing. Automatic vectorization and parallelization of scalar programs. Implementation of parallel algorithms for scientific applications.
Prerequisites: COMP 3043 and COMP 3053.

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: ENGL 1143 (may be taken concurrently) and COMP 3223 (may be taken concurrently) and GNEG 3061 (may be taken concurrently) and COMP 3063 (may be taken concurrently).
Co-requisite: COMP 4001.

COMP 4073 Special Topics: 3 semester hours.

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 Language Design: 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. Several programming languages will be analyzed.
Prerequisites: COMP 2013.

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 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 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 4963 Introduction to Service Computing: 3 semester hours.

Introduces core techniques of service computing, including service-oriented architecture, the roles of application builders, service specifications, workflow modeling, and specifications, service providers and services brokers, dynamic service discovery and basic ontology, understand major paradigms of computing.
Prerequisites: COMP 4953.

COMP 4993 Independent Study: 1-3 semester hour.

Reading, research and/or field work on selected topics.

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 5183 Software Engineering: 3 semester hours.

Topics related to specifying software requirements and an overview of analysis and design techniques that can be used to structure applications. Topics in software requirements include interacting with end-users to determine needs and expectations, identifying functional requirements, and identifying performance requirements. Analysis techniques include prototyping, modeling, and simulation. Design topics include the system lifecycle, hardware and software trade-offs, subsystem definition and design, abstraction, information hiding, modularity, and reuse.

COMP 5193 Mobile Device App Design and Development: 3 semester hours.

Introduction to app development for mobile devices, specifically for Apple iOS or Google Android devices. Various app development environments will be covered, including Xcode and programming language Objective-C for iOS, or Eclipse for Android. App design strategy will be discussed.
Prerequisites: COMP 2013.

COMP 5213 Advanced Data Communications and Computer Networks: 3 semester hours.

Topics related to the development of client-server based applications, including two-tier and multi-tier client-server concepts and programming, concurrency issues in the design of client and server programs, trade-offs of different architectures, the use of remote procedure calls, and broadcasting and multicasting.
Prerequisites: COMP 4123 or CINS 5043.

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 5253 Theory of Computation: 3 semester hours.

Models of computation, complexity theory, intractable problems, complete problems, recursive function+ theory, incompleteness, formal theory of program semantics and correctness, and logics of programs.
Prerequisites: COMP 3053 or COMP 5153.

COMP 5263 Computer Graphics: 3 semester hours.

Topics in computer graphics and geometric modeling, including B-spline curves and surfaces, solid modeling, radiosity, morphing, animation, simulation, subdivision, fractals, wavelets, and other selected topics.

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 5283 Machine Learning: 3 semester hours.

Study machine learning principles and technicals including supervised and unsupervised learning, learning method analysis, theoretical and empirical evaluation. Topics include decision tree, neural networks, Bayesian learning, instance-based learning, support vector machine, etc. 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 5413 Object-Oriented Analysis and Design Methodology: 3 semester hours.

Design and analysis methods for developing high-quality object-oriented systems. Topics include object-oriented classes, attributes, methods, and relations to other classes, objects, classifications and inheritance, encapsulation, polymorphism, and object-oriented analysis, design, and programming.

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.

COMP 5433 Software Project Planning and Management: 3 semester hours.

Methods for successful management of a software development project. This includes planning, scheduling, tracking, cost and size estimating, risk management, quality engineering, and process improvement. The course is centered on the concept of a software engineering process and includes discussion of life-cycle models for software development.
Prerequisites: COMP 5423.

COMP 5443 Advanced Software Quality Assurance: 3 semester hours.

The relationship of software testing to quality is examined with an emphasis on testing techniques and the role of testing in the validation of system requirements. Topics include module and unit testing, integration, code inspection, peer reviews, verification and validation, statistical testing methods, preventing and detecting errors, selecting and implementing project metrics, and defining test plans and strategies that assure conformance to system requirements. Testing principles, formal models of testing, and performance monitoring and measurement are also examined.
Prerequisites: COMP 5423.

COMP 5463 Human Computer Interaction and Interface Design: 3 semester hours.

A research-oriented course featuring in-depth analyses of selected current topics with an emphasis on problems related to computer systems, artificial intelligence, and human-computer interaction and interface design.

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.

COMP 5983 Special Topics in Computer Science: 3 semester hours.

Exposure to new and emerging concepts and technologies.

COMP 5993 Independent Study: 3 semester hours.

Individual studies in advanced computer science and technology.