Computer Science & Software Engineering - COMP
Courses
COMP 1000 PERSONAL COMPUTER APPLICATIONS (2) LEC. 2. Introduction to personal computers and software applications, including word processing, spreadsheets, databases, and presentation graphics; generation and retrieval of information with the Internet; integration of data among applications.
COMP 1100 THE POWER OF AI: FUNDAMENTALS TO APPLICATIONS (3) LEC. 3. A comprehensive introduction to artificial intelligence accessible to students across all disciplines. Addresses fundamental principles of AI, key concepts like knowledge representation, reasoning, machine learning, natural language processing, and neural networks. Topics such as AI’s impact across various fields, critical analyses of the benefits and limitations of the state of the art, ethical considerations, and hands-on experience in leveraging AI technologies will be covered.
COMP 1200 INTRODUCTION TO COMPUTING FOR ENGINEERS AND SCIENTISTS (2) LEC. 2. Computer programming in a high-level language, with emphasis on use of the computer as a tool for engineering or science.
COMP 1201 INTRODUCTION TO COMPUTING LABORATORY (1) LAB. 1. SU. Coreq. COMP 1200. Laboratory activities focused on computer programming in a high-level language.
COMP 1210 FUNDAMENTALS OF COMPUTING I (3) LEC. 2. LAB. 3. Introduction to the fundamental concepts of programming from an object-oriented perspective. Emphasis on good software engineering principles and development of the fundamental programming skills in the context of a language that supports the object-oriented paradigm.
COMP 1220 INTRODUCTION TO COMPUTING WITH PYTHON (2) LEC. 1. LAB. 3. Computational problem-solving using Python, with emphasis on developing programs from specifications, verification and testing, and engineering applications.
COMP 1230 INTRODUCTION TO COMPUTING WITH MATLAB (2) LEC. 1. LAB. 3. Computational problem-solving using MATLAB, with emphasis on developing programs from specifications, verification and testing, and engineering applications.
COMP 1AA0 COMPUTER COMPETENCY TEST (0) TST. SU. A comprehensive test of all material covered in COMP 1000 and COMP 1003. Course may be repeated with change in topics.
COMP 2000 NETWORK PROGRAMMING WITH HTML AND JAVA (3) LEC. 3. Pr. COMP 1000 or COMP 1003 or ENGR 1110 or ENGR 1113. Introduction to network programming using HTML and Java to build web pages and web-based applications; presentation graphics; retrieval of information from the Internet; integration of data among applications. Pr., COMP 1000 or higher, or ENGR 1110.
COMP 2210 FUNDAMENTALS OF COMPUTING II (4) LEC. 3. LAB. 3. Pr. COMP 1210 or COMP 1213. Software development in the context of collections (e.g., lists, trees, graphs, hashtables). Communication, teamwork, and a design experience are integral course experience.
COMP 2240 DISCRETE STRUCTURES (3) LEC. 3. Pr. (COMP 1210 or COMP 1213 or COMP 1217) and (MATH 1610 or MATH 1617). Characterization of computer science data structures and algorithms in terms of sets and relations, functions, recurrence relations. Use of propositional and predicate calculus to describe algorithms. Proving correctness and running time bounds for algorithms by induction and structural induction.
COMP 2710 SOFTWARE CONSTRUCTION (3) LEC. 3. Pr. COMP 2210 or COMP 2213. Intensive experience in software construction, to include topics such as testing, debugging, and associated tools; configuration management; low-level file and device I/O; systems and event-driven programming.
COMP 2800 PROFESSIONAL DEVELOPMENT I (1) LEC. Introduction to career opportunities and student development options for majors in computer science and software engineering. Students will explore course, research, and extracurricular options within the department; create resumes and digital professional profiles; investigate post-graduation opportunities; and explore other professional development opportunities.
COMP 3000 OBJECT-ORIENTED PROGRAMMING FOR ENGINEERS AND SCIENTISTS (3) LEC. 3. Pr., Departmental approval. Fundamentals of object-oriented design and programming principles; data abstraction, identifying objects, problem decomposition, design and implementation of classes. Credit for the major will not be given to CSCI and SWEN, and WIRS majors.
COMP 3220 PRINCIPLES OF PROGRAMMING LANGUAGES (3) LEC. 3. Pr. COMP 2210 or COMP 2213. Study of programming language principles supporting procedural abstraction, data abstraction, storage allocation, and parallel execution; language types and examples; language translations.
COMP 3270 INTRODUCTION TO ALGORITHMS (3) LEC. 3. Pr. COMP 2240 and (COMP 2210 or COMP 2213). Algorithms for standard computational problems and techniques for analyzing their efficiency; designing efficient algorithms and experimentally evaluating their performance.
COMP 3350 COMPUTER ORGANIZATION AND ASSEMBLY LANGUAGE PROGRAMMING (3) LEC. 3. Pr. ELEC 2200 or ELEC 2210. Stored Program Computers, hardware and software components; data representation, instruction sets, addressing modes; assembly language programming; linkers, loader, and operating systems.
COMP 3500 INTRODUCTION TO OPERATING SYSTEMS (3) LEC. 3. Pr. (COMP 2710 or COMP 2713) and (COMP 3350 or COMP 3353 or ELEC 2220). Structure and functions of operating systems; processes and process scheduling; synchronization and mutual exclusion; memory management; auxiliary storage management; resource allocation and deadlock; security, privacy, and ethical concerns; design tradeoffs.
COMP 3510 EMBEDDED SYSTEMS DEVELOPMENT (3) LEC. 3. Pr. COMP 2710 and (COMP 3350 or ELEC 2220). Operating system design and analysis for embedded systems: Real-time issues, resource management, scheduling, exception handling, device driver development, kernel development, synchronization, network support.
COMP 3700 SOFTWARE MODELING AND DESIGN (3) LEC. 3. Pr. COMP 2710. Current processes, methods, and tools related to modeling and designing software systems. Communication, teamwork, and a design experience are integral course experiences.
COMP 3710 WIRELESS SOFTWARE ENGINEERING (3) LEC. 3. Pr. COMP 2710. Software engineering for wireless applications: specification, process, testing, and performance evaluation. Design and development of wireless application layer software, including current protocols.
COMP 4200 FORMAL LANGUAGES (3) LEC. 3. Pr. COMP 3240. Fundamentals of formal languages including mathematical models of regular sets, context-free languages and Turing machines; deterministic and non-deterministic models.
COMP 4300 COMPUTER ARCHITECTURE (3) LEC. 3. Pr. COMP 3350 or COMP 3353. Comparison of computer architectures, emphasizing the relationships between system software and hardware. Includes processor control and datapath organization, memory subsystem design, instruction set design, processor simulation, and quantitative analysis of computer performance.
COMP 4320 INTRODUCTION TO COMPUTER NETWORKS (3) LEC. 3. Pr. COMP 2710 and (COMP 3350 or ELEC 2220) or Departmental approval. Fundamentals of computer networks, OSI model, LAN, WAN, packet transmission, interworking, Internet Protocol, WWW and Java technology.
COMP 4710 SENIOR DESIGN PROJECT (3) LEC. 3. Pr. COMP 3700 or COMP 3710 or COMP 3703. Development of requirement definitions, architectural design specification, detailed design specification, testing plan and documentation for the software and/or hardware components of a comprehensive project.
COMP 4730 COMPUTER ETHICS (2) LEC. 2. Pr. PHIL 1020 or PHIL 1023 or PHIL 1027 or PHIL 1110 or PHIL 1113. Application of ethical principles to computing-related topics, including privacy, property rights, autonomy, access, and diversity. Communication and teamwork are integral course experiences.
COMP 4800 PROFESSIONAL DEVELOPMENT II (1) LEC. 1. Pr. COMP 2800. Discussion and activities in effective communication, ethical solutions, and career development in preparation for students to transition into professional practice and lifelong learning in Computer Science and Software Engineering.
COMP 4810 PROGRAM ASSESSMENT (0) LEC. SU. Pr. COMP 4800. Coreq. UNIV 4AA0. Academic program assessment to include curriculum, course offerings and content, student services, and career exploration and first destination outcomes. Course may be repeated for a maximum of 10 credit hours.
COMP 4960 SPECIAL PROBLEMS (1-4) IND. Course may be repeated for a maximum of 6 credit hours.
COMP 4970 SPECIAL TOPICS (1-3) LEC. 1-3. Departmental approval. Investigation of current topics in computer science and software engineering. Course may be repeated for a maximum of 12 credit hours.
COMP 5000 WEB APPLICATION DEVELOPMENT (3) LEC. 3. Departmental approval. Design and implementation of web sites and associated applications. Emphasis on user interface design and information organization and presentation. Fall, Spring.
COMP 5020 ADVANCED WEB APPLICATION DEVELOPMENT (3) LEC. 3. Pr. COMP 5000. Departmental approval. Design and implementation of interactive web applications in Java as applets and servlets. Use of concepts like security, internationalization, multi-threading and server/client architectures.
COMP 5120 DATABASE SYSTEMS I (3) LEC. 3. Pr. COMP 3270 or COMP 3273. Theoretical and applied issues related to the analysis, design, and implementation of relational database systems.
COMP 5130 DATA MINING (3) LEC. 3. Pr. COMP 3270 or COMP 3273. Advanced concepts, techniques, and applications of data mining with an algorithmic and computational focus, including data visualization, data warehousing, data cube computation, pattern and rule mining, classification, belief networks, clustering, outlier detection, graph matching, and parallel and distributed computation.
COMP 5210 COMPILER CONSTRUCTION (3) LEC. 3. Pr. COMP 4200 and COMP 3220. Compiler organization; lexical analysis; parsing; syntax- direction translation; symbol tables; basic dependence analysis; intermediate forms; interpreters vs. compilers; run-time storage management; code generation; error detection and recovery.
COMP 5320 DESIGN AND ANALYSIS OF COMPUTER NETWORKS (3) LEC. 3. Pr. COMP 4320 or COMP 4323. Departmental approval. Computer networks design, including multiplexing, switching, routing, internetworking, transport protocols, congestion control, and performance evaluation.
COMP 5350 DIGITAL FORENSICS (3) LEC. 3. Pr. COMP 2710 or ISMN 3080 or MNGT 3080 or MNGT 3087 or COMP 2713. Departmental approval. Computer compromise and forensics, with focus on computer crime and ways to uncover, protect, and exploit digital evidence.
COMP 5360 WIRELESS AND MOBILE NETWORKS (3) LEC. 3. Pr. COMP 4320. Departmental approval. Mobile IP, wireless routing, location management, ad-hoc wireless networks, wireless TCP personal communication systems, and GSM. A
COMP 5370 COMPUTER AND NETWORK SECURITY (3) LEC. 3. Pr. COMP 4320. Fundamentals of computer security. Access Control. Authentication. Digital signatures and watermarks. Modeling and performance assessment. Viruses and worms. Identification of avenues for compromising systems.
COMP 5520 NETWORK AND OPERATING SYSTEM ADMINISTRATION (3) LEC. 3. Pr. COMP 4320. Studies of the installation, configuration and management of traditional, distributed and networked system software. Network integration of different systems. Performance monitoring, safety and security issues together with policies, politics and the laws regarding system software management.
COMP 5530 SECURE CLOUD COMPUTING: PRINCIPLES, PRACTICE, AND APPLICATIONS (3) LEC. 3. Pr. COMP 3220 and COMP 3500. Cloud concepts and issues including architecture, service models, security, and implementation. Hands-on experience in both using, managing, and deploying clouds.
COMP 5600 ARTIFICIAL INTELLIGENCE (3) LEC. 3. Pr. COMP 3270 or COMP 3273. Departmental approval. Introduction to intelligent agents, search knowledge representation and reasoning, machine learning.
COMP 5610 ARTIFICIAL INTELLIGENCE PROGRAMMING (3) LEC. 3. Pr. COMP 5600. Design and implementation of advanced artificial intelligence techniques including expert systems, planning, logic, and constraint programming, knowledge representation and heuristic search methods.
COMP 5620 USER INTERFACE DESIGN AND EVALUATION (3) LEC. 3. Pr. COMP 3270 or COMP 3273. Departmental approval. Theory and practice of designing interfaces for interactive systems, usability engineering techniques; implementing and evaluating interfaces.
COMP 5630 MACHINE LEARNING (3) LEC. 3. Pr. COMP 3270. An exploration of current concepts, techniques, and applications in machine learning including abductive learning, case-based learning, deep learning, and reinforcement learning.
COMP 5650 DEEP LEARNING (3) LEC. 3. Pr. COMP 5630. Convolutional neural networks (CNNs); visualizing CNNs; detection CNNs; segmentation CNNs; recurrent neural networks; machine translation; unsupervised learning; and generative adversarial networks.
COMP 5660 EVOLUTIONARY COMPUTING (3) LEC. 3. Pr. COMP 3270 and (STAT 3010 or STAT 3600). This course covers in depth the fundamentals of evolutionary computing and surveys the most popular types of evolutionary algorithms (e.g., genetic programming), a class of stochastic, population-based algorithms inspired by natural evolution theory, genetics, and population dynamics, capable of solving complex optimization and modeling problems. It applies them to solve a series of challenging assignments involving intensive programming, experimentation, statistical analysis, and technical writing.
COMP 5700 SECURE SOFTWARE PROCESS (3) LEC. 3. Pr. COMP 3700 or COMP 3710. Process models of the software life cycle as well as methods and tools for software development with a special emphasis on secure software engineering.
COMP 5710 SOFTWARE QUALITY ASSURANCE (3) LEC. 3. Pr. COMP 3700 or COMP 3710. Departmental approval. Processes, methods, and tools associated with the production of robust, high-quality software.
COMP 5720 REAL TIME AND EMBEDDED SYSTEMS (3) LEC. 3. Pr. COMP 3500 or COMP 3510. Concepts of real-time and embedded computer systems. Studies of real-time algorithm issues such as timeliness, time-constrained scheduling and communication. Embedded system issues such as limited memory, low power, and high latency communication. Fall, Spring.
COMP 5830 CYBERSECURITY THREATS AND COUNTERMEASURES (3) LEC. 3. LAB. 0, DSL/LEC. 0. Pr. COMP 4320. Analysis of methods used by ethical hackers to identify security threats against networks, systems, and personnel. Examination of tactics, techniques, and procedures employed by threat actors and defensive countermeasures.
COMP 5870 SECURITY INTEGRATION AND APPLICATION (1) LEC/LST. Coreq. COMP 4710. Departmental approval. Exploration of the integration and application of state-of-the-practice cybersecurity topics.
COMP 5970 SPECIAL TOPICS (1-3) LEC. 1-3. Departmental approval. Investigation of current topics in computer science and software engineering. Course may be repeated for a maximum of 9 credit hours.
COMP 6000 WEB APPLICATION DEVELOPMENT (3) LEC. 3. Departmental approval. Design and implementation of web sites and associated applications. Emphasis on user interface design and information organization and presentation. Fall, Spring.
COMP 6120 DATABASE SYSTEMS I (3) LEC. 3. Departmental approval. Theoretical and applied issues related to the analysis, design, and implementation of relational database systems.
COMP 6130 DATA MINING (3) LEC. 3. Advanced concepts, techniques, and applications of data mining with an algorithmic and computational focus, including data visualization, data warehousing, data cube computation, pattern and rule mining, classification, belief networks, clustering, outlier detection, graph matching, and parallel and distributed computation.
COMP 6210 COMPILER CONSTRUCTION (3) LEC. 3. Departmental approval. Compiler organization; lexical analysis; parsing; syntax- direction translation; symbol tables; basic dependence analysis; intermediate forms; interpreters vs. compilers; run-time storage management; code generation; error detection and recovery.
COMP 6320 DESIGN AND ANALYSIS OF COMPUTER NETWORKS (3) LEC. 3. Departmental approval. Computer networks design, including multiplexing, switching, routing, internetworking, transport protocols, congestion control, and performance evaluation.
COMP 6350 DIGITAL FORENSICS (3) LEC. 3. Departmental approval. Computer compromise and forensics, with focus on computer crime and ways to uncover, protect, and exploit digital evidence.
COMP 6360 WIRELESS AND MOBILE NETWORKS (3) LEC. 3. Departmental approval. Mobile IP, wireless routing, location management, ad-hoc wireless networks, wireless TCP personal communication systems, and GSM.
COMP 6370 COMPUTER AND NETWORK SECURITY (3) LEC. 3. Departmental approval. Fundamentals of computer security. Access Control. Authentication. Digital signatures and watermarks. Modeling and performance assessment. Viruses and worms. Identification of avenues for compromising systems.
COMP 6520 NETWORK AND OPERATING SYSTEM ADMINISTRATION (3) LEC. 3. Departmental approval. Studies of the installation, configuration and management of traditional, distributed and networked system software. Network integration of different systems. Performance monitoring, safety and security issues together with policies, politics and the laws regarding system software management.
COMP 6530 SECURE CLOUD COMPUTING: PRINCIPLES, PRACTICE, AND APPLICATIONS (3) LEC. 3. Cloud concepts and issues including architecture, service models, security, and implementation. Hands-on experience in both using, managing, and deploying clouds.
COMP 6600 ARTIFICIAL INTELLIGENCE (3) LEC. 3. Departmental approval. Introduction to intelligent agents, search knowledge representation and reasoning, machine learning.
COMP 6610 ARTIFICIAL INTELLIGENCE PROGRAMMING (3) LEC. 3. Pr. COMP 6600 or COMP 6606. Design and implementation of advanced artificial intelligence techniques including expert systems, planning, logic and constraint programming, knowledge representation and heuristic search methods.
COMP 6620 USER INTERFACE DESIGN AND EVALUATION (3) LEC. 3. Departmental approval. Theory and practice of designing interfaces for interactive systems, usability engineering techniques; implementing and evaluating interfaces.
COMP 6630 MACHINE LEARNING (3) LEC. 3. An exploration of current concepts, techniques, and applications in machine learning including abductive learning, case-based learning, deep learning, and reinforcement learning.
COMP 6650 DEEP LEARNING (3) LEC. 3. Pr. COMP 6630. Convolutional neural networks (CNNs); visualizing CNNs; detection CNNs; segmentation CNNs; recurrent neural networks; machine translation; unsupervised learning; and generative adversarial networks.
COMP 6660 EVOLUTIONARY COMPUTING (3) LEC. 3. Departmental approval. This course covers in depth the fundamentals of evolutionary computing and surveys the most popular types of evolutionary algorithms (e.g., genetic programming), a class of stochastic, population-based algorithms inspired by natural evolution theory, genetics, and population dynamics, capable of solving complex optimization and modeling problems. It applies them to solve a series of challenging assignments involving intensive programming, experimentation, statistical analysis, and technical writing.
COMP 6700 SECURE SOFTWARE PROCESS (3) LEC. 3. Pr. COMP 3700. Process models of the software life cycle as well as methods and tools for software development with a special emphasis on secure software engineering.
COMP 6710 SOFTWARE QUALITY ASSURANCE (3) LEC. 3. Departmental approval. Processes, methods, and tools associated with the production of robust, high-quality software.
COMP 6720 REAL TIME AND EMBEDDED SYSTEMS (3) LEC. 3. Departmental approval. Concepts of real-time and embedded computer systems. Studies of real-time algorithm issues such as timeliness, time-constrained scheduling and communication. Embedded system issues such as limited memory, low power, and high latency communication. Fall, Spring.
COMP 6830 CYBERSECURITY THREATS AND COUNTERMEASURES (3) LEC. 3. Pr. COMP 4320. Analysis of methods used by ethical hackers to identify security threats against networks, systems, and personnel. Examination of tactics, techniques, and procedures employed by threat actors and defensive countermeasures.
COMP 6970 SPECIAL TOPICS (1-3) LEC. 1-3. Investigation of current topics in computer science and software engineering. Course may be repeated for a maximum of 9 credit hours.
COMP 7120 DATABASE SYSTEMS II (3) LEC. 3. Pr. COMP 6120 or COMP 6126. Departmental approval. Theoretical and applied issues related to the analysis, design, and implementation of object-oriented database systems.
COMP 7270 ADVANCED TOPICS IN ALGORITHMS (3) LEC. 3. Departmental approval. In-depth study of advanced topics in algorithms.
COMP 7300 ADVANCED COMPUTER ARCHITECTURE (3) LEC. 3. Departmental approval. Modern instruction level parallel computer design, including superscalar and very-long instruction word processor design.
COMP 7370 ADVANCED COMPUTER AND NETWORK SECURITY (3) LEC. 3. Pr. COMP 6370 or COMP 6376. Departmental approval. Advanced, research-based examination of computer network attack and defense techniques, viruses and other malware; operating system vulnerabilities and safeguards.
COMP 7500 ADVANCED TOPICS IN OPERATING SYSTEMS (3) LEC. 3. Departmental approval. Advanced topics in operating system concepts, design and implementation.
COMP 7620 HUMAN-COMPUTER INTERACTION (3) LEC. 3. Departmental approval. Coreq. COMP 6620. Theoretical principles and practical aspects of interaction between humans and computers, design and evaluation of interactive systems.
COMP 7660 RESEARCH METHODS IN EVOLUTIONARY COMPUTING (3) LEC. 3. Pr. COMP 6660 or COMP 5660. This course prepares students to perform independent research in general, and in the field of evolutionary computing (EC) in specific. This course covers in the context of EC: ideation, literature review, proposal writing and evaluation, research software design and implementation, experiment design and analysis, scientific writing and evaluation, and scientific oral presentation.
COMP 7700 SOFTWARE ARCHITECTURE (3) LEC. 3. Pr. (COMP 6700 or COMP 6706) and (COMP 6710 or COMP 6716). Departmental approval. Methods and tools related to the analysis, specification and design of software architecture.
COMP 7720 SOFTWARE REVERSE ENGINEERING (3) LEC. 3. Pr. P/C COMP 6370 or COMP 6376. Process, methods and tools associated with software reverse engineering. Course covers static and dynamic analysis techniques applied to analyze malware (i.e., malicious software).
COMP 7800 ARTIFICIAL INTELLIGENCE FOR SECURITY (3) LEC. 3. Exposes students in mixed-discipline teams to applying concepts and techniques in the AI domain to real-world problems of the security domain. In addition to practical experience with both domains, it will also provide students the opportunity to apply a multidisciplinary perspective conveying the “conventional wisdom” and mindsets of both AI and security through project-based learning. This course mimics R&D environments where teams extract requirements from customers, identify the state-of-the-art, design and propose solutions, implement and evaluate those solutions, and culminates in both customer and technical communication of project artifacts.
COMP 7810 PROGRAM ASSESSMENT (0) LEC. SU. Coreq. UNIV 4AA0. Academic program assessment to include curriculum, course offerings and content, student services, and career exploration and first destination outcomes. Course may be repeated for a maximum of 10 credit hours.
COMP 7930 DIRECTED STUDY (1-3) IND/RES. Course may be repeated with change in topics.
COMP 7970 SPECIAL TOPICS (1-3) DSL. Course may be repeated with change in topics.
COMP 7980 CAPSTONE ENGINEERING PROJECT (3) LEC. 3. Planning, implementation, and completion of a design project. Project culminates in both a written report and an oral presentation.
COMP 7990 RESEARCH AND THESIS (1-15) DSL. May count either COMP 7990 or COMP 7996. Course may be repeated with change in topics.
COMP 8930 DIRECTED STUDY (1-3) IND. Course may be repeated for a maximum of 6 credit hours.
COMP 8970 SPECIAL TOPICS (1-3) IND. Course may be repeated with change in topics.
COMP 8990 RESEARCH AND DISSERTATION (1-20) DSL/DSR. Course may be repeated with change in topics.