Computer Science (COMP)
COMP 100 - INTRODUCTION TO COMPUTING AND INFORMATION SYSTEMS
Short Title: INTRO COMPUTING & INFO SYS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Distribution Group: Distribution Group III
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Lower-Level
Description: An introduction to organizing, analyzing, and presenting information using databases and spreadsheets. No programming involved, and no computing background expected.
Course URL: www.clear.rice.edu/comp100/
COMP 105 - AP/OTH CREDIT COMPUTER SCIENCE
Short Title: AP/OTH CREDIT COMPUTER SCIENCE
Department: Computer Science
Grade Mode: Transfer Courses
Course Type: Transfer
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Lower-Level
Description: This course provides credit for students who have successfully completed approved examinations, such as Advanced Placement exams. This credit counts toward the total credit hours required for graduation.
COMP 140 - COMPUTATIONAL THINKING
Short Title: COMPUTATIONAL THINKING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Distribution Group: Distribution Group III
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Lower-Level
Description: An introduction to computational problem solving designed to give an overview of computer science using real-world problems across a broad range of disciplines. Students learn how to think about these problems and how to structure effective solutions to them using computation. No programming knowledge is required or expected; students learn how to implement their solutions in Python. If you register for fully online section, you must have a webcam and you must take the exams in person.
Course URL: www.clear.rice.edu/comp140
COMP 160 - INTRODUCTION TO GAME PROGRAMMING IN PYTHON
Short Title: INTRO TO GAME PROG IN PYTHON
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Distribution Group: Distribution Group III
Credit Hours: 4
Restrictions: Students with a class of Junior or Senior may not enroll. Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Lower-Level
Description: This class covers the basics of Python Programming with a focus on building simple games in a web-based environment. The class includes an introduction to event-driven programming and trains the students in the specifics of a Python GUI system designed to support creating to support creating applications that run in a web browser. This course is limited to first-year students only. Continuing Students may register with an approved Special Registration Form. Recommended Prerequisite(s): Java Experience.
Course URL: www.clear.rice.edu/comp160/
COMP 162 - INTRODUCTION TO GAME CONTENT CREATION
Short Title: INTRO TO GAME CONTENT CREATION
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Lower-Level
Description: Explore how modern game content is created, and how it interacts with the underlying technology. Beginning with an explanation of how games are developed and what role content plays in the process, the class will learn to use 3D Studio Max, Photoshop, and game-native scripting as they create working content for an established game project.
Course URL: www.owlnet.rice.edu/~comp162
COMP 180 - PRINCIPLES OF COMPUTING
Short Title: PRINCIPLES OF COMPUTING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Distribution Group: Distribution Group III
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Lower-Level
Prerequisite(s): COMP 130 or COMP 140 or COMP 160
Description: This class is designed for non-majors interested in a broader understanding of Computer Science and focuses on intermediate-level programming in Python as well as the basics of discrete math. The class concludes with an introduction to the process of Algorithmic Thinking. Note that COMP 180 cannot be substituted for COMP 182 as a pre-requisite for upper level CS classes. Instructor Permission Required.
COMP 181 - INTRODUCTION TO PROOF WRITING
Short Title: INTRODUCTION TO PROOF WRITING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Seminar
Credit Hour: 1
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Lower-Level
Description: This course is aimed to provide additional preparation for students who are intending to take COMP 182 in the following semester. It will cover foundational topics in mathematical notation, logic, and proof writing. It should not be taken if student already has credit for COMP 182. Instructor Permission Required. Mutually Exclusive: Cannot register for COMP 181 if student has credit for MATH 290.
COMP 182 - ALGORITHMIC THINKING
Short Title: ALGORITHMIC THINKING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Lower-Level
Prerequisite(s): COMP 140
Description: Algorithms are the engines of a great majority of systems, natural and artificial alike. This course introduces algorithmic thinking as a discipline for reasoning about systems, taming their complexities, and elucidating their properties. Algorithmic techniques, along with their correctness and efficiency, will be taught through reasoning about systems of interactions, such as markets, that are ubiquitous in our highly connected world.
COMP 200 - ELEMENTS OF COMPUTER SCIENCE
Short Title: ELEMENTS OF COMPUTER SCIENCE
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Distribution Group: Distribution Group III
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Lower-Level
Description: Broad introduction to major topics in computer science. Includes algorithms, mathematical models of computation, machine organization and design, programming languages, communication, and artificial intelligence. This course is intended for majors outside of Science and Engineering.
Course URL: www.clear.rice.edu/comp200/
COMP 215 - INTRODUCTION TO PROGRAM DESIGN
Short Title: INTRODUCTION TO PROGRAM DESIGN
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Lower-Level
Prerequisite(s): COMP 182
Description: This course covers the principles of programming and program design. The course is organized around a number of individual programming assignments that fit together to complete a significant, real-world application. Each assignment emphasizes one or more of the basic principles of software design, including: encapsulation, abstraction, test-driven development, and functional and object-oriented programming. The Java programming language will be used. An introduction to the basics of the Java language itself (including Java syntax and semantics) will be provided.
COMP 222 - INTRODUCTION TO COMPUTER ORGANIZATION
Short Title: INTRO TO COMPUTER ORGANIZATION
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Lower-Level
Prerequisite(s): COMP 140
Description: This course introduces students to the organization of computer systems in order that they gain an understanding of how a computer system executes their programs. Students will learn how to write small-scale programs in C, how to read the translation of those programs into assembly language, and how those programs are executed at the machine level. Specific topics covered will include data representation at the machine level, static versus dynamic memory allocation, instruction set architecture and the encoding of instructions in memory, linking relocatable object files to create executable files, pipelining within the processor, and caching within the memory system. Mutually Exclusive: Cannot register for COMP 222 if student has credit for ELEC 220.
COMP 238 - SPECIAL TOPICS
Short Title: SPECIAL TOPICS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Internship/Practicum, Laboratory, Lecture, Seminar, Independent Study
Credit Hours: 1-4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Lower-Level
Description: Topics and credit hours vary each semester. Contact department for current semester's topic(s). Repeatable for Credit.
COMP 290 - COMPUTER SCIENCE PROJECTS
Short Title: COMPUTER SCIENCE PROJECTS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Research
Credit Hours: 1-3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Lower-Level
Description: Theoretical and experimental investigations under staff direction. Instructor Permission Required. Repeatable for Credit.
COMP 300 - SOCIETY IN THE INFORMATION AGE
Short Title: SOCIETY IN THE INFORMATION AGE
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Distribution Group: Distribution Group III
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Description: We will review the remarkable technology of the Information Age and examine its effects on the ways in which we live, work and think about the world around us. We will consider, for example, how the pervasive use of computers and networks is changing our ideas about property, privacy, authority, social relations, knowledge and identity. And we will discuss what further changes we might see as technology continues to advance.
COMP 301 - COMPUTER ETHICS
Short Title: COMPUTER ETHICS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to students with a major in Computer Science. Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Description: Given their growing power in the twenty-first century, computer scientists have duties both to society and their own profession to wield that power wisely and responsibly. In this discussion-and reflection-oriented course students will apply fundamentals of moral philosophy and social responsibility to current issues in computer science. Graduate/Undergraduate Equivalency: COMP 510. Mutually Exclusive: Cannot register for COMP 301 if student has credit for COMP 510.
COMP 310 - ADVANCED OBJECT - ORIENTED PROGRAMMING AND DESIGN
Short Title: ADV OBJECT-ORIENTED PROG
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 215
Description: Discover how state-of-the-art object-orient programming and design techniques can create globe-spanning software systems that are both flexible and scalable. Learn how software design patterns are used in multiple programming paradigms. Explore highly decoupled systems with dynamically configurable behaviors. Highly recommended for anyone interested in building large systems and software engineering. Mutually Exclusive: Cannot register for COMP 310 if student has credit for COMP 318/COMP 404.
Course URL: www.clear.rice.edu/comp310
COMP 311 - FUNCTIONAL PROGRAMMING
Short Title: FUNCTIONAL PROGRAMMING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 215
Description: An introduction to concepts, principles, and approaches of functional programming. Functional programming is a style of programming where the key means of computation is the application of functions to arguments (which themselves might be functions). This style of programming has become increasingly popular in recent years because it offers important advantages in designing, maintaining, and reasoning about programs in many modern contexts such as web services, multicore programming, and cluster computing. Course work consists of a series of programming assignments in the Scala programming language and various library extensions such as Apache Spark. Graduate/Undergraduate Equivalency: COMP 544. Mutually Exclusive: Cannot register for COMP 311 if student has credit for COMP 544.
Course URL: wiki.rice.edu/confluence/display/PARPROG/COMP311
COMP 312 - INTRODUCTION TO PROGRAMMING LANGUAGES
Short Title: INTRO TO PROGRAMMING LANGUAGES
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 222 and COMP 215
Description: This course explores the design landscape of programming languages and compilers, with the primary goal of giving students skills and knowledge that will help them as practitioners. After completing the course, students should be able to evaluate the tradeoffs between different programming languages, choose the language that is best-suited to a given task, write code using the functional programming paradigm, and learn new languages more quickly. Specific topics covered include lexical and syntactic analysis, type systems, variable scopes and bindings, control flow structures, and functional programming. Case studies from modern programming languages will be used to illustrate a range of abstractions and design choices.
COMP 318 - CONCURRENT PROGRAM DESIGN
Short Title: CONCURRENT PROGRAM DESIGN
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 215
Description: Modern software systems are typically complex, event-driven, and require coordination across multiple components. Such systems require careful design to ensure that they uphold best practices in software design while supporting concurrency. This course will introduce principles of designing large-scale concurrent software and give students practice implementing these principles in the context of large-scale, highly concurrent software systems. Topics covered will include concurrency vs. parallelism, concurrency concepts and mechanisms, and principles of software design including encapsulation, composition, decoupling, and accessibility. Mutually Exclusive: Cannot register for COMP 318 if student has credit for COMP 310.
COMP 321 - INTRODUCTION TO COMPUTER SYSTEMS
Short Title: INTRO TO COMPUTER SYSTEMS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): ELEC 220 and (COMP 211 or COMP 215)
Description: This course introduces computer systems from the programmer's perspective. Topics include data representation, the compilation process, and system-level programming concepts such as interrupts and concurrency. Formerly COMP 221. Mutually Exclusive: Cannot register for COMP 321 if student has credit for COMP 221.
COMP 322 - PRINCIPLES OF PARALLEL PROGRAMMING
Short Title: FUNDAMENTALS OF PARALLEL PROG
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 215
Description: Fundamentals of parallel programming: abstract models of parallel computers, parallel algorithms and data structures, and common parallel programming patterns including task parallelism, undirected and directed synchronization, data parallelism, divide-and-conquer parallelism, and map-reduce. Laboratory assignments will explore these topics through the use of parallel extensions to the Java language. Cross-list: ELEC 323.
COMP 326 - DIGITAL LOGIC DESIGN
Short Title: DIGITAL LOGIC DESIGN
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): ELEC 220
Description: Study of gates, flip-flops, combinational and sequential switching circuits, registers, logical and arithmetic operations, introduction to the Verilog hardware description language. Cross-list: ELEC 326.
COMP 327 - INTRODUCTION TO COMPUTER SECURITY
Short Title: INTRO TO COMPUTER SECURITY
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 310 or COMP 314 or ELEC 322
Description: This elective course covers a wide variety of topics in computer security, including hands-on experience with breaking software and engineering software to be harder to break. For example, students will perform buffer overflow attacks and exploit web application vulnerabilities, while also learning how to defend against them. Grades will be based on a series of in-class projects. Graduate/Undergraduate Equivalency: COMP 427, COMP 541. Mutually Exclusive: Cannot register for COMP 327 if student has credit for COMP 427/COMP 541.
COMP 330 - TOOLS AND MODELS FOR DATA SCIENCE
Short Title: TOOLS & MODELS - DATA SCIENCE
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): (MATH 211 or MATH 212 or MATH 221 or MATH 222 or MATH 232) and COMP 215 (may be taken concurrently)
Description: This course is an introduction to modern data science. Data science is the study of how to extract actionable, non-trivial knowledge from data. The proposed course will focus both on the software tools used by practitioners of modern data science, as well as the mathematical and statistical models that are employed in conjunction with such software tools. On the tools side, we will cover the basics of relational database systems, as well as modern systems for distributed computing based on MapReduce. On the models side, the course will cover standard supervised and unsupervised models for data analysis and pattern discovery. Can be taken concurrently with COMP 215. Graduate/Undergraduate Equivalency: COMP 543. Mutually Exclusive: Cannot register for COMP 330 if student has credit for COMP 543/DSCI 302.
COMP 340 - STATISTICAL MODELS AND ALGORITHMS FOR DATA SCIENCE
Short Title: STATISTICAL MODELS FOR DS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 140 and (MATH 212 or MATH 222 or MATH 232)
Description: The course is an intermediate level course in data science for students at the sophomore level with some experience in programming and background in mathematics (calculus). The course teaches students to “do” data science in Python using six modules to illustrate fundamental data science operations, data cleaning, model exploration, model formulation, model visualization, model communication. Recommended Prerequisite(s): COMP 182.
COMP 341 - PRACTICAL MACHINE LEARNING FOR REAL WORLD APPLICATIONS
Short Title: PRACTICAL MACHINE LEARNING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 182 and (MATH 102 or MATH 106)
Description: This course teaches practical skills for using machine learning models. Students will learn how to apply ML algorithms to real world problems from data collection to the final step of reporting findings. Topics covered include: data augmentation, bias detection, feature engineering, efficient tuning and training, model interpretation, and data storytelling. Recommended Prerequisite(s): MATH 355/354/CAAM 335/CMOR 302, STAT 310/315/DSCI 301
COMP 361 - GEOMETRIC MODELING
Short Title: GEOMETRIC MODELING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): (MATH 101 or MATH 105) and (MATH 102 or MATH 106) and COMP 182 and COMP 215
Description: Exploration of curves and surfaces (e.g. parametric form, implicit form, and conversion between forms), the representation of solid (e.g., wireframes, octrees, boundary representations, and constructive solid geometry), and applications (e.g., graphics, motion planning, simulation, and finite element mesh generation. Graduate/Undergraduate Equivalency: COMP 561. Repeatable for Credit.
COMP 380 - PRACTICAL PROBLEM-SOLVING
Short Title: PRACTICAL PROBLEM-SOLVING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 182
Description: We introduce algorithms, algorithmic techniques, and some discrete math with a decidedly practical bent. This will improve anyone’s programming skills, but with specific application towards programming contests and programming-oriented job interviews. This also provides optional additional preparation for COMP 382. Features both individual and small-group exercises in a hands-on class.
COMP 382 - REASONING ABOUT ALGORITHMS
Short Title: REASONING ABOUT ALGORITHMS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 182 and COMP 215 and (ELEC 303 or STAT 310 or ECON 307 or STAT 311 or STAT 312 or STAT 315 or DSCI 301)
Description: Writing algorithms is fun, but how are you sure that the algorithm you wrote is flawless? Are there computing tasks for which it is impossible to produce an efficient algorithm, or, for that matter, any algorithm? To answer these questions, you have to learn to perform mathematical reasoning about algorithmic problems and solutions COMP 382 is an introduction to such reasoning techniques. Topics covered would include elementary logic, analysis of the correctness and efficiency of algorithms, and formal computational models like finite automata and Turning machines. On the way, you are also going to learn some new algorithm design techniques.
COMP 390 - COMPUTER SCIENCE PROJECTS
Short Title: COMPUTER SCIENCE PROJECTS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Research
Credit Hours: 1-3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Description: Theoretical and experimental investigations under staff direction. Instructor Permission Required. Repeatable for Credit.
COMP 402 - PRODUCTION PROGRAMMING
Short Title: PRODUCTION PROGRAMMING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 310 or COMP 311 or COMP 318
Description: This course focuses on the principles and practices of test-driven software development, which have been popularized under the banner of "Extreme Programming." To provide students with practical experience, the course engages students in the development of open source production programs written in JAVA or C#. The DRJAVA programming courses was developed by students in this course. Some of the major topics covered in course lectures include design patterns for controlling concurrency and refactoring transformations to improve legacy code. Graduate/Undergraduate Equivalency: COMP 501. Mutually Exclusive: Cannot register for COMP 402 if student has credit for COMP 501.
COMP 403 - REASONING AND SOFTWARE
Short Title: REASONING ABOUT SOFTWARE
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): (COMP 382 and COMP 215) or COMP 482 or COMP 409 or COMP 509
Description: Our reliance on software of all forms is increasing by the day. As a result, it is more important than ever to ensure that programs function correctly and cannot be exploited by hostile adversaries. The field of formal methods takes on this challenge, developing algorithms and programming methodologies that can be used to formally reason about what happens when software executes on arbitrary inputs, often without actually executing the program. Such reasoning can be used, for example, to identify subtle bugs and vulnerabilities in programs, or to give mathematical proofs of program correctness. This is a hands-on introduction to the field of formal methods. In this class, you will learn the theoretical foundations of these systems; you will also implement a series of systems that can be used to reason about the correctness of C programs. Graduate/Undergraduate Equivalency: COMP 503. Mutually Exclusive: Cannot register for COMP 403 if student has credit for COMP 503.
COMP 405 - ADVANCED TOPICS IN OBJECT-ORIENTED DESIGN
Short Title: ADV TOP OBJECT/ORIENTED DESIGN
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 310
Description: A topics-driven exploration of cutting-edge object oriented design issues and concepts including mutable recursive data frameworks, design patterns for sorting, parsing and games, service-oriented architectures and cloud computing. Detailed knowledge and practice in abstract structure and behavioral representations, delegation model programming, design patterns and Java are required. Graduate/Undergraduate Equivalency: COMP 505. Mutually Exclusive: Cannot register for COMP 405 if student has credit for COMP 505.
COMP 408 - VERIFIED PROGRAMMING
Short Title: VERIFIED PROGRAMMING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Description: The course will explore the mathematical underpinnings of reliable software. The students will learn how to use proof assistants to construct software along with a machine-checkable proof of its correctness. Basic concepts of logic, functional programming, static type systems and deductive verification will be covered. Graduate/Undergraduate Equivalency: COMP 548.
COMP 409 - ADVANCED LOGIC IN COMPUTER SCIENCE
Short Title: ADV LOGIC IN COMPUTER SCIENCE
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 182 and COMP 215 and (COMP 382 or ELEC 303 or STAT 310 or ECON 307 or STAT 311 or STAT 312 or STAT 315 or DSCI 301 or CMOR 302 or CMOR 303 or MATH 354 or MATH 355)
Description: Logic has been called "the calculus of computer science". The argument is that logic plays a fundamental role in computer science, similar to that played by calculus in the physical sciences and traditional engineering disciplines. Indeed, logic plays an important role in areas of Computer Science as disparate as artificial intelligence (automated reasoning), architecture (logic gates), software engineering (specification and verification), programming languages (semantics, logic programming), databases (relational algebra and SQL), algorithms (complexity and expressiveness), and theory of computation (general notions of computability). Graduate/Undergraduate Equivalency: COMP 509. Mutually Exclusive: Cannot register for COMP 409 if student has credit for COMP 509.
Course URL: www.cs.rice.edu/~vardi/comp409/
COMP 410 - SOFTWARE ENGINEERING METHODOLOGY
Short Title: SOFTWARE ENGINEER METHODOLOGY
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 310 or COMP 318
Description: COMP 410 is a pure discovery-based learning course designed to give students real-life, hands-on training in a wide variety of software engineering issues that arise in creating large-scale, state-of-the-art software systems. The class forms a small software development "company" that works to deliver a product to a customer. The topics encountered include and are not limited to, dealing with new technologies (e.g. C#, .NET, distributed computing), advanced object-oriented programming and design, interacting with customers, problem specification and tasking, individual and group communications, human resource management, group leadership, testing, integration and documentation. Traditional development cycle methodologies will be compared to recent, "agile" techniques. Graduate/Undergraduate Equivalency: COMP 539. Mutually Exclusive: Cannot register for COMP 410 if student has credit for COMP 539.
COMP 411 - PRINCIPLES OF PROGRAMMING LANGUAGES
Short Title: PRINCIPLES OF PROG LANGUAGES
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 311
Description: The design, definition and abstract implementation of programming languages including methods for precisely specifying syntax and semantics. Graduate/Undergraduate Equivalency: COMP 511. Mutually Exclusive: Cannot register for COMP 411 if student has credit for COMP 511.
COMP 412 - COMPILER CONSTRUCTION FOR UNDERGRADUATE STUDENTS
Short Title: COMPILER CONSTRUCTION - UG
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 321
Description: Topics in the design of programming language translators, including parsing, run-time storage management, error recovery, code generation and optimization. Graduate/Undergraduate Equivalency: COMP 506. Recommended Prerequisite(s): COMP 412 or COMP 506. Mutually Exclusive: Cannot register for COMP 412 if student has credit for COMP 506.
Course URL: www.clear.rice.edu/comp412
COMP 413 - DISTRIBUTED PROGRAM CONSTRUCTION
Short Title: DISTRIB PROGRAM CONSTRUCTION
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 310 or COMP 318
Description: This course focuses on modern principles for the construction of distributed programs, with an emphasis on design patterns, modern programming tools, and distributed object systems. The material will be applied in a substantial software design/construction project.
COMP 414 - OPTIMIZATION: ALGORITHMS, COMPLEXITY AND APPROXIMATIONS
Short Title: ALGORITHMS, COMPLEX. & APPROX
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): (ELEC 303 or STAT 310 or ECON 307 or STAT 312 or STAT 315 or DSCI 301 or STAT 311) and (CMOR 302 or CMOR 303 or MATH 354 or MATH 355)
Description: The main focus of the course will be on smooth optimization techniques, with applications in machine learning and artificial intelligence. The course will introduce the basics of algorithms on continuous optimization, starting from the classical gradient descent algorithm in convex optimization, towards more sophisticated approaches in non-convex scenarios. The course will explore the fundamental theory, algorithms, complexity and approximations in nonlinear optimization. Graduate/Undergraduate Equivalency: COMP 514. Mutually Exclusive: Cannot register for COMP 414 if student has credit for COMP 514.
COMP 415 - REAL-WORLD SOFTWARE DEVELOPMENT
Short Title: REAL-WORLD SOFTWARE DEVELOPMNT
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 410
Description: Experience real customers, software, and situations. The class will be contracted by an industrial customer to design build, and deliver a product. Negotiate to finalize specifications, updates, and delivery schedules Encounter real-life issues such as team management, intellectual property, and vagueness and specification changes while developing a state-of-the-art software application.
COMP 416 - GENOME-SCALE ALGORITHMS AND DATA STRUCTURES
Short Title: GENOME-SCALE ALGORITHMS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 382 and (COMP 310 or COMP 318)
Description: Since the advent of Sanger Sequencing in 1977, computer scientists have devised algorithms and software tools to interpret and analyze DNA sequences. The field of bioinformatics focuses on computational approaches to solving biological questions. This course serves both as an introduction to widely used algorithms in bioinformatics and a software design course. The class involves a semester-long software design and implementation project, emphasizing design patterns and high-performance computing. No prior knowledge of biology is assumed nor required. Graduate/Undergraduate Equivalency: COMP 519. Mutually Exclusive: Cannot register for COMP 416 if student has credit for COMP 519.
COMP 417 - ADVANCED OPERATING SYSTEMS AND SECURITY
Short Title: ADVANCED OPERATING SYSTEMS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 421 or ELEC 421
Description: In this seminar, we will investigate advanced topics in the design and implementation of operating systems, including: OS structure (includingWeb Browsers), concurrency and synchronization, memory management, file systems and storage, virtual machines, and information protection. We will explore both fundamental and hot topics through reading, discussing, and presenting key research findings. This course will also cover methods for critiquing, writing, and presenting research findings through a course long project. Graduate/Undergraduate Equivalency: COMP 517. Mutually Exclusive: Cannot register for COMP 417 if student has credit for COMP 517.
COMP 418 - IOT PROGRAMMING AND DATA ANALYSIS
Short Title: IOT PROGRAM. AND DATA ANALYSIS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 321
Description: This course is an introduction to the Internet of Things (IoT). It will present the tools and techniques needed to develop complex IoT applications that encompass interaction with the physical world and data analysis across the IoT computing infrastructure. The topics range from programming microcontrollers (e.g., Arduino) and single-board computers (e.g., Raspberry Pi) to IoT automation and the efficient analysis of real-time IoT data. Graduate/Undergraduate Equivalency: COMP 518.
COMP 420 - INTRODUCTION TO DISTRIBUTED COMPUTER SYSTEMS
Short Title: INTRO TO DISTRIBUTED COMP SYS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 421 or ELEC 421
Description: Introduction to distributed computer systems. The course covers concepts, architecture, algorithms, protocols, and implementation, focusing on distribution, scale, robustness in the face of failure, and security. Graduate/Undergraduate Equivalency: COMP 532. Mutually Exclusive: Cannot register for COMP 420 if student has credit for COMP 532.
Course URL: www.clear.rice.edu/comp420
COMP 421 - OPERATING SYSTEMS AND CONCURRENT PROGRAMMING
Short Title: OP SYS/CONCURRENT PROGRAMMING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 215 and COMP 321
Description: Introduction to the design, construction, and analysis of concurrent programs with an emphasis on operating systems, including filing systems, schedulers, and memory allocators. Specific attention is devoted to process synchronization and communication within concurrent programs. Cross-list: ELEC 421. Graduate/Undergraduate Equivalency: COMP 521. Mutually Exclusive: Cannot register for COMP 421 if student has credit for COMP 521.
Course URL: www.clear.rice.edu/comp421/
COMP 422 - PARALLEL COMPUTING
Short Title: PARALLEL COMPUTING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 321
Description: COMP 422 is an undergraduate version of this course. COMP 422 students will have four programming assignments. COMP 534 students will have five. As part of their assignments, both COMP 422 and COMP 534 students will analyze the scalability and parallel efficiency of parallel programs they write. COMP 534 students will additionally use tools to qualify the root causes of scaling losses in their programs and document their findings. Graduate/Undergraduate Equivalency: COMP 534. Mutually Exclusive: Cannot register for COMP 422 if student has credit for COMP 534.
COMP 423 - INTRODUCTION TO MATHEMATICAL CRYPTOGRAPHY
Short Title: INTRO TO MATH CRYPTOGRAPHY
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 382 or COMP 448 or MATH 448 or MATH 365
Description: The course introduces students to modern cryptographic techniques, focusing mainly on mathematical tools. The course covers topics such as Diffie-Hellman key exchange, the ElGamal public key crypto system, integer factorization and RSA, and elliptic curves and lattices in cryptography. Graduate/Undergraduate Equivalency: COMP 523. Mutually Exclusive: Cannot register for COMP 423 if student has credit for COMP 523/COMP 530.
COMP 424 - MOBILE AND EMBEDDED SYSTEM DESIGN AND APPLICATION
Short Title: MOBILE & EMBEDDED SYSTEM
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): ELEC 220
Description: ELEC 424 introduces mobile and embedded system design and applications to undergraduate students and provides them hands-on design experience. It consists of three interlearning parts: lectures, student project, and student presentations. Cross-list: ELEC 424.
COMP 425 - COMPUTER SYSTEMS ARCHITECTURE
Short Title: COMPUTER SYSTEMS ARCHITECTURE
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): ELEC 326 or COMP 326
Description: Evolution of key architecture concepts found in advanced uniprocessor systems. Fundamental and advanced pipelining techniques and associated issues for improving processor performance. Illustrated with RISC processors such as the ARM processor. Examine several metrics for processor performance, such as Amdahl’s law. Key concepts of data and program memory systems found in modern systems with memory hierarchies and cashes. Perform experiments in cache performance analysis. Influence of technology trends, such as Moore’s law, on processor implementation Approaches for exploiting instruction level parallelism, such as VLIW. Introduction to parallel and multicore architectures. Introduction to processor architectures targeted for imbedded applications. Cross-list: ELEC 425. Graduate/Undergraduate Equivalency: COMP 554. Mutually Exclusive: Cannot register for COMP 425 if student has credit for COMP 554.
COMP 427 - INTRODUCTION TO COMPUTER SECURITY
Short Title: INTRO TO COMPUTER SECURITY
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): (COMP 310 or COMP 318) and COMP 321
Description: This elective course covers a wide variety of topics in computer security, including hands-on experience w/breaking software & engineering software to be harder to break. For example, students will perform buffer overflow attacks & exploit web application vulnerabilities, while also learning how to defend against them. Graduate/Undergraduate Equivalency: COMP 327, COMP 541. Mutually Exclusive: Cannot register for COMP 427 if student has credit for COMP 327/COMP 541.
COMP 429 - INTRODUCTION TO COMPUTER NETWORKS
Short Title: INTRO TO COMPUTER NETWORKS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 321
Description: Network architectures, algorithms, and protocols. Local- and Wide-area networking. Intra- and inter-domain routing. Transmission reliability. Flow and congestion control. TCP/IP. Multicast. Quality of Service. Network Security - Networked applications. Cross-list: ELEC 429. Graduate/Undergraduate Equivalency: COMP 556. Mutually Exclusive: Cannot register for COMP 429 if student has credit for COMP 556.
Course URL: www.clear.rice.edu/comp429/
COMP 430 - INTRODUCTION TO DATABASE SYSTEMS
Short Title: INTRO TO DATABASE SYSTEMS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 215 and COMP 182
Description: Introduction to relational and other database systems, SQL programming, Database application programming, and Database design. Graduate/Undergraduate Equivalency: COMP 533. Mutually Exclusive: Cannot register for COMP 430 if student has credit for COMP 533.
COMP 431 - WEB DEVELOPMENT
Short Title: WEB DEVELOPMENT
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 318 or COMP 321
Description: In this project-based course, students create multi-user Web applications involving all aspects of application development from front-end and back-end programming to interfacing client-server communications technologies. Class time includes discussions of topics in Web development, structural frameworks, test driven development, and time for students to develop their Web applications. Graduate/Undergraduate Equivalency: COMP 531. Mutually Exclusive: Cannot register for COMP 431 if student has credit for COMP 531.
COMP 432 - DATABASE SYSTEM IMPLEMENTATION
Short Title: DATABASE SYSTEM IMPLEMENTATION
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3-4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 321
Description: This course covers database management system architecture, query processing and optimization, transaction processing, concurrent control and recover, storage, indexing structures and related topics. Students will build a database system from the ground up. Students who have not had an introductory database course should enroll for 4 credits: all others should enroll for 3 credits. Instructor Permission Required. Graduate/Undergraduate Equivalency: COMP 530. Recommended Prerequisite(s): COMP 430
COMP 435 - ELECTION SYSTEMS, TECHNOLOGIES, AND ADMINISTRATION
Short Title: ELECTION SYSTEMS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Seminar
Distribution Group: Distribution Group III
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): POLI 395
Description: This multidisciplinary course will consider how elections are conducted to enhance participation, to accurately measure the will of the electorate, and to be sufficiently rigorous to convince all parties that the results are legitimate. This course will consider the design and evaluation of election technologies, ranging from voter registration through the polling booth and vote tabulation. This course will consider three questions: how do individual voters interact with the voting technology, how are voting technologies engineered to be accurate and secure, and how do the social aspects of voting fulfill democratic goals for elections? A central requirement for this course will be group research projects, many operating in our community, built around the November election. Cross-list: POLI 420, PSYC 420.
COMP 436 - SECURE AND CLOUD COMPUTING
Short Title: SECURE & CLOUD COMPUTING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 321
Description: What is “cloud computing?” How do we build cloud-scale systems and components that are secure against malicious attacks, and scale to millions of users? Many of today’s services run inside the cloud – a set of geographically distributed data centers running heterogeneous software stacks. Cloud systems must scale across tens of thousands of machines, support millions of concurrent requests, and they must do so with high security guarantees. This course will start with the fundamentals of cloud computing, introduce key techniques in building scalable and secure systems and expose students to state-of-the-art research advances as well as emerging security threats and defenses in today’s cloud systems. Cross-list: ELEC 410. Graduate/Undergraduate Equivalency: COMP 536. Mutually Exclusive: Cannot register for COMP 436 if student has credit for COMP 536.
COMP 440 - ARTIFICIAL INTELLIGENCE
Short Title: ARTIFICIAL INTELLIGENCE
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): (MATH 212 or MATH 232) and (ELEC 303 or STAT 310 or ECON 307 or STAT 311 or STAT 312 or STAT 315 or DSCI 301) and (CAAM 334 or CAAM 335 or CMOR 302 or CMOR 303 or MATH 354 or MATH 355) and (COMP 382 or COMP 582) and (COMP 310 or COMP 318)
Description: This is a foundational course in artificial intelligence, the discipline of designing intelligent agents. The course will cover the design and analysis of agents that do the right thing in the face of limited information and computational resources. The course revolves around two main questions: how agents decide what to do, and how they learn from experience. Tools from computer science, probability theory, and game theory will be used. Interesting examples of intelligent agents will be covered, including poker playing programs, bots for various games (e.g. WoW), DS1 -- the spacecraft that performed an autonomous flyby of Comet Borrely in 2001, Stanley -- the Stanford robot car that won the Darpa Grand Challenge, Google Maps and how it calculates driving directions, face and handwriting recognizers, Fedex package delivery planners, airline fare prediction sites, and fraud detectors in financial transactions. Cross-list: ELEC 440. Graduate/Undergraduate Equivalency: COMP 557. Mutually Exclusive: Cannot register for COMP 440 if student has credit for COMP 557.
Course URL: www.owlnet.rice.edu/~comp440
COMP 441 - LARGE-SCALE MACHINE LEARNING
Short Title: LARGE-SCALE MACHINE LEARNING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 440 or ELEC 440
Description: Learning from large dataset is becoming a ubiquitous phenomena in all applications spanning robotics, medical decisions, internet, communication, biology, etc. Designed to give senior UG students a thorough grounding in the theory and algorithms needed for research and practical applications in machine learning for modern massive datasets. Topics draw from machine learning, classical statistics, algorithms and information theory. Graduate/Undergraduate Equivalency: COMP 542. Mutually Exclusive: Cannot register for COMP 441 if student has credit for COMP 542.
COMP 442 - REINFORCEMENT LEARNING
Short Title: REINFORCEMENT LEARNING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 330
Description: This course introduces students to reinforcement learning (RL), a general and impactful machine learning paradigm for solving sequential decision-making problems and designing autonomous agents. The course will cover both classical and recent algorithms for reinforcement learning (including deep RL) and imitation learning (including inverse RL). Through the assignments and final project, students will get hands-on experience in applying reinforcement learning algorithms to solve problems inspired by real-world applications. The course will conclude with an overview of open problems and ongoing research in reinforcement learning. Graduate/Undergraduate Equivalency: COMP 552.
COMP 447 - INTRODUCTION TO COMPUTER VISION
Short Title: INTRO TO COMPUTER VISION
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): ELEC 242 or ELEC 301 or ELEC 475 or COMP 330
Description: An introduction to the basic concepts, algorithms and applications in computer vision. Topics include: image processing pipelines, low-level vision/image processing methods such as filtering and edge detection, mid-level vision topics such as segmentation and feature detection, and high-level vision tasks such as object recognition and face recognition with neural networks. The course will involve programming and implementing basic computer vision algorithms in Python. Cross-list: ELEC 447. Graduate/Undergraduate Equivalency: COMP 546. Mutually Exclusive: Cannot register for COMP 447 if student has credit for COMP 345/COMP 546.
COMP 448 - CONCRETE MATHEMATICS
Short Title: CONCRETE MATHEMATICS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): (COMP 323 or COMP 382 or MATH 306 or MATH 323 or MATH 356 or MATH 357 or MATH 365 or MATH 368)
Description: Concrete mathematics is a blend of continuous and discrete mathematics. Major topics include sums, recurrences, integer functions, elementary number theory, binomial coefficients, generating functions, discrete probability and asymptotic methods. Cross-list: MATH 448.
COMP 449 - APPLIED MACHINE LEARNING AND DATA SCIENCE PROJECTS
Short Title: DATA SCIENCE PROJECTS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Description: In this project-based course, student teams will complete semester-long data science research or analysis projects selected from a variety of disciplines and industries. Students will also learn best practices in data science. Cross-list: DSCI 435. Graduate/Undergraduate Equivalency: COMP 549. Mutually Exclusive: Cannot register for COMP 449 if student has credit for COMP 549/COMP 559. Repeatable for Credit.
COMP 450 - ALGORITHMIC ROBOTICS
Short Title: ALGORITHMIC ROBOTICS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 321 and COMP 215
Description: Robots have fascinated people for generations. Today, robots are built for applications as diverse as exploring remote planets, de-mining war zones, cleaning toxic waste, assembling cars, inspecting pipes in industrial plants and mowing lawns. Robots are also interacting with humans in a variety of ways: robots are museum guides, robots assist surgeon sin life threatening operations, and robotic cars can drive us around. The field of robotics studies not only the design of new mechanisms but also the development of artificial intelligence frameworks to make these mechanism useful in the physical world, integrating computer science, engineering, mathematics and more recently biology and sociology, in a unique way. This class will present fundamental algorithmic advances that enable today’s robots to move in real environments and plan their actions. It will also explore fundamentals of the field of Artificial Intelligence through the prism of robotics. The class involves a significant programming project. Cross-list: ELEC 450, MECH 450. Graduate/Undergraduate Equivalency: COMP 550. Mutually Exclusive: Cannot register for COMP 450 if student has credit for COMP 550.
COMP 451 - DESIGN AND ANALYSIS OF CYBER-PHYSICAL SYSTEMS
Short Title: DESIGN&ANALYSIS CYBER/PHYSICAL
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Description: This course is an introduction to cyber-physical systems, engineering artifacts in which computational components interact with and typically control physical components. Some common examples of cyber-physical systems include robots, Segways and lane-departure warning, LDW, systems in automobiles. Graduate/Undergraduate Equivalency: COMP 555. Mutually Exclusive: Cannot register for COMP 451 if student has credit for COMP 555.
COMP 458 - QUANTUM COMPUTING ALGORITHMS
Short Title: QUANTUM COMPUTING ALGORITHMS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 382 and (CMOR 302 or CMOR 303 or MATH 355 or MATH 354)
Description: Quantum computing is an emerging field with the potential to revolutionize various industries, including cryptography, scientific computation, optimization, and machine learning. Quantum Computing Algorithms is a course designed to introduce students to the foundations and practical algorithms of quantum computing from a systems perspective to equip them for the evolving technological landscape. The course will first refresh students on required mathematical concepts in linear algebra, probabilities, and statistics. Students will also learn about fundamental quantum principles, including superposition, entanglement, reversibility, interference, and circuits. The course will then delve into advanced quantum algorithms, especially variational and parameterized codes, including search, optimization, machine learning, and quantum simulation. Students will gain hands-on experience with Python-based quantum programming languages, Cirq and Tensorflow Quantum, to program current quantum computers. Graduate/Undergraduate Equivalency: COMP 558. Mutually Exclusive: Cannot register for COMP 458 if student has credit for COMP 558.
COMP 459 - MACHINE LEARNING WITH GRAPHS
Short Title: MACHINE LEARNING WITH GRAPHS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 382 and (ELEC 303 or STAT 310 or ECON 307 or STAT 312 or STAT 315 or DSCI 301 or STAT 311) and (CMOR 302 or CMOR 303 or MATH 354 or MATH 355)
Description: This course will overview both traditional and more recent graph-based machine learning algorithms. Graphs show up in machine learning in many forms. Oftentimes, the input data can be naturally represented as a graph, such as for relational learning tasks applied to social networks and graph kernels applied to chemical data. Other times, graphs are just a framework to express some intrinsic structure in the data, such as for graphical models and non-linear embedding. In both cases, recent advances in representation learning (or graph embedding) and deep learning have generated a renewed interest in machine learning on graphs. At the end of the course, students are expected to be able to: (1) identify the appropriate graph-based machine learning algorithm for a given problem; (2) extend existing algorithms to solve new related problems; and (3) recognize some of the key research challenges in the field. The course will be a mixture of lectures, a research paper presentation, homework assignments (including programming), and a hands-on class project. Graduate/Undergraduate Equivalency: COMP 559. Mutually Exclusive: Cannot register for COMP 459 if student has credit for COMP 559.
COMP 460 - ADVANCED COMPUTER GAME CREATION
Short Title: ADV COMPUTER GRAPHICS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 318
Description: This project-based class involves teams of 2-4 CS and Visual Arts students designing and building computer games suitable for Xbox Live Arcade using C# and XNA. For CS students, Comp 160 or Comp 360 is recommended as a prerequisite. For Visual Arts students, previous experience in drawing using Photoshop is suggested. Instructor Permission Required. Cross-list: ARTS 460. Mutually Exclusive: Cannot register for COMP 460 if student has credit for COMP 560. Repeatable for Credit.
Course URL: www.owlnet.rice.edu/~comp460
COMP 461 - SENIOR DESIGN IN A ROBOTIZED WORLD
Short Title: SR DESIGN IN ROBOTIZED WORLD
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 318
Description: Robots are now a wide spectrum of various embodiments, e.g., humanoids, dogs, industrial arms, drones, and self-driving cars, and they are rapidly merging themselves into our society. While we are not fully ready to welcome them, yet, we are more than certain that we need to work with them in ways that we did not know before. On the one hand, we are still challenged by many technical problems to enable robots to be more dexterous and robust. On another hand, in a time where resources are connected and networked, we need to design novel systems to manage different robots, share the robots, or even make them autonomously and adaptively build teams. In this senior design course, we will develop team-based projects and will look into a robotized future with our imaginations: we will either solve problems that are technically going to enhance the robot skills, or address problems that will make future robots more useful and more organized in the real world. Background in robotics is not required. In our creative projects, your efforts in developing core robot algorithms, databases, machine learning systems, web applications, mobile apps, LLM models, or anything else that can be useful, will together make this robotized world a better place.
COMP 462 - FUNDAMENTALS OF ROBOTIC MANIPULATION
Short Title: ROBOTIC MANIPULATION
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 215 and (ELEC 303 or STAT 310 or ECON 307 or STAT 312 or STAT 315 or DSCI 301 or STAT 311 or CMOR 302 or CMOR 303 or MATH 354 or MATH 355)
Description: Robots, as seen in many different forms, can help people in various application scenarios to improve the efficiency, safety, and quality of task executions. In particular, those robots which can physically interact with the world possess essential skills, called manipulation, to engage themselves more comprehensively in the real-world tasks. For example, robots with manipulation skills can help us in factories, kitchens, hospitals, warehouses, constructions sites, and even in space or on another planet. This course will introduce both fundamental and the state-of-the-art knowledge that enable robots to manipulate in our world. Topics including robot motions, kinematics, dynamics, simulation and ROS, hand and grasping, prehensile and nonprehensile manipulation, robot control, and interactive estimation, will be covered. Significant programming projects are involved to facilitate converting the textbook knowledge to solid hands-on experiences. Graduate/Undergraduate Equivalency: COMP 562. Mutually Exclusive: Cannot register for COMP 462 if student has credit for COMP 562.
COMP 463 - COMPUTER GRAPHICS
Short Title: COMPUTER GRAPHICS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 321 and COMP 182 and (MATH 211 or MATH 212 or MATH 222 or MATH 232) and (MATH 354 or MATH 355 or CAAM 334 or CAAM 335 or CMOR 302 or CMOR 303)
Description: 2D graphics techniques including fast line and curve drawing and polygon filling. 3D graphics problems including representation of solids, shading, and hidden surface elimination. Fractals, graphics standards. Graduate/Undergraduate Equivalency: COMP 560. Mutually Exclusive: Cannot register for COMP 463 if student has credit for COMP 560.
COMP 474 - COMPUTATIONAL GENOMICS FOR MICROBIAL FORENSICS
Short Title: COMP MICROBIAL FORENSICS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 382
Description: This course covers computational approaches, including algorithms (divide and conquer, greedy, randomized) and data structures (suffix arrays, suffix trees, de bruijn graphs) that have served as the foundation for computational analyses and real-time tracking of infectious diseases. The course is organized into four themed modules, and each module features several seminal computational advances leading to real-world applications spanning the past three decades. The students prepare written summaries of each computational advance, as well as prepare in-class presentations, to both reinforce learning and embed communication into the class. The course also features quizzes (on Canvas) and a midterm and final exam to assess learning of the key computational concepts covered in this course.
COMP 477 - SPECIAL TOPICS
Short Title: SPECIAL TOPICS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Internship/Practicum, Lecture, Laboratory, Seminar
Credit Hours: 1-4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Description: Topics/requirements/credit hours may vary each semester. Contact Department for curent semester's topic(s). Repeatable for Credit.
COMP 480 - PROBABILISTIC ALGORITHMS AND DATA STRUCTURE
Short Title: PROB ALGORITHM DATA STRUCTURE
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 382
Description: This course will be ideal for someone wanting to build a strong foundation in the theory and practice of algorithms for processing Big-Data. We will discuss advanced data structures and algorithms going beyond deterministic setting and emphasize the role of randomness in getting significant, often exponential, improvements in computations and memory. Graduate/Undergraduate Equivalency: COMP 580.
COMP 481 - AUTOMATA, FORMAL LANGUAGES, AND COMPUTABILITY
Short Title: AUTOMATA/FORMAL LANG/COMPUTING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): (COMP 382 or MATH 306 or MATH 356)
Description: Finite automata, regular expressions, regular languages, pushdown automata, context-free languages, Turing machines, recursive languages, computability, and solvability. It is strongly recommended that students complete three semesters of Mathematics before enrolling in this course. Graduate/Undergraduate Equivalency: COMP 581. Mutually Exclusive: Cannot register for COMP 481 if student has credit for COMP 581.
COMP 487 - COMPUTATIONAL COMPLEXITY
Short Title: COMPUTATIONAL COMPLEXITY
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): COMP 382 or COMP 409 or COMP 509 or COMP 481 or COMP 581
Description: In Computational Complexity we study the computational resources (time, space, communication, etc.) that are required to solve computational problems via various computational needs. Specifically, we are interested in classifying computational problems with classes of other problems that require similar amount of resources to solve. Graduate/Undergraduate Equivalency: COMP 587. Mutually Exclusive: Cannot register for COMP 487 if student has credit for COMP 587.
COMP 490 - COMPUTER SCIENCE PROJECTS
Short Title: COMPUTER SCIENCE PROJECTS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Research
Credit Hours: 1-4
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Description: Theoretical and experimental investigation under staff direction. Instructor Permission Required. Repeatable for Credit.
COMP 491 - COMPUTER SCIENCE TEACHING
Short Title: COMPUTER SCIENCE TEACHING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Independent Study
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Description: A combination of in-service teaching and a seminar. Department Permission Required. Repeatable for Credit.
COMP 496 - RTG CROSS-TRAINING IN DATA SCIENCE
Short Title: RTG CROSS-TRAINING IN DATA SCI
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Seminar
Credit Hour: 1
Restrictions: Enrollment is limited to students with a major in Computer Science or Statistics. Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Description: A seminar course to introduce students to topics in Data Science at the interface between Statistics and Computer Science. Students participate in the process of preparing, delivering and critiquing talks. Topics change each semester. Instructor Permission Required. Cross-list: STAT 496. Graduate/Undergraduate Equivalency: COMP 696. Mutually Exclusive: Cannot register for COMP 496 if student has credit for COMP 696. Repeatable for Credit.
COMP 498 - INTRODUCTION TO ROBOTICS
Short Title: INTRODUCTION TO ROBOTICS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 3
Restrictions: Enrollment is limited to Undergraduate, Undergraduate Professional or Visiting Undergraduate level students.
Course Level: Undergraduate Upper-Level
Prerequisite(s): MATH 354 or MATH 355 or CAAM 335 or CMOR 302
Description: The course will provide the student with a mathematical introduction to many of the key ideas used in today's intelligent robot systems. The focus of the course is on the analysis and control of manipulators. The course will also give an overview of common approaches to building intelligent robot systems. Cross-list: ELEC 498, MECH 498. Graduate/Undergraduate Equivalency: COMP 598. Recommended Prerequisite(s): MECH 211 or CEVE 211 or MECH 310 Mutually Exclusive: Cannot register for COMP 498 if student has credit for COMP 598.
COMP 501 - PRODUCTION PROGRAMMING
Short Title: PRODUCTION PROGRAMMING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): COMP 310 or COMP 411 or COMP 504 or COMP 511
Description: This course focuses on the principles and practices of test-driven software development, which have been popularized under the banner of "Extreme Programming." To provide students with practical experience, the course engages students in the development of open source production programs written in JAVA or C#. The DRJAVA programming courses was developed by students in this course. Some of the major topics covered in course lectures include design patterns for controlling concurrency and refactoring transformations to improve legacy code. Graduate/Undergraduate Equivalency: COMP 402. Mutually Exclusive: Cannot register for COMP 501 if student has credit for COMP 402.
COMP 502 - NEURAL MACHINE LEARNING I
Short Title: NEURAL MACHINE LEARNING I
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Review of major neural machine learning (Artificial Neural Network) paradigms. Analytical discussion of supervised and unsupervised neural learning algorithms and their relation to information theoretical methods. Practical applications to data analysis such as pattern recognition, clustering, classification, function approximation/regression, non-linear PCA, projection pursuit, independent component analysis, with lots of examples from image and digital processings. Details are posted at www.ece.rice.edu/~erzsebet/ANNcourse.html. Cross-list: ELEC 502, STAT 502. Recommended Prerequisite(s): ELEC 430 and ELEC 431 or equivalent or permission of instructor.
Course URL: www.ece.rice.edu/~erzsebet/ANNcourse.html
COMP 503 - REASONING AND SOFTWARE
Short Title: REASONING ABOUT SOFTWARE
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): (COMP 382 and COMP 215) or COMP 482 or COMP 409 or COMP 509
Description: Our reliance on software of all forms is increasing by the day. As a result, it is more important than ever to ensure that programs function correctly and cannot be exploited by hostile adversaries. The field of formal methods takes on this challenge, developing algorithms and programming methodologies that can be used to formally reason about what happens when software executes on arbitrary inputs, often without actually executing the program. Such reasoning can be used, for example, to identify subtle bugs and vulnerabilities in programs, or to give mathematical proofs of program correctness. This is a hands-on introduction to the field of formal methods. In this class, you will learn the theoretical foundations of these systems; you will also implement a series of systems that can be used to reason about the correctness of C programs. Graduate/Undergraduate Equivalency: COMP 403. Mutually Exclusive: Cannot register for COMP 503 if student has credit for COMP 403.
COMP 504 - GRADUATE OBJECT-ORIENTED PROGRAMMING AND DESIGN
Short Title: GR OBJ-ORIENTED PROG & DESIGN
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Discover how stat-of-the-art object-orient programming and design techniques can create globe-spanning software systems that are both flexible and scalable. Learn how software design patterns are used in multiple programming paradigms. Explore highly decoupled systems with dynamically configurable behaviors. Highly recommended for anyone interested in building large systems and software engineering. Basic proficiency in Java is required.
COMP 505 - ADVANCED TOPICS IN OBJECT-ORIENTED DESIGN
Short Title: ADV TOP OBJECT/ORIENTED DESIGN
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): COMP 404 or COMP 504 or COMP 310
Description: A topics-driven exploration of cutting-edge object oriented design issues and concepts including mutable recursive data frameworks, design patterns for sorting, parsing and games, service-oriented architectures and cloud computing. Detailed knowledge and practice in abstract structure and behavioral representations, delegation model programming, design patterns and Java are required. Graduate/Undergraduate Equivalency: COMP 405. Mutually Exclusive: Cannot register for COMP 505 if student has credit for COMP 405.
COMP 506 - COMPILER CONSTRUCTION FOR GRADUATE STUDENTS
Short Title: COMPILER CONSTRUCTION - GR
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Topics in the design of programming language translators, including parsing, run-time storage management, error recovery, code generation and optimization. Graduate/Undergraduate Equivalency: COMP 412. Mutually Exclusive: Cannot register for COMP 506 if student has credit for COMP 412.
COMP 507 - COMPUTER-AIDED PROGRAM DESIGN
Short Title: COMPUTER-AIDED PROGRAM DESIGN
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): (COMP 482 or ELEC 420) or COMP 481
Description: This course is a graduate-level introduction to computer-aided program design, a field that studies logical and algorithmic techniques for formally verifying programs, and mechanized derivation of programs that are correct by construction. Topics covered will include classical automated program verification in particular abstract interpretation and model checking - as well as recent developments in algorithmic program synthesis.
COMP 508 - DESIGN AND ANALYSIS OF SECURE EMBEDDED SYSTEMS FOR IoT ERA
Short Title: SECURE EMBEDDED SYS FOR IoT
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: The course emphasizes the security of small embedded devices that are central to the Internet of Things (IoT) Era. We discuss the practical security attacks, challenges, constraints, and opportunities that arise in the IoT domain. Covered topics include security engineering, real world attacks, practical and side channel attacks, and hands-on lab/projects. Cross-list: ELEC 511. Repeatable for Credit.
COMP 509 - ADVANCED LOGIC IN COMPUTER SCIENCE
Short Title: ADV LOGIC IN COMPUTER SCIENCE
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Logic has been called "the calculus of computer science". The argument is that logic plays a fundamental role in computer science, similar to that played by calculus in the physical sciences and traditional engineering disciplines. Indeed, logic plays an important role in areas of Computer Science as disparate as artificial intelligence (automated reasoning), architecture (logic gates), software engineering (specification and verification), programming languages (semantics, logic programming), databases (relational algebra and SQL), algorithms (complexity and expressiveness), and theory of computation (general notions of computability). Graduate/Undergraduate Equivalency: COMP 409. Mutually Exclusive: Cannot register for COMP 509 if student has credit for COMP 409.
COMP 510 - COMPUTER ETHICS
Short Title: COMPUTER ETHICS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to students with a major in Computer Science or Data Science. Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Given their growing power in the twenty-first century, computer scientists have duties both to society and their own profession to wield that power wisely and responsibly. In this discussion-and reflection-oriented course students will apply fundamentals of moral philosophy and social responsibility to current issues in computer science. Graduate/Undergraduate Equivalency: COMP 301. Mutually Exclusive: Cannot register for COMP 510 if student has credit for COMP 301/COMP 566/COMP 604/COMP 622.
COMP 511 - PRINCIPLES OF PROGRAMMING LANGUAGES
Short Title: PRINCIPLES OF PROG LANGUAGES
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): COMP 211 or COMP 310
Description: The design, definition and abstract implementation of programming languages including methods for precisely specifying syntax and semantics. Graduate/Undergraduate Equivalency: COMP 411. Mutually Exclusive: Cannot register for COMP 511 if student has credit for COMP 411.
COMP 512 - ADVANCED COMPILER CONSTRUCTION
Short Title: ADVANCED COMPILER CONSTRUCTION
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Advanced topics in the design of an optimizing compiler. This course will focus on analysis and optimization of programs for uniprocessor machines, including program analysis (data-flow analysis, construction of static single-assignment form) and program transformation (redundancies, constant values, strength reduction, etc.). The course uses a variety of readings from the literature and includes an implementation project. Recommended Prerequisite(s): COMP 412 or COMP 506.
Course URL: www.cs.rice.edu/~keith/512
COMP 513 - COMPLEXITY IN MODERN SYSTEMS
Short Title: COMPLEXITY IN MODERN SYSTEMS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: A modern computer is a system with enormous complexity in both software and hardware. The course presents the principles for managing such complexity using examples from modern computing systems. It covers emergent issues from system complexity such as energy efficiency, bug finding, and heterogeneous hardware. It also covers designing experiments and writing systems papers. The course consists of lectures, student presentation of classic papers, and a final project. Cross-list: ELEC 513.
COMP 514 - OPTIMIZATION: ALGORITHMS, COMPLEXITY, AND APPROXIMATIONS
Short Title: ALGORITHMS, COMPLEX. & APPROX
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: The main focus of the course will be on smooth optimization techniques, with applications in machine learning and artificial intelligence. The course will introduce the basics of algorithms on continuous optimization, starting from the classical gradient descent algorithm in convex optimization, towards more sophisticated approaches in non-convex scenarios. The course will explore the fundamental theory, algorithms, complexity and approximations in nonlinear optimization. Graduate/Undergraduate Equivalency: COMP 414. Mutually Exclusive: Cannot register for COMP 514 if student has credit for COMP 414.
COMP 515 - ADVANCED COMPILATION FOR VECTOR PARALLEL PROCESSORS
Short Title: ADV COMPILATION VECTOR PARALEL
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): COMP 412
Description: Advanced compilation techniques for vector and parallel computer systems, including the analysis of program dependence, program transformations to enhance parallelism, compiler management of the memory hierarchy, interprocedural data flow analysis, and parallel debugging. Recommended Prerequisite(s): COMP 412.
COMP 516 - CLOUD COMPUTING PRACTICUM
Short Title: CLOUD COMPUTING PRACTICUM
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): COMP 413 or COMP 420 or (COMP 520 or ELEC 520)
Description: This is a project-based class that provides students with the opportunity to apply their knowledge of distributed computing principles to designed and develop a single, large distributed application that utilizes the public cloud. Students will learn about the basic services for computing, storage, and commination that are supported by the new generation of "public utilities" that provide the infrastructure for the public cloud, and how to utilize these services to engineer a robust, scalable application.
COMP 517 - ADVANCED OPERATING SYSTEMS AND SECURITY
Short Title: ADVANCED OPERATING SYSTEMS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Seminar
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: In this seminar, we will investigate advanced topics in the design and implementation of operating systems, including: OS structure (includingWeb Browsers), concurrency and synchronization, memory management, file systems and storage, virtual machines, and information protection. We will explore both fundamental and hot topics through reading, discussing, and presenting key research findings. This course will also cover methods for critiquing, writing, and presenting research findings through a course long project. Graduate/Undergraduate Equivalency: COMP 417. Mutually Exclusive: Cannot register for COMP 517 if student has credit for COMP 417.
COMP 518 - IOT PROGRAMMING AND DATA ANALYSIS
Short Title: IOT PROGRAMMING DATA ANALYSIS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: This course is an introduction to the Internet of Things (IoT). It will present the tools and techniques needed to develop complex IoT applications that encompass interaction with the physical world and data analysis across the IoT computing infrastructure. The topics range from programming microcontrollers (e.g., Arduino) and single-board computers (e.g., Raspberry Pi) to IoT automation and the efficient analysis of real-time IoT data. Graduate/Undergraduate Equivalency: COMP 418.
COMP 519 - GENOME-SCALE ALGORITHMS AND DATA STRUCTURES
Short Title: GENOME-SCALE ALGORITHMS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Since the advent of Sanger Sequencing in 1977, computer scientists have been devising algorithms and software tools to interpret and analyze DNA sequences. The field of bioinformatics focuses on computational approaches to solving biological questions. This course will serve as an introduction to widely used algorithms in bioinformatics used for pattern searching, genome assembly, sequence alignment, and clustering of biological data. No prior knowledge of biology is assumed. The class involves several programming assignments. Graduate/Undergraduate Equivalency: COMP 416. Mutually Exclusive: Cannot register for COMP 519 if student has credit for COMP 416.
COMP 520 - DISTRIBUTED SYSTEMS
Short Title: DISTRIBUTED SYSTEMS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Distributed systems: workstations, local area networks, server machines. Multiprocess structuring and interprocess communication. File access and memory management. User interfaces: window systems and command interpreters. Case studies of selected distributed systems. Emphasis on performance aspects of system software design. Cross-list: ELEC 520.
Course URL: www.cs.rice.edu/~alc/comp520/
COMP 521 - OPERATING SYSTEMS AND CONCURRENT PROGRAMMING
Short Title: OP SYS/CONCURRENT PROGRAMMING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): (COMP 215 and COMP 321)
Description: Introduction to the design, construction, and analysis of concurrent programs with an emphasis on operating systems, including filing systems, schedulers, and memory allocators. Specific attention is devoted to process synchronization and communication within concurrent programs. Additional coursework required beyond the undergraduate course requirements. Cross-list: ELEC 552. Graduate/Undergraduate Equivalency: COMP 421. Mutually Exclusive: Cannot register for COMP 521 if student has credit for COMP 421.
COMP 522 - MULTI-CORE COMPUTING
Short Title: MULTI-CORE COMPUTING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Seminar
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): (COMP 321 and COMP 425)
Description: Multi-core microprocessors are becoming the norm. The course will focus on emerging multi-core processor architectures and challenges to using them effectively. Topics include multi-core microprocessors, memory hierarchy, synchronization, programming systems, scheduling, and transactional memory.
Course URL: www.cs.rice.edu/~johnmc/comp522/
COMP 523 - INTRODUCTION TO MATHEMATICAL CRYPTOGRAPHY
Short Title: INTRO TO MATH CRYPTOGRAPHY
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): COMP 382 or COMP 448 or MATH 448 or MATH 365
Description: The course introduces students to modern cryptographic techniques, focusing mainly on mathematical tools. The course covers topics such as Diffie-Hellman key exchange, the ElGamal public key crypto system, integer factorization and RSA, and elliptic curves and lattices in cryptography. Graduate/Undergraduate Equivalency: COMP 423. Mutually Exclusive: Cannot register for COMP 523 if student has credit for COMP 423.
COMP 524 - MOBILE AND WIRELESS NETWORKING
Short Title: MOBILE AND WIRELESS NETWORKING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): COMP 429 or ELEC 429
Description: Study of network protocols for mobile and wireless networking, particularly at the media access control, network, and transport protocol layers. Focus is on the unique problems and challenges presented by the properties of wireless transmission and host or router mobility. Cross-list: ELEC 524. Recommended Prerequisite(s): COMP 421 OR ELEC 421.
COMP 525 - VIRTUALIZATION AND CLOUD RESOURCE MANAGEMENT
Short Title: VIRTUAL & CLOUD RESOURCE MGMT
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): (ELEC 425 or COMP 425)
Description: Virtualized computer architectures. Processor, memory and storage virtualization techniques. Resource allocation and scheduling of virtual machines. Cloud architectures and infrastructure. Utility computing. Cross-list: ELEC 525.
COMP 526 - HIGH PERFORMANCE COMPUTER ARCHITECTURE
Short Title: HIGH PERFORM COMPUTER ARCH
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Design of high performance computer systems, including shared-memory and message-passing multiprocessors and vector systems. Hardware and software techniques to tolerate and reduce memory and communication latency. Case studies and performance simulation of high-performance systems. Cross-list: ELEC 526. Recommended Prerequisite(s): ELEC 425 or COMP 425
COMP 527 - COMPUTER SYSTEMS SECURITY
Short Title: COMPUTER SYSTEMS SECURITY
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: This class will focus on computer security in real systems. We will cover theory and practice for the design of secure systems (formal modeling, hardware and compiler-enforced safety, software engineering processes, tamper-resistant and tamper-reactive hardware, firewalls, cryptography, and more). Recommended Prerequisite(s): (COMP 311 or COMP 412) and (COMP 421 or COMP 429).
COMP 528 - INTRODUCTION TO VIRTUALIZATION
Short Title: INTRODUCTION TO VIRTUALIZATION
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): COMP 421 or COMP 521
Description: System-level virtualization is an integral part of modern computer systems, spanning both hardware and software. This course will explore the various types of system-level virtualization and the hardware and software mechanisms that support them. The course will explore the interplay among hypervisors, operating systems, processors, memory, and I/O devices in modern virtualized systems.
COMP 529 - ADVANCED COMPUTER NETWORKS
Short Title: ADVANCED COMPUTER NETWORKS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 1-4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): COMP 429 or ELEC 429
Description: This course explores advanced solutions in computer networks that are driven by the need to go beyond the best-effort capabilities of the Internet. Topics include network fault tolerance, traffic engineering, scalable data center network architectures, network support for big data processing, network support for cloud computing, extensible network control via software defined networking, denial-of-service-attack defense mechanisms. Readings from original research papers. Also include design project and oral presentation components. This course assumes students already have a good understanding of the best-effort Internet. Cross-list: ELEC 529. Repeatable for Credit.
Course URL: www.clear.rice.edu/comp529/
COMP 530 - DATABASE SYSTEM IMPLEMENTATION
Short Title: DATABASE SYSTEM IMPLEMENTATION
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3-4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: This course covers database management system architecture, query processing and optimization, transaction processing, concurrent control and recover, storage, indexing structures and related topics. Students will build a database system from the ground up. Graduate students who have not had an introductory database course should enroll for 4 credits: all others should enroll for 3 credits. Graduate/Undergraduate Equivalency: COMP 432. Recommended Prerequisite(s): COMP 321 and COMP 430 Mutually Exclusive: Cannot register for COMP 530 if student has credit for COMP 423.
COMP 531 - WEB DEVELOPMENT AND DESIGN
Short Title: WEB DEVELOPMENT AND DESIGN
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: This project-based course explores Web application creation and design. Students are involved in the development of front-end and back-end systems while interfacting client-server communications technologies. Students will evaluate Web structural frameworks, Web development technologies, apply test driven development, and create multi-user Web applications. Graduate/Undergraduate Equivalency: COMP 431. Recommended Prerequisite(s): COMP 310 or COMP 321 Mutually Exclusive: Cannot register for COMP 531 if student has credit for COMP 431.
COMP 532 - INTRODUCTION TO DISTRIBUTED COMPUTER SYSTEMS
Short Title: INTRO TO DISTRIBUTED COMP SYS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): COMP 421 or COMP 521
Description: Introduction to distributed computer systems. The course covers concepts, architecture, algorithms, protocols, and implementation, focusing on distribution, scale, robustness in the face of failure, and security. Additional coursework required beyond the UG course requirements. Graduate/Undergraduate Equivalency: COMP 420. Mutually Exclusive: Cannot register for COMP 532 if student has credit for COMP 420.
Course URL: www.clear.rice.edu/comp420
COMP 533 - INTRODUCTION TO DATABASE SYSTEMS
Short Title: INTRO TO DATABASE SYSTEMS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Corequisite: COMP 504
Description: Introduction to relational and other database systems, SQL programming, Database application programming, and Database design. This course is designed for students without prior database experience. Graduate/Undergraduate Equivalency: COMP 430. Mutually Exclusive: Cannot register for COMP 533 if student has credit for COMP 430.
COMP 534 - PARALLEL COMPUTING
Short Title: PARALLEL COMPUTING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): COMP 321
Description: COMP 422 is an undergraduate version of this course. COMP 422 students will have four programming assignments. COMP 534 students will have five. As part of their assignments, both COMP 422 and COMP 534 students will analyze the scalability and parallel efficiency of parallel programs they write. COMP 534 students will additionally use tools to qualify the root causes of scaling losses in their programs and document their findings. Graduate/Undergraduate Equivalency: COMP 422. Mutually Exclusive: Cannot register for COMP 534 if student has credit for COMP 422.
COMP 535 - APPROXIMATE COMPUTING SYSTEM FOR BIG DATA, SUPERCOMPUTING AND EMBEDDED SYSTEMS
Short Title: APPROX COMP SYS FOR BIG DATA
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Survey this radical concept of approximate (or inexact) computing with the goal of understanding both of the challenges and opportunities at all layers of the computing system ranging over programming languages, compilers and run-time, and architecture.
COMP 536 - SECURE AND CLOUD COMPUTING
Short Title: SECURE & CLOUD COMPUTING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: What is “cloud computing?” How do we build cloud-scale systems and components that are secure against malicious attacks, and scale to millions of users? Many of today’s services run inside the cloud – a set of geographically distributed data centers running heterogeneous software stacks. Cloud systems must scale across tens of thousands of machines, support millions of concurrent requests, and they must do so with high security guarantees. This course will start with the fundamentals of cloud computing, introduce key techniques in building scalable and secure systems and expose students to state-of-the-art research advances as well as emerging security threats and defenses in today’s cloud systems. Cross-list: ELEC 510. Graduate/Undergraduate Equivalency: COMP 436. Mutually Exclusive: Cannot register for COMP 536 if student has credit for COMP 436.
COMP 538 - SECURITY OF HW EMBEDDED SYSTEMS
Short Title: EMBEDDED HW SYSTEMS SECURITY
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: The course covers wide range of topics pertaining to security of Hardware Embedded system, including cryptographic processors, secure memory access, hardware IT protection by monitoring and watermarking FPGA security, physical and side-charmed attacks, Trojan horses. Cross-list: ELEC 528. Repeatable for Credit.
COMP 539 - SOFTWARE ENGINEERING METHODOLOGY
Short Title: SOFTWARE ENGINEER METHODOLOGY
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): COMP 404 or COMP 504
Description: COMP 539 is a pure discovery-based learning course designed to give students real-life, hands-on training in a wide variety of software engineering issues that arise in creating large-scale, state-of-the-art software systems. The class forms a small software development "company" that works to deliver a product to a customer. The topics encountered include and are not limited to, dealing with new technologies (e.g. C#, .NET, distributed computing), advanced object-oriented programming and design, interacting with customers, problem specification and tasking, individual and group communications, human resource management, group leadership, testing, integration and documentation. Traditional development cycle methodologies will be compared to recent, "agile" techniques. Graduate/Undergraduate Equivalency: COMP 410. Recommended Prerequisite(s): COMP 505 Mutually Exclusive: Cannot register for COMP 539 if student has credit for COMP 410.
COMP 540 - STATISTICAL MACHINE LEARNING
Short Title: STATISTICAL MACHINE LEARNING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): (MATH 212 and (ELEC 303 or STAT 310 or ECON 307 or STAT 312 or STAT 315 or DSCI 301) and (CAAM 334 or CMOR 303 or CAAM 335 or CMOR 302 or MATH 354 or MATH 355) and (COMP 382 or COMP 582) and COMP 310)
Description: COMP 540 is about learning models from data. The course is designed to give students a foundational understanding of modern algorithms in learning and data mining, as well as hands-on experience with its applications in science and engineering. Mutually Exclusive: Cannot register for COMP 540 if student has credit for ELEC 478.
COMP 541 - INTRODUCTION TO COMPUTER SECURITY
Short Title: INTRO TO COMPUTER SECURITY
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): COMP 310
Description: This elective course covers a wide variety of topics in computer security, including hands-on experience w/breaking software & engineering software to be harder to break. For example, students will perform buffer overflow attacks & exploit web application vulnerabilities, while also learning how to defend against them. Graduate/Undergraduate Equivalency: COMP 327, COMP 427. Mutually Exclusive: Cannot register for COMP 541 if student has credit for COMP 327/COMP 427.
COMP 542 - LARGE-SCALE MACHINE LEARNING
Short Title: LARGE-SCALE MACHINE LEARNING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Learning from large dataset is becoming a ubiquitous phenomena in all applications spanning robotics, medical decisions, internet, communication, biology, etc. Designed to give senior UG students a thorough grounding in the theory and algorithms needed for research and practical applications in machine learning for modern massive datasets. Topics draw from machine learning, classical statistics, algorithms and information theory. Graduate/Undergraduate Equivalency: COMP 441. Mutually Exclusive: Cannot register for COMP 542 if student has credit for COMP 441.
COMP 543 - GRADUATE TOOLS AND MODELS - DATA SCIENCE
Short Title: GR TOOLS & MODELS - DATA SCI
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: This course is an introduction to modern data science. Data science is the study of how to extract actionable, non-trivial knowledge from data. The course will focus on the software tools used by practitioners of modern data science, the mathematical and statistical models that are employed in conjunction with such software tools and the applications of these tools and systems to different problems and domains. On the tools side, we will cover the basics of relational database systems, as well as modern systems for manipulating large data sets such as Hadoop MapReduce, Apache Spark, and Google’s TensorFlow. On the model side, the course will cover standard supervised and unsupervised models for data analysis and pattern discovery. Mathematical sophistication (calculus, statistics) and programming skills that would be acquired in an undergraduate computer science program are expected. Most programming will be in Python and SQL. (SQL is covered in the course) with some Java. Graduate/Undergraduate Equivalency: COMP 330. Mutually Exclusive: Cannot register for COMP 543 if student has credit for COMP 330.
COMP 544 - FUNCTIONAL PROGRAMMING
Short Title: FUNCTIONAL PROGRAMMING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: An introduction to concepts, principles, and approaches of functional programming. Functional programming is a style of programming where the key means of computation is the application of functions to arguments (which themselves might be functions). This style of programming has become increasingly popular in recent years because it offers important advantages in designing, maintaining, and reasoning about programs in many modern contexts such as web services, multicore programming, and cluster computing. Course work consists of a series of programming assignments in the Scala programming language and various library extensions such as Apache Spark. Graduate/Undergraduate Equivalency: COMP 311. Mutually Exclusive: Cannot register for COMP 544 if student has credit for COMP 311.
COMP 545 - ADVANCED TOPICS IN OPTIMIZATION: FROM SIMPLE TO COMPLEX ML SYSTEMS
Short Title: ADV TOPICS IN OPTIMIZATION
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Seminar
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: COMP 545 is a graduate-level course on optimization techniques and algorithms, as these are used in modern ML/AI/SP tasks. During this course, we will learn and study the above topics (both in depth and breadth). The course i) will focus on different objective classes (convex vs. non-convex objectives, with constraints or not, etc.), ii) will cover different optimization strategies within each class, iii) will study algorithmic choices based on computational resources (e.g., use of low-dimensional structures (when/why), asynchronous vs. synchronous algorithms, distributed algorithms, etc.) and iv) lastly, will study schemes that handle some specific, but well-spread optimization constraints (sparsity, low-rankness).The main objective of the course is to highlight optimization as a vital part of contemporary research in ML/AI/SP, and draw the attention of students to open-questions in related topics. In particular, the aim for students is to i) learn how to distinguish differences in research papers of related fields, ii) understand the connection between them and how researchers advance each area, and iii) be able to consider possible extensions of these works, as part of the final (open-ended) project of the course. Repeatable for Credit.
COMP 546 - INTRODUCTION TO COMPUTER VISION
Short Title: INTRO TO COMPUTER VISION
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: An introduction to the basic concepts, algorithms and applications in computer vision. Topics include: cameras, camera models and imaging pipeline, low-level vision/image processing methods such as filtering and edge detection; mid-level vision topics such as segmentation and clustering; shape reconstruction from stereo, introduction to high-level vision tasks such as object recognition and face recognition. The course will involve programming and implementing basic computer vision algorithms in Matlab. Additional coursework required beyond the undergraduate course requirements. Cross-list: ELEC 546. Graduate/Undergraduate Equivalency: COMP 447. Mutually Exclusive: Cannot register for COMP 546 if student has credit for COMP 345/COMP 447.
COMP 548 - VERIFIED PROGRAMMING
Short Title: VERIFIED PROGRAMMING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: The course will explore the mathematical underpinnings of reliable software. The students will learn how to use proof assistants to construct software along with a machine-checkable proof of its correctness. Basic concepts of logic, functional programming, static type systems and deductive verification will be covered. Graduate/Undergraduate Equivalency: COMP 408.
COMP 549 - APPLIED MACHINE LEARNING AND DATA SCIENCE PROJECTS
Short Title: DATA SCIENCE PROJECTS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 4
Restrictions: Enrollment limited to students in the MDS, OMCS or OMDS programs. Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: In this project-based course, student teams will complete semester-long data science research or analysis projects selected from a variety of disciplines and industries. Students will also learn best practices in data science. Cross-list: DSCI 535. Graduate/Undergraduate Equivalency: COMP 449. Mutually Exclusive: Cannot register for COMP 549 if student has credit for COMP 449. Repeatable for Credit.
COMP 550 - ALGORITHMIC ROBOTICS
Short Title: ALGORITHMIC ROBOTICS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): COMP 321 and COMP 215
Description: Robots have fascinated people for generations. Today, robots are built for applications as diverse as exploring remote planets, de-mining war zones, cleaning toxic waste, assembling cars, inspecting pipes in industrial plants and mowing lawns. Robots are also interacting with humans in a variety of ways: robots are museum guides, robots assist surgeon sin life threatening operations, and robotic cars can drive us around. The field of robotics studies not only the design of new mechanisms but also the development of artificial intelligence frameworks to make these mechanism useful in the physical world, integrating computer science, engineering, mathematics and more recently biology and sociology, in a unique way. This class will present fundamental algorithmic advances that enable today’s robots to move in real environments and plan their actions. It will also explore fundamentals of the field of Artificial Intelligence through the prism of robotics. The class involves a significant programming project. Cross-list: ELEC 550, MECH 550. Graduate/Undergraduate Equivalency: COMP 450. Mutually Exclusive: Cannot register for COMP 550 if student has credit for COMP 450.
COMP 552 - REINFORCEMENT LEARNING
Short Title: REINFORCEMENT LEARNING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: This course introduces students to reinforcement learning (RL), a general and impactful machine learning paradigm for solving sequential decision-making problems and designing autonomous agents. The course will cover both classical and recent algorithms for reinforcement learning (including deep RL) and imitation learning (including inverse RL). Through the assignments and final project, students will get hands-on experience in applying reinforcement learning algorithms to solve problems inspired by real-world applications. The course will conclude with an overview of open problems and ongoing research in reinforcement learning. Graduate/Undergraduate Equivalency: COMP 442. Recommended Prerequisite(s): COMP 330 or COMP 440 or ELEC 478 or COMP 540
COMP 553 - BIG DATA MANAGEMENT FOR DATA SCIENCE
Short Title: BIG DATA MGMT FOR DATA SCIENCE
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment limited to students in the MDS program. Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): COMP 614 and COMP 680
Description: This course is an introduction to "big" data, including storage, processing, and machine learning. It covers software tools (including an introduction to database programming using SQL), algorithms, and mathematical models used to prepare and extract knowledge from large datasets. Course material will cover different application problems and domains.
COMP 554 - COMPUTER SYSTEMS ARCHITECTURE
Short Title: COMPUTER SYSTEMS ARCHITECTURE
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Evolution of key architecture concepts found in advanced uniprocessor systems. Fundamental and advanced pipelining techniques and associated issues for improving processor performance. Illustrated with RISC processors such as the ARM processor. Examine several metrics for processor performance, such as Amdahl’s law. Key concepts of data and program memory systems found in modern systems with memory hierarchies and cashes. Perform experiments in cache performance analysis. Influence of technology trends, such as Moore’s law, on processor implementation Approaches for exploiting instruction level parallelism, such as VLIW. Introduction to parallel and multicore architectures. Introduction to processor architectures targeted for imbedded applications. Additional coursework required beyond the undergraduate course requirements. Cross-list: ELEC 554. Graduate/Undergraduate Equivalency: COMP 425. Mutually Exclusive: Cannot register for COMP 554 if student has credit for COMP 425.
COMP 555 - DESIGN AND ANALYSIS OF CYBER-PHYSICAL SYSTEMS
Short Title: DESIGN&ANALYSIS CYBER/PHYSICAL
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: This course is an introduction to cyber-physical systems, engineering artifacts in which computational components interact with and typically control physical components. Some common examples of cyber-physical systems include robots, Segways and lane-departure warning, LDW, systems in automobiles. Graduate/Undergraduate Equivalency: COMP 451. Mutually Exclusive: Cannot register for COMP 555 if student has credit for COMP 451.
COMP 556 - INTRODUCTION TO COMPUTER NETWORKS
Short Title: INTRO TO COMPUTER NETWORKS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Network architectures, algorithms, and protocols. Local- and Wide-area networking. Intra- and inter-domain routing. Transmission reliability. Flow and congestion control. TCP/IP. Multicast. Quality of Service. Network Security - Networked applications. Additional coursework required beyond the undergraduate course requirements. Cross-list: ELEC 556. Graduate/Undergraduate Equivalency: COMP 429. Recommended Prerequisite(s): COMP 321 Mutually Exclusive: Cannot register for COMP 556 if student has credit for COMP 429.
COMP 557 - ARTIFICIAL INTELLIGENCE
Short Title: ARTIFICIAL INTELLIGENCE
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): COMP 310 and (STAT 310 or ECON 307 or STAT 312 or STAT 331 or ELEC 303) and (MATH 354 or MATH 355 or CAAM 335 or CMOR 302)
Description: This is a foundational course in artificial intelligence, the discipline of designing intelligent agents. The course will cover the design and analysis of agents that do the right thing in the face of limited information and computational resources. The course revolves around two main questions: how agents decide what to do, and how they learn from experience. Tools from computer science, probability theory, and game theory will be used. Interesting examples of intelligent agents will be covered, including poker playing programs, bots for various games (e.g. WoW), DS1 -- the spacecraft that performed an autonomous flyby of Comet Borrely in 2001, Stanley -- the Stanford robot car that won the Darpa Grand Challenge, Google Maps and how it calculates driving directions, face and handwriting recognizers, Fedex package delivery planners, airline fare prediction sites, and fraud detectors in financial transactions. Additional coursework required beyond the undergraduate course requirements. Cross-list: ELEC 557. Graduate/Undergraduate Equivalency: COMP 440. Mutually Exclusive: Cannot register for COMP 557 if student has credit for COMP 440.
Course URL: www.owlnet.rice.edu/~comp440
COMP 558 - QUANTUM COMPUTING ALGORITHMS
Short Title: QUANTUM COMPUTING ALGORITHMS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Quantum computing is an emerging field with the potential to revolutionize various industries, including cryptography, scientific computation, optimization, and machine learning. Quantum Computing Algorithms is a course designed to introduce students to the foundations and practical algorithms of quantum computing from a systems perspective to equip them for the evolving technological landscape. The course will first refresh students on required mathematical concepts in linear algebra, probabilities, and statistics. Students will also learn about fundamental quantum principles, including superposition, entanglement, reversibility, interference, and circuits. The course will then delve into advanced quantum algorithms, especially variational and parameterized codes, including search, optimization, machine learning, and quantum simulation. Students will gain hands-on experience with Python-based quantum programming languages, Cirq and Tensorflow Quantum, to program current quantum computers. Graduate/Undergraduate Equivalency: COMP 458. Recommended Prerequisite(s): COMP 382 and (CMOR 302 or CMOR 303 or MATH 355 or MATH 354) Mutually Exclusive: Cannot register for COMP 558 if student has credit for COMP 458.
COMP 559 - MACHINE LEARNING WITH GRAPHS
Short Title: MACHINE LEARNING WITH GRAPHS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: This course will overview both traditional and more recent graph-based machine learning algorithms. Graphs show up in machine learning in many forms. Oftentimes, the input data can be naturally represented as a graph, such as for relational learning tasks applied to social networks and graph kernels applied to chemical data. Other times, graphs are just a framework to express some intrinsic structure in the data, such as for graphical models and non-linear embedding. In both cases, recent advances in representation learning (or graph embedding) and deep learning have generated a renewed interest in machine learning on graphs. At the end of the course, students are expected to be able to: (1) identify the appropriate graph-based machine learning algorithm for a given problem; (2) extend existing algorithms to solve new related problems; and (3) recognize some of the key research challenges in the field. The course will be a mixture of lectures, a research paper presentation, homework assignments (including programming), and a hands-on class project. Mutually Exclusive: Cannot register for COMP 559 if student has credit for COMP 459. Graduate/Undergraduate Equivalency: COMP 459. Recommended Prerequisite(s): Undergraduate-level linear algebra and undergraduate-level probability and statistics Mutually Exclusive: Cannot register for COMP 559 if student has credit for COMP 449/COMP 459.
COMP 560 - COMPUTER GRAPHICS AND GEOMETRIC MODELING
Short Title: COMPUTER GRAPHICS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: A survey of core topics in Computer Graphics and Geometric Modeling, including fractals, ray tracing, hidden surface Algorithmic, Bezier, B-spline, blossoming techniques and subdivision procedures. Graduate/Undergraduate Equivalency: COMP 463. Mutually Exclusive: Cannot register for COMP 560 if student has credit for COMP 460/COMP 463.
COMP 561 - GEOMETRIC MODELING
Short Title: GEOMETRIC MODELING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Exploration of curves and surfaces (e.g. parametric form, implicit form, and conversion between forms), the representation of solid (e.g., wireframes, octrees, boundary representations, and constructive solid geometry), and applications (e.g., graphics, motion planning, simulation, and finite element mesh generation. Graduate/Undergraduate Equivalency: COMP 361. Repeatable for Credit.
COMP 562 - FUNDAMENTALS OF ROBOTIC MANIPULATION
Short Title: ROBOTIC MANIPULATION
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Robots, as seen in many different forms, can help people in various application scenarios to improve the efficiency, safety, and quality of task executions. In particular, those robots which can physically interact with the world possess essential skills, called manipulation, to engage themselves more comprehensively in the real-world tasks. For example, robots with manipulation skills can help us in factories, kitchens, hospitals, warehouses, constructions sites, and even in space or on another planet. This course will introduce both fundamental and the state-of-the-art knowledge that enable robots to manipulate in our world. Topics including robot motions, kinematics, dynamics, simulation and ROS, hand and grasping, prehensile and nonprehensile manipulation, robot control, and interactive estimation, will be covered. Significant programming projects are involved to facilitate converting the textbook knowledge to solid hands-on experiences. Graduate/Undergraduate Equivalency: COMP 462. Recommended Prerequisite(s): COMP 450 or 550 Mutually Exclusive: Cannot register for COMP 562 if student has credit for COMP 462.
COMP 565 - COMPUTATIONAL HUMAN-ROBOT INTERACTION
Short Title: COMPUTATIONAL HRI
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): COMP 440 or COMP 450 or COMP 540 or STAT 525 or MECH 498
Description: The course provides an introduction to the budding field of human-robot interaction (HRI), with emphasis on its computational aspects. The course will cover models and algorithms for learning robot policies from human expertise, modeling human behavior using observational data, and enhancing human-robot coordination. Through problems grounded in HRI, students will also learn about general AI techniques for imitation learning (e.g., inverse reinforcement learning) and sequential decision-making under uncertainty (namely, partially observable MDPs).
COMP 566 - AI ETHICS
Short Title: AI ETHICS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Recent advances in machine learning and robotics have led technology users, developers, and policymakers to increasingly consider the role of AI in social, economic, and political life. Amid both utopian and dystopian visions for the potential of AI, important questions about the role of “artificial” intelligence in “human” society are newly emerging or being considered anew: what kinds of sociotechnical processes count as “AI”? What will be the moral status of “autonomous” entities? What will be the social, cultural, and political impact of AI? What will this impact be in different cultures and nations around the world? In this class, we will draw on a diverse set of historical and theoretical materials - including academic texts, historical analyses, technical reports, and science fiction film and literature - to examine the affordances and limitations of AI in areas such as education, manufacturing, transportation, healthcare, policing, and warfare. In so doing, the ultimate purpose of this course will be to deconstruct the epistemological, ontological, and ethical assumptions that have historically shaped and in many ways continue to shape the development of AI. Mutually Exclusive: Cannot register for COMP 566 if student has credit for COMP 510.
COMP 571 - MODELING AND INFERENCE IN COMPUTATIONAL GENOMICS
Short Title: COMPUTATIONAL GENOMICS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: The course addresses several problems in computational genomics including, but not limited to, sequence alignment, phylogeny reconstruction, phylogenomics, cancer genomics, and viral phylodynamics. In addition to learning about these biological problems, the course emphasizes the mathematical approaches used to formulate these problems mathematically and the algorithmic techniques used to solve them. For mathematical modeling, the students will be introduced to hypothesis testing, probabilistic graphical models, graph theory, and more. For inference, the students will be introduced to combinatorial optimization, maximum likelihood estimation, Bayesian Markov chain Monte Carlo, and more. This is a course about computational problem solving, with genomics being the domain from which we draw problems, rather than a course about using bioinformatics tools. As such, students are expected to have the mathematical maturity students would get in courses such as COMP 182, COMP 382, and STAT 310.
Course URL: www.cs.rice.edu/~nakhleh/COMP571/
COMP 572 - BIOINFORMATICS: NETWORK ANALYSIS
Short Title: BIOINFORMATICS: NETWORKS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: This course covers computational aspects of biological network analysis, a major theme in the area of systems biology. The course discusses protein-protein interaction, signaling, metabolic, and functional networks, and covers issues related to constructing, analyzing various types of networks, as well as how they can be used for downstream applications. Cross-list: BIOE 564.
COMP 573 - PROFESSIONAL DEVELOPMENT FOR BIOMEDICAL INFORMATICS
Short Title: BIOMEDICAL INFORMATICS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 1-3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: This seminar introduces pre- and postdoctoral students in biomedical informatics to topics relevant to professional development in the discipline, which is no longer concentrated in labs as it was in its early days, but is now important in hospitals, outpatient clinics, companies and even the community. In these settings, researchers and practitioners are likely to encounter not only difficult technical challenges, but vexing problems of organizational change and development as well. We will consider some of these challenges, drawing on the insights of experts in psychology, organizational change, management and communications along with industry representatives and entrepreneurs. The seminar mixes lectures and readings with group and individual exercises. Instructor Permission Required. Repeatable for Credit.
COMP 574 - COMPUTATIONAL GENOMICS FOR MICROBIAL FORENSICS
Short Title: COMP MICROBIAL FORENSICS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): COMP 382
Description: This course covers computational approaches, including algorithms (divide and conquer, greedy, randomized) and data structures (suffix arrays, suffix trees, de bruijn graphs) that have served as the foundation for computational analyses and real-time tracking of infectious diseases. The course is organized into four themed modules, and each module features several seminal computational advances leading to real-world applications spanning the past three decades. The students prepare written summaries of each computational advance, as well as prepare in-class presentations, to both reinforce learning and embed communication into the class. The course also features quizzes (on Canvas) and a midterm and final exam to assess learning of the key computational concepts covered in this course.
COMP 576 - A PRACTICAL INTRODUCTION TO DEEP MACHINE LEARNING
Short Title: INTRODUCTION TO DEEP LEARNING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Deep Machine Learning has recently made many advances in difficult perceptual tasks, including object and phoneme recognition, and natural language processing. However, the field has a steep learning curve, both conceptually and practically. The point of this course is to engage students by jumping into the deep end, and building their own architectures and algorithms. Cross-list: ELEC 576.
COMP 580 - PROBABILISTIC ALGORITHMS AND DATA STRUCTURE
Short Title: PROB ALGORITHM DATA STRUCTURE
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: This course will be ideal for someone wanting to build a strong foundation in the theory and practice of algorithms for processing Big-Data. We will discuss advanced data structures and algorithms going beyond deterministic setting and emphasize the role of randomness in getting significant, often exponential, improvements in computations and memory. Graduate/Undergraduate Equivalency: COMP 480.
COMP 581 - AUTOMATA, FORMAL LANGUAGES, AND COMPUTABILITY
Short Title: AUTOMATA/FORMAL LANG/COMPUTING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Finite automata, regular expressions, regular languages, pushdown automata, context-free languages, Turing machines, recursive languages, computability, and solvability. It is strongly recommended that students complete three semesters of Mathematics before enrolling in this course. Graduate/Undergraduate Equivalency: COMP 481. Mutually Exclusive: Cannot register for COMP 581 if student has credit for COMP 481.
COMP 582 - GRADUATE DESIGN AND ANALYSIS OF ALGORITHMS
Short Title: GR DESGN ANALY OF ALGORITHMS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Methods for designing and analyzing computer algorithms and data structures. The focus of this course will be on the theoretical and mathematical aspects of algorithms and data structures. Cross-list: ELEC 512. Recommended Prerequisite(s): STAT 310 or ECON 307 or STAT 331 or ELEC 331 or ELEC 303 or STAT 312
COMP 585 - PROBABILISTIC TOOLKIT FOR LEARNING AND COMPUTING
Short Title: PROB TOOLKIT FOR LEARNING & CO
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Randomness is one of the strongest tools which enables designing efficient algorithms. The applications of randomness in computer science spans machine learning algorithm, cryptography, networks, distributed systems. In this course, we study a variety of probabilistic tools and techniques that allow us to harness the power of randomness and apply it in algorithm design and learning theory. Recommended Prerequisite(s): COMP 382
COMP 587 - COMPUTATIONAL COMPLEXITY
Short Title: COMPUTATIONAL COMPLEXITY
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): COMP 382 or COMP 409 or COMP 509 or COMP 481 or COMP 581
Description: In Computational Complexity we study the computational resources (time, space, communication, etc.) that are required to solve computational problems via various computational needs. Specifically, we are interested in classifying computational problems with classes of other problems that require similar amount of resources to solve. Graduate/Undergraduate Equivalency: COMP 487. Mutually Exclusive: Cannot register for COMP 587 if student has credit for COMP 487.
COMP 590 - COMPUTER SCIENCE PROJECTS
Short Title: COMPUTER SCIENCE PROJECTS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Research
Credit Hours: 1-4
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Advanced theoretical and experimental investigations under staff direction. The student must have a full-time internship to receive 4 credits for this course. Instructor Permission Required. Repeatable for Credit.
COMP 591 - GRADUATE COMPUTER SCIENCE TEACHING
Short Title: GRAD COMPUTER SCIENCE TEACHING
Department: Computer Science
Grade Mode: Satisfactory/Unsatisfactory
Course Type: Independent Study
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: A combination of in-service teaching and a seminar. Instructor Permission Required. Repeatable for Credit.
COMP 598 - INTRODUCTION TO ROBOTICS
Short Title: INTRODUCTION TO ROBOTICS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Introduction to the kinematics, dynamics, and control of robot manipulators and to applications of artificial intelligence and computer vision in robotics. Additional work requied for Graduate course. Cross-list: ELEC 598, MECH 598. Graduate/Undergraduate Equivalency: COMP 498. Mutually Exclusive: Cannot register for COMP 598 if student has credit for COMP 498.
COMP 600 - GRADUATE SEMINAR IN COMPUTER SCIENCE
Short Title: GRADUATE SEMINAR
Department: Computer Science
Grade Mode: Satisfactory/Unsatisfactory
Course Type: Seminar
Credit Hour: 1
Restrictions: Enrollment is limited to Graduate level students. Enrollment limited to students in a Doctor of Philosophy or Master of Science degrees.
Course Level: Graduate
Description: The seminar course meets weekly to discuss current research results by graduate students in the Computer Science Department. Senior Ph.D. Students are expected to present their research results. This course is open ONLY to MS and Ph.D. Students. MCS students may NOT take this course for credit without the consent of the instructor. Repeatable for Credit.
Course URL: www.clear.rice.edu/comp600/
COMP 601 - WRITING AND EDITING CONFERENCE PAPERS
Short Title: WRITING & EDITING CONF PAPERS
Department: Computer Science
Grade Mode: Satisfactory/Unsatisfactory
Course Type: Seminar
Credit Hour: 1
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: This is a seminar on technical writing and preparing publications for peer review. The focus is on conference papers, around 6-10 pages in length. The main topics are: 1) The structure of a conference publication, with guest lectures from the faculty. 2) Good daily writing habits with a group accountability system. 3) Editing techniques and the development a departmental "writing community" with interactive editing sessions. This course will cover a few topics from ENGI 600, but the main focus will be on short computer science conference documents and interactive peer editing. ENGI 600 is still the correct course to take for writing in general, thesis preparation, or journal publications. This course will complement COMP 600, and to develop the same community for writing as this class does for presentations. Repeatable for Credit.
COMP 602 - NEURAL MACHINE LEARNING AND DATA MINING II
Short Title: NEURAL MACHINE LEARNING II
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): ELEC 502 or COMP 502 or STAT 502
Description: Advanced topics in ANN theories, with a focus on learning high-dimensional complex manifolds with neural maps (Self-Organizing Maps, Learning Vector Quantizers and variants). Application to data mining, clustering, classification, dimension reduction, sparse representation. The course will be a mix of lectures and seminar discussions with active student participation, based on most recent research publications. Students will have access to professional software environment to implement theories. Cross-list: ELEC 602, STAT 602. Repeatable for Credit.
Course URL: www.ece.rice.edu/~erzsebet/NMLcourseII.html
COMP 603 - AI ETHICS
Short Title: AI ETHICS
Department: Computer Science
Grade Mode: Satisfactory/Unsatisfactory
Course Type: Lecture
Credit Hour: 1
Restrictions: Enrollment is limited to Graduate level students. Enrollment limited to students in a Doctor of Philosophy degree. Enrollment limited to students in the Computer Science department.
Course Level: Graduate
Description: Recent advances in machine learning and robotics have led technology users, developers, and policymakers to increasingly consider the role of AI in social, economic, and political life. Amid both utopian and dystopian visions for the potential of AI, important questions about the role of “artificial” intelligence in “human” society are newly emerging or being considered anew: what kinds of sociotechnical processes count as “AI”? What will be the moral status of “autonomous” entities? What will be the social, cultural, and political impact of AI? What will this impact be in different cultures and nations around the world? In this class, we will draw on a diverse set of historical and theoretical materials - including academic texts, historical analyses, technical reports, and science fiction film and literature - to examine the affordances and limitations of AI in areas such as labor, healthcare, and criminal justice, and on software such as videogames, social media platforms, and virtual reality. Repeatable for Credit.
COMP 604 - PROFESSIONAL ETHICS AND COMMUNICATION IN COMPUTER SCIENCE
Short Title: PROF ETHICS AND COMM IN CS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Seminar
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students. Enrollment limited to students in a Master of Computer Science or Master of Data Science degrees.
Course Level: Graduate
Description: This course is designed for computer science master's students whose careers are increasingly shaped by changing communication norms in professional settings and by the wide-ranging ethical implications of technological development. This course will help students to develop fundamental skills in contemporary professional communication in the United States and to reflect on the ethical and social dimensions of developing professional careers in computer science. In a series of lectures, seminar-style discussions, and communication workshops throughout the course, students will reflect on and articulate responses to critical ethical and social questions in computer science, including issues related to professional integrity, cultural and computational biases, and AI and automation. At the same time, students will develop and practice crucial professional communication skills, including written, oral, and visual content Mutually Exclusive: Cannot register for COMP 604 if student has credit for COMP 510/COMP 622/ENGI 510/ENGI 529/RCEL 504.
COMP 605 - GRADUATE SEMINAR IN LEARNING THEORY
Short Title: GR SEM ON LEARNING THEORY
Department: Computer Science
Grade Mode: Satisfactory/Unsatisfactory
Course Type: Seminar
Credit Hours: 1,3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: This course offers an in-depth exploration of the mathematical and computational foundations that underpin the algorithms and models used in machine learning. It is designed to delve into the theoretical aspects of machine learning, covering topics such as statistical learning theory, complexity theory, algorithmic efficiency, and differential privacy. The seminar aims to equip students with a robust understanding of how and why machine learning algorithms work, enabling them to design and implement more effective and efficient models. Students have the option of registering for a 3-credit hour project, which provides the opportunity to engage with the topic through a project for those seeking a more hands-on experience in the course. Recommended Prerequisite(s): machine learning or an algorithm course is strongly recommended.
COMP 607 - AUTOMATED PROGRAM VERIFICATION
Short Title: AUTOMATED PROGRAM VERIFICATION
Department: Computer Science
Grade Mode: Satisfactory/Unsatisfactory
Course Type: Seminar
Credit Hour: 1
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Methods, tools and theories for the computer-aided verification of concurrent systems. Repeatable for Credit.
Course URL: www.cs.rice.edu/~vardi/comp607/
COMP 610 - SOFTWARE CONSTRUCTION
Short Title: SOFTWARE CONSTRUCTION
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture/Laboratory
Credit Hours: 3
Restrictions: Enrollment limited to students in the OMCS program. Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): COMP 613 or COMP 614
Description: This course focuses on modern principles for the construction of large-scale programs, with an emphasis on design patterns, modern programming tools, and team management. The material will be applied in a substantial software design/construction project. The course has a significant oral and written communication component where students will be required to document and present their software design. In order to enroll in an online section of this course, you are expected to have a working camera and microphone. During class sessions, you must be able to participate using your microphone and you are expected to have your camera on for the duration of the class so that you are visible to the instructor and other students in the class, just as you would be in an in-person class.
COMP 611 - TOPICS IN PROGRAMMING LANGUAGES AND FORMAL METHODS
Short Title: PROGRAMMING & FORMAL METHODS
Department: Computer Science
Grade Mode: Satisfactory/Unsatisfactory
Course Type: Seminar
Credit Hours: 1-3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: This course will cover a selection of topics from the areas of programming languages and formal methods. all students will read classical and recent papers on the selected topics and give presentations on them. A student may elect to perform a semester-long project on a topics related to the content of the course and write a short report on their findings. Repeatable for Credit.
COMP 613 - PROGRAMMING LANGUAGES AND DESIGN
Short Title: PROGRAMMING LANGUAGES
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment limited to students in the MCS, MCSE or OMCS programs. Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): COMP 614
Description: This course covers important concepts of programming languages that are critical to understanding and constructing software artifacts. These concepts will be studied in the context of multiple programming paradigms, including functional and object-oriented programming. By using different paradigms, you will learn to think more deeply than in terms of a single approach or the syntax of one language. This course aims to provide a framework for understanding how to use language constructs effectively and how to design correct and elegant programs in any language. In order to enroll in an online section of this course, you are expected to have a working camera and microphone. During class sessions, you must be able to participate using your microphone and you are expected to have your camera on for the duration of the class so that you are visible to the instructor and other students in the class, just as you would be in an in-person class.
COMP 614 - COMPUTER PROGRAMMING FOR DATA SCIENCE
Short Title: PROGRAMMING FOR DATA SCIENCE
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment limited to students in the following programs: MDS MEML OMCS OMDS OMEML Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: An introduction to computer programming designed to give an overview of programming and algorithmic topics commonly seen in Data Science, such creating and manipulating data structures, graphs, dynamic programming, sorting and heuristic search algorithms. Students learn how to think about these problems and how to structure effective solutions to them using Python. No prior programming knowledge is required or expected. In order to enroll in an online section of this course, you are expected to have a working camera and microphone. During class sessions, you must be able to participate using your microphone and you are expected to have your camera on for the duration of the class so that you are visible to the instructor and other students in the class, just as you would be in an in-person class.
COMP 620 - GRADUATE SEMINAR IN COMPUTER SYSTEMS
Short Title: GRAD SEMINAR COMP SYSTEMS
Department: Computer Science
Grade Mode: Satisfactory/Unsatisfactory
Course Type: Seminar
Credit Hour: 1
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Content varies at discretion of instructor. Repeatable for Credit.
COMP 621 - SYSTEMS SOFTWARE
Short Title: SYSTEMS SOFTWARE
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment limited to students in the MCS or OMCS programs. Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): COMP 613 or COMP 614
Description: Modern computer systems are designed and implemented in a layered fashion, wherein each layer builds upon those beneath it, providing abstractions for processing, memory, and I/O that are progressively more abstracted from the hardware and easier to use than those of the underlying layers. While this layered architecture has made building systems easier, it has also made understanding their behavior and performance more difficult. Every layer from the managed run-time environments used by modern programming languages to the hypervisor play a role in processor scheduling, memory management, and I/O, making it oftentimes difficult to pinpoint which layer of the system is interacting poorly with a program. This class will teach students about the fundamental characteristics of the abstractions for processing, memory, and I/O at each layer of a modern computer system, so that they might understand the functionality provided by each layer, and instruct them on the use of modern debugging, profiling, and tracing tools, so that they are equipped to characterize the behavior and performance of their programs. In order to enroll in an online section of this course, you are expected to have a working camera and microphone. During class sessions, you must be able to participate using your microphone and you are expected to have your camera on for the duration of the class so that you are visible to the instructor and other students in the class, just as you would be in an in-person class.
COMP 622 - DATA ETHICS
Short Title: DATA ETHICS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students. Enrollment limited to students in a Master of Computer Science or Master of Data Science degrees.
Course Level: Graduate
Description: Given their growing power in the twenty-first century, data scientists have duties both to society and their own profession to wield that power wisely and responsibly. In this discussion-and reflection-oriented course students will apply fundamentals of moral philosophy and social responsibility to current issues in data science. Mutually Exclusive: Cannot register for COMP 622 if student has credit for COMP 510/COMP 604.
COMP 625 - COMPUTER ARCHITECTURE
Short Title: COMPUTER ARCHITECTURE
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment limited to students in the OMCS program. Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: It has become increasingly important to understand the underlying properties of modern computer architectures. System organization, including memory hierarchies, parallel processor organization, and interconnection networks can have a large impact on the performance of software systems. This course aims to provide a foundational understanding of key computer architecture concepts and their impact on performance.
COMP 628 - CYBERSECURITY
Short Title: CYBERSECURITY
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment limited to students in the MCS, OMCS or OMDS programs. Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: This introductory cybersecurity course includes topics relevant to core components of cybersecurity technologies, processes, and practices designed to protect networks, computers, and data from attack, damage, and unauthorized access. Specifically how to identify, protect, detect, respond, and recover. Topics include threat landscape, cryptography, malware, network security, and cloud security. In order to enroll in an online section of this course, you are expected to have a working camera and microphone. During class sessions, you must be able to participate using your microphone and you are expected to have your camera on for the duration of the class so that you are visible to the instructor and other students in the class, just as you would be in an in-person class.
COMP 630 - DATABASES
Short Title: DATABASES
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment limited to students in the OMCS or OMDS programs. Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: This course is an introduction to relational and other (NoSQL) database systems, SQL programming, and database design. This course will teach students how to understand trade-offs in database design, to create well-designed databases, and to develop proficiency in effectively managing data in a database. The course is focused on developing skills as a database designer and power-user. It also includes discussions of database implementation details to enable students to understand underlying system functionality and how that impacts decisions a database designer makes. In order to enroll in an online section of this course, you are expected to have a working camera and microphone. During class sessions, you must be able to participate using your microphone and you are expected to have your camera on for the duration of the class so that you are visible to the instructor and other students in the class, just as you would be in an in-person class.
COMP 631 - INTRODUCTION TO INFORMATION RETRIEVAL
Short Title: INTRO TO INFO RETRIEVAL
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: It is the information age! We face challenges brought by large-scale and unstructured information on open systems such as the Web or social media. Through this course, we'll study the theory, design, and implementation of text-based and Web-based information retrieval systems, including an examination of web and social media mining algorithms and techniques at the core of modern search and data mining applications. Recommended Prerequisite(s): Linear Algebra and Basic Probability Theory
COMP 640 - GRADUATE SEMINAR IN MACHINE LEARNING
Short Title: GR SEM IN MACHINE LEARNING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Seminar
Credit Hours: 1-3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: A reading course covering the latest developments in statistical machine learning and pattern recognition. Recommended Prerequisite(s): COMP 440. Repeatable for Credit.
COMP 641 - GRADUATE SEMINAR ON INTERACTIVE MACHINE LEARNING
Short Title: INTERACTIVE MACH LEARNING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Seminar
Credit Hours: 1-3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Many applications of machine learning involve humans in the loop (e.g., the programmer implementing the algorithm, the domain expert specifying the features/labels, or the end user making decisions using the learned model). This course is a discussion-based seminar focusing on the design, analysis, and evaluation of machine learning techniques with explicit emphasis on the human(s) in the loop. Topics include reinforcement learning with human teachers, active learning, interpretability, learning beyond labels, and human-in-the-loop Bayesian inference. Recommended Prerequisite(s): COMP 382 and STAT 315/DSCI 301 and CAAM 335 Repeatable for Credit.
COMP 642 - MACHINE LEARNING
Short Title: MACHINE LEARNING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment limited to students in the MCS, MDS, OMCS or OMDS programs. Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): COMP 682 or COMP 614
Description: Machine learning is the process of automatically inferring a function from a set of data. In essence, machine learning techniques seek to automate the inductive learning process that humans do so well. Furthermore, the availability of large training sets combined with significant computing power has made machine learning an extremely important body of knowledge across a large range of application domains. A small sample of some of the application domains include robotics, medicine, speech/facial recognition, and driving autonomous vehicles. This course will focus on providing a foundational understanding of modern algorithms in machine learning, focusing on practical applications. Enrollment in online sections limited to students in the OMCS or OMDS programs. Enrollment in in person sections limited to students in the MCS or MDS programs. In order to enroll in an online section of this course, you are expected to have a working camera and microphone. During class sessions, you must be able to participate using your microphone and you are expected to have your camera on for the duration of the class so that you are visible to the instructor and other students in the class, just as you would be in an in-person class.
COMP 643 - BIG DATA
Short Title: BIG DATA
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment limited to students in the MDS, OMCS or OMDS programs. Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): COMP 630
Description: This course is an introduction to modern data science. Data science is the study of how to extract actionable, non-trivial knowledge from data. The course will focus on software tools used by practitioners of modern data science, the mathematical and statistical models that are employed in conjunction with such software tools and the applications of these tools and systems to different problems and domains. In particular, this class explores the use of these tools and models in the analysis of “big” data, that is datasets that are too large to be analyzed on a typical personal computer. In order to enroll in an online section of this course, you are expected to have a working camera and microphone. During class sessions, you must be able to participate using your microphone and you are expected to have your camera on for the duration of the class so that you are visible to the instructor and other students in the class, just as you would be in an in-person class.
COMP 644 - DATA PRIVACY & SECURITY
Short Title: DATA PRIVACY & SECURITY
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment limited to students in the MDS, OMCS or OMDS programs. Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: This course will cover types of threats in data and computer systems. This includes foundational computer security material such as encryption, public-private key systems. In addition, foundations of data privacy and security, including models of disclosure, k-anonymity, and differential privacy, will be covered. In order to enroll in an online section of this course, you are expected to have a working camera and microphone. During class sessions, you must be able to participate using your microphone and you are expected to have your camera on for the duration of the class so that you are visible to the instructor and other students in the class, just as you would be in an in-person class.
COMP 645 - ADVANCED TOPICS IN DISTRIBUTED SYSTEMS
Short Title: ADV TOPICS IN DISTRIBUTED SYST
Department: Computer Science
Grade Mode: Satisfactory/Unsatisfactory
Course Type: Seminar
Credit Hours: 1-3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: We will learn about and discuss recent advances in various areas in computer systems, including topics on security, distributed systems, networking, operating systems, and databases. The seminar will be divided into several sections, with each section focusing on one research trend. In each class, students will read one classic paper on the topic, and present two recent papers that describe the stat of the art. Students can also team up and do a semester-long research project on any relevant topics. All students will need to make a final presentation at the end of the class on a potential project idea; for students that choose to do a semester-long project, they will also submit a six-page report on their project, in addition to giving a final presentation. Instructor Permission Required. Cross-list: ELEC 692. Repeatable for Credit.
COMP 646 - DEEP LEARNING FOR VISION AND LANGUAGE
Short Title: DEEP LEARN FOR VISION AND LANG
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment limited to students in the MCS or MDS programs. Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Visual recognition and language understanding are two challenging tasks in AI. In this course we will study and acquire the skills to build machine learning and deep learning models that can reason about images and text for generating image descriptions, visual question answering, image retrieval, and other tasks involving both text and images. On the technical side we will leverage models such as recurrent neural networks (RNNs), convolutional neural networks (CNNs), and transformer networks (e.g. BERT), among others. Mutually Exclusive: Cannot register for COMP 646 if student has credit for COMP 647.
COMP 647 - DEEP LEARNING
Short Title: DEEP LEARNING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment limited to students in the OMCS or OMDS programs. Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: In this course, students will learn the fundamentals of neural networks and deep learning along with their applications in several domains, such as computer vision and natural language processing. In order to enroll in an online section of this course, you are expected to have a working camera and microphone. During class sessions, you must be able to participate using your microphone and you are expected to have your camera on for the duration of the class so that you are visible to the instructor and other students in the class, just as you would be in an in-person class. Recommended Prerequisite(s): 1. Proficiency in Python 3. 2. Familiarity with fundamental concepts of calculus, including partial derivatives, chain rule, total derivatives, derivatives and partial derivatives of vectors and matrices. 3. Familiarity with fundamental concepts of probability and statistics, including probability distributions, density functions, computing probabilities, expectation, variance, multivariate distributions, random variables and multivariate random variables. 4. Familiarity with fundamental concepts of linear algebra, such as inner products, vector spaces, vector and matrix norms, rank of a matrix, positive definite matrices, and matrix factorization, e.g., spectral decomposition and singular value decomposition. 5. Familiarity with fundamental concepts of machine learning and optimization theory, such as loss functions, gradient descent, maximum likelihood estimation, MAP estimation, and principal component analysis. Mutually Exclusive: Cannot register for COMP 647 if student has credit for COMP 646/ELEC 576.
COMP 648 - GRADUATE SEMINAR ON COMPUTER VISION
Short Title: COMPUTER VISION SEMINAR
Department: Computer Science
Grade Mode: Satisfactory/Unsatisfactory
Course Type: Seminar
Credit Hours: 1,3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: This seminar will explore and analyze the current literature in computer vision, especially focusing on computational methods for visual recognition. Our topics include image classification and understanding, object detection, image segmentation, and other high-level perceptual tasks Recommended Prerequisite(s): COMP 547, COMP 646, or COMP 546 Repeatable for Credit.
COMP 649 - QUANTUM COMPUTING SEMINAR — KNOW THE QUANTUM COMPUTING WORLD FROM ALGORITHMS
Short Title: QUANTUM COMPUTING SEMINAR
Department: Computer Science
Grade Mode: Satisfactory/Unsatisfactory
Course Type: Seminar
Credit Hour: 1
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: The seminar will introduce quantum computing to students with linear algebra and algorithms knowledge. The outline is listed as follows: 1) What is quantum computing? We will introduce quantum states, quantum operators, measurements, and other quantum information principles widely used in quantum computing. 2) How do quantum algorithms change the landscape of computer science? Will see quantum algorithms, such as Deutch-Josza algorithms, Simon’s algorithm, Shor’s algorithms, Grover’s search, Watrous’s rewinding algorithms, Hamiltonian simulation algorithms, HHL algorithms, Block-encoding and singular value transformation, and more. 3) What’s the limit of quantum algorithms? We will see some techniques to prove the limits of quantum algorithms on specific problems, such as polynomial methods and the compressed oracle method. 4) Brainstorming together. Students need to select some research papers to present to me, and we will have some group discussions on related topics. Recommended Prerequisite(s): COMP 414 and COMP 487 Repeatable for Credit.
COMP 650 - PHYSICAL COMPUTING
Short Title: PHYSICAL COMPUTING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Seminar
Credit Hours: 1-3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Methods, tools and theories for reasoning about problems with physical constraints. The student may elect to perform a project to receive more than 1 credit hour. Instructor Permission Required. Repeatable for Credit.
COMP 652 - NATURAL LANGUAGE PROCESSING
Short Title: NATURAL LANGUAGE PROCESSING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment limited to students in the OMCS or OMDS programs. Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): COMP 614 and COMP 642 and COMP 680
Description: This is an introductory graduate-level course in Natural Language Processing (NLP), where students will learn the fundamental concepts of computational linguistics, probabilistic language models, neural representations of language, and text parsing. Further, the course includes several applications of these concepts for solving real-world problems, such as sentiment analysis, information extraction, question answering, and the design of chatbots. Students will complete individual assignments, a literature review, and a team project designed to provide them with the exposure necessary to develop, build, design, and train NLP methods and models for different real-world tasks. In addition, relevant state-of-the-art algorithms and architectures will be discussed. Recommended Prerequisite(s): Familiarity with fundamental concepts of calculus, including partial derivatives, chain rule, total derivatives, derivatives and partial derivatives of vectors and matrices. Familiarity with fundamental concepts of probability and statistics, including probability distributions, density functions, computing probabilities, expectation, variance, multivariate distributions, random variables and multivariate random variables. Familiarity with fundamental concepts of linear algebra, such as inner products, vector spaces, vector and matrix norms, rank of a matrix, positive definite matrices, and matrix factorization, e.g., spectral decomposition and singular value decomposition. Familiarity with fundamental concepts of machine learning and optimization theory, such as loss functions, gradient descent, maximum likelihood estimation, MAP estimation, dimensionality reduction, principal component analysis, Naive Bayes algorithm, and logistic regression.
COMP 653 - STATISTICAL MACHINE LEARNING
Short Title: STATISTICAL MACHINE LEARNING
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment limited to students in the OMCS or OMDS programs. Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): COMP 614 and COMP 642 and COMP 680
Description: This course is a graduate-level course of the online Master Data Science (MDS) program in the machine learning specialization. This is an advanced machine learning course, where students will study fundamental concepts of probability theory and statistical theory, understand various machine learning topics from the viewpoint of statistics. Furthermore, the course will discuss several practical machine learning problems (e.g., generalization, robustness, and explainable artificial intelligence) and the state-of-the-art statistical algorithms that can solve these practical problems in the real world.
COMP 655 - ADVANCED TOPICS IN ROBOTIC MANIPULATION;
Short Title: ROBOTIC MANIPULATION
Department: Computer Science
Grade Mode: Satisfactory/Unsatisfactory
Course Type: Seminar
Credit Hours: 1-3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: This course provides a survey of autonomous robotic manipulation systems. In particular, we are interested in the most influential recent research, as well as the necessary fundamental concepts that have paved the roads. By reading relevant papers from top journals and conferences, we will discuss problems including grasping, motion planning, prehensile and non-prehensile manipulation, affordance and task modeling, hand design, and perception. Centered around the recent rapid development of various sensor technology, we will try to bridge the gaps between sensing modalities to each of the major problems in manipulation, with an emphasis on understanding how sensing modalities interact with other components in the system. Upon the completion of this course, students should have gained a comprehensive understanding of robotic manipulation as a research field, and should be able to define, formulate and analyze relevant scientific problems on a research level. Repeatable for Credit.
COMP 665 - DATA VISUALIZATION
Short Title: DATA VISUALIZATION
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment limited to students in the MCS, MDS, OMCS or OMDS programs. Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Data is being generated by humans and algorithms at an astounding rate. Having the ability to analyze and interpret this data visually is a key technique for coping with this explosion. This class will cover the basic ways that various types of data can be visualized and what properties distinguish useful visualizations from not so useful ones. The class will use Python as both the primary tool for processing the data as well creating visualizations of this data. To enhance the students’ depth of knowledge, the class will also cover some of the geometric algorithms used to create advanced visualizations. In order to enroll in an online section of this course, you are expected to have a working camera and microphone. During class sessions, you must be able to participate using your microphone and you are expected to have your camera on for the duration of the class so that you are visible to the instructor and other students in the class, just as you would be in an in-person class.
COMP 670 - GRADUATE SEMINAR ON COMPUTATIONAL BIOLOGY
Short Title: GR SEM ON COMP BIOLOGY
Department: Computer Science
Grade Mode: Satisfactory/Unsatisfactory
Course Type: Seminar
Credit Hour: 1
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: This course is a discussion based seminar covering recent advances in computational methods and tools in biomedical research. Repeatable for Credit.
COMP 677 - SPECIAL TOPICS
Short Title: SPECIAL TOPICS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Internship/Practicum, Laboratory, Lecture, Seminar, Lecture/Laboratory
Credit Hours: 1-4
Restrictions: Enrollment is limited to Graduate or Visiting Graduate level students.
Course Level: Graduate
Description: Topics and credit hours vary each semester. Contact department for current semester's topic(s). Repeatable for Credit.
COMP 680 - STATISTICS FOR COMPUTING AND DATA SCIENCE
Short Title: STATS COMPUTING DATA SCIENCE
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment limited to students in the MDS, OMCS or OMDS programs. Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Probability and statistics are essential tools in computer science and data science. They are at the heart of areas such as efficiency analysis of algorithms and randomized algorithms and central to fields like bioinformatics, social informatics, and, of course, machine learning. Furthermore, probability and statistics are essential for data science, as they are the foundation for quantifying uncertainty and assessing support for hypotheses and derived models. This course covers topics in probability and statistics, including probability and random variables, basic stochastic processes, basic descriptive statistics, and various methods for statistical inference and measuring support. In order to enroll in an online section of this course, you are expected to have a working camera and microphone. During class sessions, you must be able to participate using your microphone and you are expected to have your camera on for the duration of the class so that you are visible to the instructor and other students in the class, just as you would be in an in-person class.
COMP 682 - PRINCIPLES OF ALGORITHMS AND SOFTWARE AREA
Short Title: ALGORITHMS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment limited to students in the MCS, OMCS or OMDS programs. Enrollment is limited to Graduate level students.
Course Level: Graduate
Prerequisite(s): COMP 614
Description: Algorithms are the recipes that underlie all computations executed by a computer. Designing new algorithms, proving their correctness, and analyzing their computational requirements are three foundational tasks in all areas of computer science. This course covers all these three aspects of algorithms. Topics covered include growth of functions, asymptotic notation and analysis, graphs and their properties, graph exploration, graph algorithms, greedy algorithms, divide-and-conquer algorithms, dynamic programming, NP-Completeness, and heuristic search algorithms. In order to enroll in an online section of this course, you are expected to have a working camera and microphone. During class sessions, you must be able to participate using your microphone and you are expected to have your camera on for the duration of the class so that you are visible to the instructor and other students in the class, just as you would be in an in-person class.
COMP 685 - LEARNING AND ALGORITHMS FOR COMPUTATIONAL MEDICINE
Short Title: LEARNING & ALGORITHMS FOR COMP
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Seminar
Credit Hours: 3
Course Level: Graduate
Description: Hospitals continuously collect vast and ever increasing volumes of medical data. This data provided unique opportunities that could improve human health, detect diseases in early stages, and develop personalized treatments. This creates a rapidly changing field of computational medicine with a plethora of algorithms and machine learning methods as well as new and exciting research challenges. In this class we aim to study some of the most advanced methods for computational medicine and look at these challenges from a machine learning and algorithms perspective. We will focus on novel and unique challenges of computational medicine such as privacy, fairness, efficiency, explainability, generalization, learning from multiple modalities, federated learning and analytics, continual learning and so on. The course will specifically focus on methods with provable guarantees such as differential privacy, convergence analysis, algorithmic fairness and so on. Recommended Prerequisite(s): COMP 582
COMP 690 - RESEARCH AND THESIS
Short Title: RESEARCH AND THESIS
Department: Computer Science
Grade Mode: Satisfactory/Unsatisfactory
Course Type: Research
Credit Hours: 1-12
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Repeatable for Credit.
COMP 691 - PEDAGOGY FOR COMPUTER SCIENCE
Short Title: PEDAGOGY FOR COMPUTER SCIENCE
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: This course will introduce evidence-backed best practices in course design and delivery, and will allow students to develop and practice their teaching skills in preparation for serving as an instructor of record in computer science Instructor Permission Required. Repeatable for Credit.
COMP 693 - ADVANCED TOPICS-COMPUTER SYSTEMS
Short Title: ADV TOPICS - COMPUTER SYSTEMS
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Seminar
Credit Hours: 1-3
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: This course is a discussion based seminar about state of the art embedded and digital signal processing systems, with emphasis on both hardware architectures as well as software tools, programming models, and compilers. The seminar focuses on state of the art academic and commercial offerings in these areas. Cross-list: ELEC 693. Repeatable for Credit.
COMP 696 - RTG CROSS-TRAINING IN DATA SCIENCE
Short Title: RTG CROSS-TRAINING IN DATA SCI
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Seminar
Credit Hour: 1
Restrictions: Enrollment is limited to students with a major in Computer Science or Statistics. Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: A seminar course to introduce students to topics in Data Science at the interface between Statistics and Computer Science. Students participate in the process of preparing, delivering and critiquing talks. Topics change each semester. Instructor Permission Required. Cross-list: STAT 696. Graduate/Undergraduate Equivalency: COMP 496. Mutually Exclusive: Cannot register for COMP 696 if student has credit for COMP 496. Repeatable for Credit.
COMP 800 - GRADUATE RESEARCH
Short Title: GRADUATE RESEARCH
Department: Computer Science
Grade Mode: Satisfactory/Unsatisfactory
Course Type: Research
Credit Hours: 1-15
Restrictions: Enrollment is limited to Graduate level students.
Course Level: Graduate
Description: Repeatable for Credit.