Computer Science (COMP)
COMP 4333 Parallel and Distributed Computing (4 Credits)
Current techniques for effective use of parallel processing and large scale distributed systems. Programming assignments will give students experience in the use of these techniques. Specific topics will vary from year to year to incorporate recent developments. This course qualifies for the Computer Science "Advanced Programming" requirement. Prerequisites: COMP2370 and COMP2355, or equivalent.
COMP 4334 Parallel and Distributed Computing for Data Science (4 Credits)
Current techniques for effective use of parallel processing and large-scale distributed systems for data science. Programming assignments will give students experience in the use of these techniques. Specific topics will vary from year to year to incorporate recent developments. This course is not to be used for the MS Computer Science. Prerequisite: COMP 4581.
COMP 4355 Advanced System Programming (4 Credits)
This course covers programming in a UNIX environment, including use of common command line utilities, scripting, source control via Git, and integration of POSIX system calls into C/C++ code. These features will be leveraged to solve practical problems cleanly and efficiently. More emphasis will be placed on using these features than on how those features work. Prerequisites: COMP 3001, 3002, 3003, and 3004.
COMP 4362 Operating Systems II (4 Credits)
COMP 4370 Algorthmic Problem Solving (4 Credits)
The course is intended for students who are familiar with programming syntax but have not had much experience writing computer programs to solve a problem stated as a high-level description. The course will run through multiple such problem descriptions, discuss the design of programs to solve those problems using popular data structures, and have students implement those designs using a programming language. This course does not count for MS Computer Science requirements. Prerequisites: COMP 3001, 3002, 3003, and 3004.
COMP 4372 Theory of Algorithms (4 Credits)
NP-completeness; lower bound theory; approximation algorithms; amortized complexity and data structures, randomized algorithms. Assorted topics such as string algorithms, graph algorithms, linear programming, computational geometry.
Prerequisite: COMP 3371.
COMP 4384 Secure Software Engineering (4 Credits)
This course is concerned with systematic approaches for the design and implementation of secure software. While topics such as cryptography, networking, network protocols and large scale software development are touched upon, this is not a course on those topics. Instead, this course is on identification of potential threats and vulnerabilities early in the design cycle. The emphasis in this course is on methodologies and paradigms for identifying and avoiding security vulnerabilities, formally establishing the absence of vulnerabilities, and ways to avoid security holes in new software. There are programming assignments designed to make students practice and experience secure software design and development. Prerequisites: COMP 3001, 3002, 3003, and 3004.
COMP 4431 Data Mining (4 Credits)
Data Mining is the process of extracting useful information implicitly hidden in large databases. Various techniques from statistics and artificial intelligence are used here to discover hidden patterns in massive collections of data. This course is an introduction to these techniques and their underlying mathematical principles. Topics covered include: basic data analysis, frequent pattern mining, clustering, classification, and model assessment. Prerequisites: COMP 4441 and COMP 4581.
COMP 4432 Machine Learning (4 Credits)
This course will give an overview of machine learning techniques, their strengths and weaknesses, and the problems they are designed to solve. This will include the broad differences between supervised/unsupervised and reinforcement learning as well as associated learning problems such as classification and regression. Techniques covered, at the discretion of the instructor, may include approaches such as linear and logistic regression, neural networks, support vector machines, kNN, decision trees, random forests, Naive Bayes, EM, k-Means, and PCA. After course completion, students will have a working knowledge of these approaches and experience applying them to learning problems. Enforced Prerequisites: COMP 4442 and COMP 4581.
COMP 4433 Data Visualization (4 Credits)
This course explores visualization techniques and theory. The course covers how to use visualization tools to effectively present data as part of quantitative statements within a publication/report and as an interactive system. Both design principles (color, layout, scale, and psychology of vision) as well as technical visualization tools/languages will be covered. Prerequisites: COMP 3006, COMP 4441.
COMP 4441 Introduction to Probability and Statistics for Data Science (4 Credits)
The course introduces fundamentals of probability for data science. Students survey data visualization methods and summary statistics, develop models for data, and apply statistical techniques to assess the validity of the models. The techniques will include parametric and nonparametric methods for parameter estimation and hypothesis testing for a single sample mean and two sample means, for proportions, and for simple linear regression. Students will acquire sound theoretical footing for the methods where practical, and will apply them to real-world data, primarily using R. Prerequisites: COMP 1671, MATH 1951, MATH 1952; or Data Science Bridge Courses COMP 3005, 3007, and 3008.
COMP 4442 Advanced Probability and Statistics for Data Science (4 Credits)
This course builds on material in Probability and Statistics 1. Students will carry out model fitting and diagnostics for multiple regression, ANOVA, ANCOVA, and generalized linear models. Dimension reductions techniques such as PCA and Lasso are introduced, as are techniques for handling dependent data. The course introduces the principles of resampling and Bayesian Analysis. Students will acquire sound theoretical footing for the methods where practical, and will apply them to real-world data, primarily using R.
COMP 4447 Data Science Tools 1 (4 Credits)
Organizations are using data science to extract actionable insight from data. To highlight the hidden patterns in the data, this course equips students with essential sills for data collection, cleanup, transformation, feature engineering, summarization, and visualization. Students will do assignments and a final project. This is a hands-on course. Students will use Python libraries, Linux commands, and various data sets to perform these activities. Enforced Prerequisites: COMP 3006 and COMP 3008. Co-requisite: COMP 4441.
COMP 4448 Data Science Tools 2 (4 Credits)
Building a successful predictive model is a multi-faceted process. This course focuses on hypothesis testing and the development of predictive models. Students will also learn how to perform graph-based modeling and optimization. Students will do assignments and a final project. This is a hands-on course. Students will use Python libraries, Linux commands, and various data sets to perform these activities. Prerequisite: COMP 4447.
COMP 4449 Data Science Capstone (4 Credits)
Students identify and fill a demand for an innovative data science product, such as a data base tool, analytical software, or domain specific analysis. The product is defined, implemented, documented, tested, and presented by the student or student team with the instructor and other stakeholders acting as a project supervisors to verify that goals are met through the 10-week development process. Prerequisites : COMP 4442, COMP 4448, and COMP 4581.
COMP 4581 Algorithms for Data Science (4 Credits)
This course introduces the design and analysis of algorithms within the context of data science. Topics include; asymptotic complexity and algorithm design techniques such as incremental, divide and conquer, dynamic programming, randomization, greedy algorithms, and advanced sorting techniques. Examples to illustrate techniques are drawn from multi-dimensional clustering (k-means and probabilistic), regression, decision trees, order statistics, data mining using apriori algorithms, and algorithms for generating combinatorial objects. Prerequisites: COMP 3006 and 3008.
COMP 4600 Seminar in Computer Science (0-4 Credits)
Preparation and presentation of lectures on some aspect of current research in computer science; topics not generally encountered in formal courses, may include robotics, pattern recognition, parallel processing, computer applications. 10- to 15- page paper with bibliography required.
COMP 4621 Computer Networking (4 Credits)
The Internet is arguably the most transformative invention in recent history and is at its core a massive global computer network (of networks). Students in this course learn how the Internet works, from the highest-level application layer to the lowest-level hardware layer. Topics covered include the OSI and TCP/IP reference models, physical transmission methods, error detection and correction, addressing, routing algorithms, congestion control and more. Prerequisites: COMP 3001, 3002, 3003, and 3004.
COMP 4701 Special Tpcs-Computer Graphics (1-4 Credits)
COMP 4702 Advanced Topics-Database (3 Credits)
COMP 4703 Adv Topics-Artificial Intell (1-4 Credits)
COMP 4704 Advanced Topics-Systems (3-4 Credits)
COMP 4705 Advanced Topics-Programming (1-4 Credits)
COMP 4708 Special Topics-VLSI (3 Credits)
COMP 4709 Special Tpcs-Computer Security (3 Credits)
COMP 4720 Applied Cryptography (4 Credits)
Block ciphers, one-way hashes, symmetric and asymmetric encryption, public-key infrastructure, digital signatures, security protocols, anonymity, and digital cash.
COMP 4721 Computer Security (4 Credits)
This course gives students an overview of computer and system security along with some cryptography. Some network security concepts are also included. Other concepts include coverage of risks and vulnerabilities, policy formation, controls and protection methods, role-based access controls, database security, authentication technologies, host-based and network-based security issues. Prerequisites: COMP 3001, 3002, 3003, and 3004.
COMP 4722 Network Security (4 Credits)
Network Security covers tools and techniques employed to protect data during transmission. It spans a broad range of topics including authentication systems, cryptography, key distribution, firewalls, secure protocols and standards, and overlaps with system security concepts as well. This course will provide an introduction to these topics, and supplement them with hands-on experience. In addition, students will perform an extensive analysis, or development of a security related product independently. Prerequisites: COMP 4721 or COMP 3001, 3002, 3003, and 3004.
COMP 4723 Ethical Hacking (4 Credits)
Ethical hacking is the process of probing computer systems for vulnerabilities and exposing their presence through proof-of-concept attacks. The results of such probes are then utilized in making the system more secure. This course will cover the basics of vulnerability research, foot printing targets, discovering systems and configurations on a network, sniffing protocols, firewall hacking, password attacks, privilege escalation, rootkits, social engineering attacks, web attacks, and wireless attacks, among others. Prerequisites: COMP 3361, or COMP 3001, 3002, 3003, and 3004.
COMP 4724 Systems Security Management (4 Credits)
This course covers basic system administration tasks on a Unix environment, with a special focus on command line navigation, file/process access control, setting up network configurations, and managing services related to networks and their security. Prerequisites: COMP 3001, 3002, 3003, and 3004.
COMP 4799 Capstone Project in Cybersecurity (1-8 Credits)
The purpose of the cybersecurity capstone project is to provide an integrative experience that ties together the learning outcomes from academic coursework undertakings and industry skills necessary to be productive in delivering an end product. Students will engage in one of many options available, such as involvement in a research project, a case study, a product development project, or an extensive survey paper. Capstone projects are presented at the end of the quarter in front of a representative group. Prerequisites: COMP 3001, 3002, 3003, and 3004.
COMP 4991 Independent Study (1-10 Credits)
Cannot be arranged for any course that appears in regular course schedule for that particular year.
COMP 4992 Directed Study (1-10 Credits)
COMP 4995 Independent Research (1-17 Credits)
Research projects undertaken in conjunction with a faculty member.
COMP 5991 Independent Study (1-17 Credits)
COMP 5995 Independent Research (1-17 Credits)