| CS 4-01 |
Teaching Computer ScienceThis course will prepare undergraduates to function effectively and efficiently as undergraduate teaching assistants. Through this course, students will learn pedagogical techniques that match learner needs; discuss ethical and social concerns that UTAs face in the course of a semester; and problem solve together issues that arise as teaching assistants. This course is designed in a learner centered model requiring your active and engaged participation. Through your willingness to share your experiences and expertise and your collaboration with your fellow UTA we will together construct meaningful solutions to difficulty situations. Faculty from Computer Science will participate in some of the sessions as co-facilitators. Students will be expected to complete short readings; keep a reflective blog of your learning as a teacher; give a short final presentation on a topic of interest that you want to explore in more depth to help you in your TA class. |
|
| CS 10-01 |
Computer Science for AllComputers are indispensable tools for research. This does not only hold for more technical fields such as physics or chemistry but also for the Humanities and the Social Sciences. While most students are competent users of standard software such as word processing or spreadsheets, the real power of the computer is unleashed when we are able to program it ourselves and make it do exactly what we want it to do.
|
TR 10:30-11:45 Room To Be Announced |
| CS 11-M1 |
Introduction to Computer ScienceThe study of computer science centers on two complementary aspects of the discipline. First, computer science is fundamentally concerned with the problem-solving methodologies it derives from its foundational fields: the design principles of engineering, mathematical theory, and scientific empirical study. Second, these methodologies are applied in the complex context of a modern day computing system. In this course we will address both of these important aspects. As a means for developing your design skills, we will discuss the fundamental features of a high level, general purpose programming language -- namely C++-- and learn how to use it as a tool for problem solving. We will also consider the performance of solutions, and how to apply both analytical and empirical assessment techniques. Finally, we will explore the Unix operating system as a context for problem solving. (Additional 2 hr weekly lab time scheduled at first class meeting.) Recommendations: High school algebra. No prior programming experience is necessary. |
W 5:30p-7:00p Online (synchronous) |
| CS 11-01 |
Introduction to Computer ScienceThe study of computer science centers on two complementary aspects of the discipline. First, computer science is fundamentally concerned with the problem-solving methodologies it derives from its foundational fields: the design principles of engineering, mathematical theory, and scientific empirical study. Second, these methodologies are applied in the complex context of a modern day computing system. In this course we will address both of these important aspects. As a means for developing your design skills, we will discuss the fundamental features of a high level, general purpose programming language -- namely C++-- and learn how to use it as a tool for problem solving. We will also consider the performance of solutions, and how to apply both analytical and empirical assessment techniques. Finally, we will explore the Unix operating system as a context for problem solving. (Additional 2 hr weekly lab time scheduled at first class meeting.) Recommendations: High school algebra. No prior programming experience is necessary. |
TR 10:30-11:45 Room To Be Announced |
| CS 11-02 |
Introduction to Computer ScienceThe study of computer science centers on two complementary aspects of the discipline. First, computer science is fundamentally concerned with the problem-solving methodologies it derives from its foundational fields: the design principles of engineering, mathematical theory, and scientific empirical study. Second, these methodologies are applied in the complex context of a modern day computing system. In this course we will address both of these important aspects. As a means for developing your design skills, we will discuss the fundamental features of a high level, general purpose programming language -- namely C++-- and learn how to use it as a tool for problem solving. We will also consider the performance of solutions, and how to apply both analytical and empirical assessment techniques. Finally, we will explore the Unix operating system as a context for problem solving. (Additional 2 hr weekly lab time scheduled at first class meeting.) Recommendations: High school algebra. No prior programming experience is necessary. |
TR 12:00-1:15 Room To Be Announced |
| CS 14-01 |
Emerging Scholars in Computer ScienceWeekly, peer-led workshops exploring topics in computer science. Emphasis on the collaborative and problem-solving nature of computer science. No prior programming experience is necessary. Students must apply to enroll – see departmental website for details. Prerequisite: Prerequisite: first year or sophomore standing Corequisite: COMP 10 or COMP 11. |
|
| CS 15-M1 |
Data StructuresA second course in computer science. Data structures and algorithms are studied through major programming projects in the C++ programming language. Topics include linked lists, trees, graphs, dynamic storage allocation, and recursion. Prerequisite: COMP 11 or consent. This course and COMP 50-01 (COMP 50-PSS) may not both be taken for credit. |
W 7:00p-8:30p Online (synchronous) |
| CS 15-01 |
Data StructuresA second course in computer science. Data structures and algorithms are studied through major programming projects in the C++ programming language. Topics include linked lists, trees, graphs, dynamic storage allocation, and recursion. Prerequisite: COMP 11 or consent. This course and COMP 50-01 (COMP 50-PSS) may not both be taken for credit. |
MW 10:30-11:45 Room To Be Announced |
| CS 15-02 |
Data StructuresA second course in computer science. Data structures and algorithms are studied through major programming projects in the C++ programming language. Topics include linked lists, trees, graphs, dynamic storage allocation, and recursion. Prerequisite: COMP 11 or consent. This course and COMP 50-01 (COMP 50-PSS) may not both be taken for credit. |
MW 3:00-4:15 Room To Be Announced |
| CS 20-01 |
Web ProgrammingAn introduction to techniques, principles, and practices of writing computer programs for the World Wide Web. Server and browser capabilities and limits. Media types, handlers, and limitations. Web programming languages and techniques. Web security, privacy, and commerce. Lectures augmented with programming projects illustrating concepts and current practice. Prerequisite: COMP 11; or COMP 10 and consent. |
TR 12:00-1:15 Room To Be Announced |
| CS 21-01 |
Concurrent ProgrammingWhen we learn to program, we specify problem solutions as a single sequence of computations in a fixed, determined order. But the world isn’t like that. Deer run into the woods, people talk on their phones, it rains. Nothing forces these things to happen one at a time, in a fixed order. They happen concurrently. We want to write concurrent programs, because we want to model the real world, because our computer systems actually have concurrent activities, and also to improve the performance or usability of our programs. The ubiquity of distributed applications and modern, multicore processors makes concurrent programming an essential skill. This course explores different models of concurrent programming: students will gain competence in conventional shared-memory threads programming, and at least one natively concurrent programming model (actors or CSP). Time permitting, we may look at other models. We’ll look at classic problems (like deadlock) and synchronization mechanisms (semaphores, locks, barriers). Students will complete a substantial team programming project using these tools and techniques, and they will present their work to the class. Prerequisite: CS 15, or graduate/postbac standing |
TR 4:30-5:45p Room To Be Announced |
| CS 23-01 |
Game DesignPrinciples, design, and development of games. Game structure, engineering, physics, testing, 2D and 3D rendering, user interfaces, sound, and animation. Security of online games. Applications of Economics, Music, and Psychology in crafting games. Projects include writing game design documents, developing an interactive fiction game, and building a functional game in a team. Prerequisite: Recommended: Comp 15. |
T 6:00p-9:00p Room To Be Announced |
| CS 27-01 |
How Systems FailFailure of computer systems within the larger context of complex systems, including the power grid and aviation. Failures of algorithms and protocols, engineering and implementation, systems and applications, people and culture. Attacks, attack recovery, security, privacy, and attribution. Case studies of failures and attacks, including distributed denial of service, Meltdown, Spectre, and spear-phishing attacks. Prerequisite: COMP 13 or consent of instructor. |
TR 12:00-1:15 Room To Be Announced |
| CS 28-01 |
Cyber Security and Cyber WarfareInterdisciplinary analysis of cybersecurity in the United States and other countries, intended to introduce engineering students to policymaking and intelligence aspects of cybersecurity and liberal arts students to the technical constraints of computer networks and software. Hands-on activities including packet analysis, exploiting a vulnerable system, password cracking, social engineering, reconnaissance, and malware analysis. Examination of state and non-state actors engaged in cyber-espionage, counterintelligence, deterrence, and offensive cyber operations. Guest speakers from private sector, civil liberties groups, and intelligence community. Prerequisite: PS 61: Introduction to International Relations (for PS and IR majors) or COMP 15: Data Structures (for CS majors in A&S or SOE) |
TR 1:30-2:45 Room To Be Announced |
| CS 30-M1 |
Programming for Data ScienceFundamentals of programming for data-intensive science. Data structures and algorithms for data manipulation, cleaning, and preparation. Design of data manipulation programs. Coding standards and practices. Use and creation of software libraries. Techniques for improving program performance. Examples drawn from data preparation and transformation, statistical data analysis, machine learning, deep learning, and deep data science including recommendation systems and trend analysis. |
M 5:00p-6:30p Online (synchronous) |
| CS 40-01 |
Machine Structure & Assembly-Language ProgrammingIn COMP 40, you will learn about both high-level programming design principles and the low-level structure of computing machines. Design strategies will focus on modularity, abstraction, and separation of interface from implementation. The following topics on machine structure are covered: memory, caches, registers, machine arithmetic, and bitwise operations. We will also investigate the structure of assembly code, relocatable object code, binary machine code, and the translations between them. You will gain a deep understanding of all of these concepts via large-scale, realistic programming projects.
|
TR 1:30-2:45 Room To Be Announced |
| CS 61-M1 |
Discrete Mathematics(Cross-listed as Mathematics 61.) Sets, relations and functions, logic and methods of proof, combinatorics, graphs and digraphs. Prerequisite: Math 32 or Computer Science 11 or permission of instructor. |
R 6:00p-7:30p Online (synchronous) |
| CS 61-01 |
Discrete Mathematics(Cross-listed as Mathematics 61.) Sets, relations and functions, logic and methods of proof, combinatorics, graphs and digraphs. Prerequisite: Math 32 or Computer Science 11 or permission of instructor. |
MWF 9:30-10:20 Room To Be Announced |
| CS 61-02 |
Discrete Mathematics(Cross-listed as Mathematics 61.) Sets, relations and functions, logic and methods of proof, combinatorics, graphs and digraphs. Prerequisite: Math 32 or Computer Science 11 or permission of instructor. |
MWF 10:30-11:20 Room To Be Announced |
| CS 98-01 |
Senior Capstone Project IIImplementation and testing of the project designed in CS 97. Implementation tools, strategies, and platforms. Testing and debugging methodologies. Maintenance and release management. Legal, ethical, and social impacts of computing. Prerequisite: CS 97 |
F 12:00-2:45 Room To Be Announced |
| CS 105-01 |
Programming LanguagesPrinciples and application of computer programming languages. Emphasizes ideas and techniques most relevant to practitioners, but includes foundations crucial for intellectual rigor: abstract syntax, lambda calculus, type systems, dynamic semantics. Case studies, reinforced by programming exercises. Grounding sufficient to read professional literature. Prerequisite: COMP 15 (Data Structures) and one semester of Discrete Mathematics (COMP/MATH 22 or 61). |
TR 3:00-4:15 Room To Be Announced |
| CS 111-M1 |
Operating Systems(Crosslisted as EE 128). Fundamental issues in operating system design. Concurrent processes: synchronization, sharing, deadlock, scheduling. Relevant hardware properties of uniprocessor and multiprocessor computer systems. Prerequisite: Recommendations: COMP 15 and either CS 40 OR EE 14. |
T 7:30p-9:00p Online (synchronous) |
| CS 111-01 |
Operating Systems(Crosslisted as EE 128). Fundamental issues in operating system design. Concurrent processes: synchronization, sharing, deadlock, scheduling. Relevant hardware properties of uniprocessor and multiprocessor computer systems. Prerequisite: Recommendations: COMP 15 and either CS 40 OR EE 14. |
MW 3:00-4:15 Room To Be Announced |
| CS 114-01 |
Network SecurityVulnerabilities, attacks, and mitigations at all layers of the network stack. Public and private key cryptography, confidentiality and authentication protocols, botnets, firewalls, intrusion detection systems, and communication privacy and anonymity. Prerequisite: Prerequisites: Computer Science 15 or graduate standing. Recommendations: Computer Science 40. |
TR 12:00-1:15 Room To Be Announced |
| CS 115-M1 |
Database SystemsFundamental concepts of database management systems. Topics include: data models (relational, object-oriented, and others); the SQL query language; implementation techniques of database management systems (storage and index structures, concurrency control, recovery, and query processing); management of unstructured and semistructured data; and scientific data collections. Prerequisite: COMP 15. |
T 7:00p-8:30p Online (synchronous) |
| CS 115-01 |
Database SystemsFundamental concepts of database management systems. Topics include: data models (relational, object-oriented, and others); the SQL query language; implementation techniques of database management systems (storage and index structures, concurrency control, recovery, and query processing); management of unstructured and semistructured data; and scientific data collections. Prerequisite: COMP 15. |
M 7:00p-8:30p Joyce Cummings Center 140 |
| CS 116-M1 |
Introduction to SecurityA systems perspective on host-based and network-based computer security. Current vulnerabilities and measures for protecting hosts and networks. Firewalls and intrusion detection systems. Principles illustrated through hands-on programming projects. Prerequisite: Comp 15. |
W 5:30p-7:00p Online (synchronous) |
| CS 116-01 |
Introduction to SecurityA systems perspective on host-based and network-based computer security. Current vulnerabilities and measures for protecting hosts and networks. Firewalls and intrusion detection systems. Principles illustrated through hands-on programming projects. Prerequisite: Comp 15. |
TR 4:30-5:45p Room To Be Announced |
| CS 119-M1 |
Big Data "Big Data" deals with techniques for collecting, processing, analyzing and acting on data at internet scale: unprecedented speed, scale, and complexity.
|
M 5:30p-7:00p Online (synchronous) |
| CS 119-01 |
Big Data "Big Data" deals with techniques for collecting, processing, analyzing and acting on data at internet scale: unprecedented speed, scale, and complexity.
|
TR 10:30-11:45 Joyce Cummings Center 180 |
| CS 120-M1 |
Web Programming and EngineeringWeb applications are complex systems that deliver a plethora of functionality to a large number of users, and also exhibit unique behaviors and demands in terms of performance, scalability, usability, and security. Web engineering is an emerging and multidisciplinary process that is used to create quality web applications. This course will discuss the limits of current web technologies, the similarities and differences between web and software engineering, design, information and service architectures, content management, and testing disciplines. Frameworks such as Rails, Spring, and Symfony will be emphasized and used. Projects will involve search, cloud computing, location-based services, and mobile web development. Prerequisite: Comp 15 and Comp 20, or Consent of Instructor. |
T 5:00p-6:30p Online (synchronous) |
| CS 121-M1 |
Software EngineeringSoftware engineering is an engineered discipline in which the aim is the production of software products, delivered on time and within a set budget, that satisfies the client’s needs. It covers all aspects of software production ranging from the early stage of product concept to design and implementation to post-delivery maintenance. This course covers the major concepts and techniques of software engineering including understanding system requirements, finding appropriate engineering compromises, effective methods of design, coding, and testing, team software development, and the application of engineering tools so that students can prepare for their future careers as software engineers. The course will combine a strong technical focus with a project providing the opportunity to obtain hands-on experiences on entire phases and workflow of the software process. Prerequisite: COMP 40, graduate standing, or instructor consent. |
M 7:00p-8:30p Online (synchronous) |
| CS 122-01 |
Parallel Computing(Cross-listed w/ EE 155) Programming modern parallel computer architectures, especially GPUs and multi-core CPUs. Rationale for modern multi-core CPUs. Challenges of multi-threaded programming. High-performance software taking advantage of hardware caches, cache coherency, memory systems and parallel computation. Prerequisite: Recommendations: EE 126 or COMP 40. |
MW 1:30-2:45 Room To Be Announced |
| CS 131-M1 |
Artificial IntelligenceHistory, theory, and computational methods of artificial intelligence. Basic concepts include representation of knowledge and computational methods for reasoning. One or two application areas will be studied, to be selected from expert systems, robotics, computer vision, natural language understanding, and planning. Prerequisite: Comp 15 and either COMP/MATH 22 or 61 or familiarity with both symbolic logic and basic probability theory. |
M 7:30p-9:00p Online (synchronous) |
| CS 131-01 |
Artificial IntelligenceHistory, theory, and computational methods of artificial intelligence. Basic concepts include representation of knowledge and computational methods for reasoning. One or two application areas will be studied, to be selected from expert systems, robotics, computer vision, natural language understanding, and planning. Prerequisite: Comp 15 and either COMP/MATH 22 or 61 or familiarity with both symbolic logic and basic probability theory. |
MW 6:00p-7:15p Room To Be Announced |
| CS 135-M1 |
Introduction to Machine LearningAn overview of methods whereby computers can learn from data or experience and make decisions accordingly. Topics include supervised learning, unsupervised learning, reinforcement learning, and knowledge extraction from large databases with applications to science, engineering, and medicine. Prerequisite: Comp 15 and COMP/MATH 22 or 61 or consent of instructor. (Comp 160 is highly recommended). |
F 6:00p-7:30p Online (synchronous) |
| CS 135-01 |
Introduction to Machine LearningAn overview of methods whereby computers can learn from data or experience and make decisions accordingly. Topics include supervised learning, unsupervised learning, reinforcement learning, and knowledge extraction from large databases with applications to science, engineering, and medicine. Prerequisite: Comp 15 and COMP/MATH 22 or 61 or consent of instructor. (Comp 160 is highly recommended). |
TR 12:00-1:15 Room To Be Announced |
| CS 136-01 |
Statistical Pattern RecognitionStatistical foundations and algorithms for machine learning with a focus on Bayesian modeling. Topics include: classification and regression problems, regularization, model selection, kernel methods, support vector machines, Gaussian processes, Graphical models. Prerequisite: Prerequisites: MATH 13 or 42; MATH 46 or 70; EE 104 or MATH 166; CS 40 or CS 105 or a programming course using Matlab. CS 135, or CS 131 are recommended but not required. Or permission of instructor. |
TR 1:30-2:45 Room To Be Announced |
| CS 138-M1 |
Reinforcement Learning"Reinforcement learning problems involve learning what to do — how to map situations to actions — so as to maximize a numerical reward signal." - Sutton and Barto ("Reinforcement Learning: An Introduction", course textbook)
Approved as a category 2 elective in Data Science (analysis and interfaces). Prerequisite: Students are expected to be proficient programmers in at least one of the following languages: C++, Java, or Python. Prior coursework (or experience) in Artificial Intelligence and/or Machine Learning is highly recommended, but not required. |
R 7:30p-9:00p Online (synchronous) |
| CS 140-01 |
Advanced Topics Computer Architecture(Cross-listed w/ EE 156) Modern computer architecture, starting from basic 5-stage pipelines and progressing to out-of-order superscalar processors, multicore processors, and heterogeneous processors. Techniques to maximize single-thread performance within the constraints of memory technology, power consumption, and the inherent instruction-level parallelism of applications. Current and future challenges faced by computer architects and computer-system designers. Discussion of research papers. Prerequisite: Recommendation: EE126/COMP146 or COMP40 |
MWF 10:30-11:45 Room To Be Announced |
| CS 141-01 |
Probabilistic RoboticsTechniques for probabilistic state estimation and their application to problems such as robot localization, mapping, perception, and planning in the context of Human-Robot Interaction. Machine learning and computer vision techniques commonly used by robots interacting with humans. Recommendations: Proficiency in C/C++ or Python |
TR 10:30-11:45 Room To Be Announced |
| CS 150-01 |
Logic for AI (or CS + AI) |
MW 3:00-4:15 Room To Be Announced |
| CS 150-02 |
Entrepreneurship for Computer Scientists(Cross listed with ELS 194-02) 150 ECS is an introductory entrepreneurship course for Computer Science students. The course provides an overview of entrepreneurship, develops an entrepreneurial perspective, and provides a framework for learning the fundamentals of the essential elements of entrepreneurial ventures, specifically directed toward software-related industries and products. Students learn how to develop their technical ideas into potential business opportunities, and to explore their likelihood of becoming viable businesses. They learn how to do market research, to develop go-to-market strategies, value propositions and to differentiate their products or services from actual or potential competitors. The course consists of a balance of lectures, projects, case studies and interaction with entrepreneurs and computer scientists who participate in entrepreneurial organizations. |
T 5:15p-8:15p Room To Be Announced |
| CS 150-03 |
Theoretical CompSci ToolkitIn this course, we will explore various methods and techniques that are useful in various areas of computation theory. We will see how combinatorial and probabilistic technique, polynomial approach, Fourier analysis and linear algebraic technique can be applied to solve various problems in theoretical computer science. We will illustrate the techniques by the examples in theory of algorithms, computational complexity, learning theory, property testing and other areas. Prerequisite: Prior completion of CS 61 or graduate standing. Recommendations: CS 170 or equivalent is highly recommended, but is not required. CS 160 or equivalent would be helpful, but is not necessary. MATH 70 (Linear algebra) is recommended to have prior to this course, but this is not a prerequisite. |
TR 12:00-1:15 Room To Be Announced |
| CS 151-01 |
Debugging Cloud ComputingCloud computing, which is the practice of renting software and hardware services from providers who run large-scale data centers, has become critical to modern society. We rely on software running within cloud data centers when shopping (e.g., at Amazon), when conducting financial transactions (e.g., at an online broker), when collaborating at work (e.g., using Google Docs), and even when playing games (e.g., Fortnite). Failures or performance problems within these data centers or the software running on them can have widespread effects and be devastating. In this course, we will examine failures in cloud environments and discuss important research on tools that use systems knowledge, machine learning, and statistics to help engineers diagnose them. To provide students with necessary background, we will start with a brief introduction to cloud computing and the software systems that make cloud computing possible. The course will involve reading research papers, homework assignments, and coding-based projects. It is recommended for graduate students and advanced upper-level undergraduates. Prerequisite: CS 15 and CS 40 or graduate standing required; CS 111 recommended. |
MW 1:30-2:45 Room To Be Announced |
| CS 151-02 |
Quantum Computer ScienceThe universe at the sub-atomic scale is governed by quantum mechanical laws, which fundamentally differ from classical laws of motion. What is the nature of computation in such scales? Can we use quantum mechanical particles to perform computations? These are the core questions of the field of quantum computing. In this course, we present an elementary-level introduction to the computer science foundations of quantum computing. Topics include Hilbert spaces, quantum entanglement, quantum measurements, quantum circuits, quantum protocols and algorithms, Hamiltonians and the ground state problem, and quantum error-correcting codes. Students from different areas of engineering and sciences, such as computer science, physics, electrical engineering, mathematics, or chemistry, who wish to learn about the computer science foundations of quantum computers can benefit from this class. The main focus of this course is on the theoretical foundations of quantum computing; mathematical enthusiasm and knowledge in areas such as linear algebra, algorithms, discrete mathematics, and calculus are required. Prerequisite: Math 34 and Math 70 and one of (CS 61 or Math 61 or Math 65) |
MW 1:30-2:45 Room To Be Announced |
| CS 151-03 |
Privacy, Security, and DataOrganizations today collect and analyze massive amounts of information for important decision-making applications. However, these large-scale analytics often compromise sensitive user information, such as medical or financial records. In this course, we will survey and apply state of the art techniques in privacy-preserving data science, such as differential privacy and secure multi-party computation, to learn how to build systems that provide useful results while still respecting user privacy. Students will be expected to read research papers, give in-class presentations, and complete a final project utilizing real-world data. Prerequisite: CS 115-level knowledge; some experience with Python, C++, and basic probability. |
MW 4:30-5:45p Room To Be Announced |
| CS 151-04 |
Anonymous Communications TheoryWe know how to communicate a message so that only the recipient can read the message. (We can just encrypt the message.) But how can we communicate over the Internet without anyone learning *who* we are communicating with? Anonymous channels can help the Iranian protester who wishes to inform the world what is happening in the streets of Tehran by tweeting videos and the netizen in Moscow who wants to read the BBC news (currently banned in Russia). We could use Tor (i.e., “The onion router,” inspired by Chaum's onion routing idea) or VPN, but both are easily blocked, and neither guarantees privacy from the adversary with full view of the network traffic (e.g., a standard model for a resourceful ISP- or AS-level adversary). In this course, we present cryptography-style definitions of anonymity and study state-of-the-art techniques for achieving provable anonymity. Prerequisite: Prerequisites: Math 21 and CS 170 or graduate standing. |
MW 10:30-11:45 Room To Be Announced |
| CS 151-05 |
Addressing Cyber Threats, VulnerabilitiesComputer and information security can be understood as a discipline dealing with risk to computer and information systems and the data they process. This class will cover the analysis, assessment, understanding and management of risk and its components (threat, threat actor, vulnerability, impact, likelihood) from a technical perspective as well as a managerial one: • Understanding the concepts of threat, threat actor, vulnerability, likelihood and impact in the context of risk. • Key technical and non-technical threats, vulnerabilities and risks: • Hardware vulnerabilities (e.g. Spectre & Meltdown) and mitigations • Software vulnerabilities (OWASP Top 10) and mitigations • Network and Architecture vulnerabilities and mitigations • Threats, vulnerabilities, and risks related to physical factors, human factors, and human-computer interaction • The real world: where resources are limited and all the above factors interact • Risk in an organizational context • Quantitative and qualitative methodologies (e.g. FAIR, threat modeling) to collect data on, and understand, risk and its components. • How to decide what (and how) to fix or address vulnerabilities, threats, and risks • How to manage threats, vulnerabilities, and risks. How to deal with risks, e.g. how to mitigate technical issues. Prerequisite: CS 201, CS 203, CS 15, or CS graduate standing |
TR 10:30-11:45 Room To Be Announced |
| CS 152-01 |
Sports AnalyticsThis course plots the various intersection points between Sports Analytics and Computer Science, including pit stops in machine learning, computer vision, and computational geometry among others. Students will get hands-on experience working with real data and real problems for which there may or may not be absolute right or wrong answers. Assessments will be based on the students' ability to correctly implement the empirical strategies discussed in class, clearly explain their methods, and creatively transform raw data into actionable insights. Prerequisite: Basic working knowledge of major US sports such as Baseball, Football, Soccer, and Basketball is assumed. |
TR 10:30-11:45 Room To Be Announced |
| CS 152-02 |
Computer VisionThis course is an introduction to low and intermediate level Computer Vision. We will learn how to design algorithms that process visual scenes to automatically extract information. The course will cover fundamental principles and important applications of computer vision, including image formation, processing, detection and matching features, image segmentation, and multiple views. |
MW 4:30-5:45p Room To Be Announced |
| CS 160-M1 |
AlgorithmsIntroduction to the study of algorithms. Strategies such as divide-and-conquer, greedy methods, and dynamic programming. Graph algorithms, sorting, searching, integer arithmetic, hashing, and NP-complete problems. Prerequisite: COMP 15 and COMP/MATH 22 or 61. |
W 7:00p-9:00p Online (synchronous) |
| CS 160-01 |
AlgorithmsIntroduction to the study of algorithms. Strategies such as divide-and-conquer, greedy methods, and dynamic programming. Graph algorithms, sorting, searching, integer arithmetic, hashing, and NP-complete problems. Prerequisite: COMP 15 and COMP/MATH 22 or 61. |
TR 9:00-10:15 Room To Be Announced |
| CS 166-01 |
Computational Systems BiologyComputational modeling of complex biological systems to analyze their emergent properties and understand or predict system behavior. Molecular and protein modeling in the context of biochemical networks. Application of these models across a select set of applications such as metabolomics, gut microbiome analysis, modularity analysis, flux balance analysis, and biological discovery. Introductions to machine learning, linear systems, and statistical concepts that are commonly used in systems biology. |
MW 1:30-2:45 Room To Be Announced |
| CS 167-01 |
Computational BiologyComputational challenges in molecular biology, including sequence alignment and comparison, genomic annotation, micro array data analysis, and proteomics. Underlying computational techniques such as dynamic programming, hidden Markov models, statistical analyses, and search and optimization procedures. Prerequisites: Comp15 and at least one CS course numbered 100 or higher. Prerequisite: Comp15 and at least one CS course numbered 100 or higher. |
TR 10:30-11:45 Room To Be Announced |
| CS 168-01 |
Convex Optimization(Cross-listed with EE 109) Convex optimization theory and algorithms. Convex sets, convex functions and convex optimization problems; duality theory and optimality conditions; algorithms for solving convex problems including descent, gradient descent, Newton and interior point methods. Examples of application taken from communications, signal processing and other fields. Project. Prerequisite: Math 70 or graduate standing. |
TR 10:30-11:45 Room To Be Announced |
| CS 170-M1 |
Computation TheoryModels of computation: Turing machines, pushdown automata, and finite automata. Grammars and formal languages including context-free languages and regular sets. Important problems including the halting problem and language equivalence theorems. Prerequisite: COMP 15 and COMP/MATH 22 or 61. |
R 5:30p-7:00p Online (synchronous) |
| CS 170-01 |
Computation TheoryModels of computation: Turing machines, pushdown automata, and finite automata. Grammars and formal languages including context-free languages and regular sets. Important problems including the halting problem and language equivalence theorems. Prerequisite: COMP 15 and COMP/MATH 22 or 61. |
TR 1:30-2:45 Room To Be Announced |
| CS 171-01 |
Human-Computer InteractionIntroduction to human-computer interaction, or how computers communicate with people. Methodology for designing and testing user interfaces, interaction styles (command line, menus, graphical user interfaces, virtual reality), interaction techniques (including use of voice, gesture, eye movement), design guidelines, and user interface management software system. Students will design a small user interface, program a prototype, and test the result for usability. Prerequisite: COMP 15 |
MW 1:30-2:45 Room To Be Announced |
| CS 183-01 |
Privacy in the Digital AgeThis course will provide an introduction to the legal and regulatory protections for personal data and the evolving nature of digital surveillance and online privacy. The class will cover public and private sector threats to privacy and look at how different countries have implemented both privacy protections and surveillance regimes that affect individual Internet users and govern the collection of their personal data. Topics to be covered include encryption policy, law enforcement access to data, intelligence agency access to data, the European General Data Protection Regulation, the Electronic Communications Privacy Act, domestic and international lawful interception of data, protections for geolocation data and other forms of metadata, and facial recognition technology. This course will primarily focus on law and policy measures related to privacy but it will also cover some basic technical material related to cryptography and networking that is relevant to understanding the impacts of different policies. |
|
| CS 185-01 |
Computing for Developing RegionsAn interdisciplinary approach to the role of computing technologies in developing regions. Low-cost communication infrastructure; socially relevant technologies for education, healthcare, and governance; and the use of technology by underserved communities and populations in developing regions. Problems and existing solutions covered through case studies. Group projects on designing, implementing, and evaluating a solution. Recommendations: CS10 or CS11 or some background in computer science and/or technology. Prerequisite: Completion of COMP 15 or graduate standing |
T 6:30p-9:00p Room To Be Announced |
| CS 203-01 |
How Systems FailFailure of computer systems within the larger context of complex systems, including the power grid and aviation. Failures of algorithms and protocols, engineering and implementation, systems and applications, people and culture. Attacks, attack recovery, security, privacy, and attribution. Case studies of failures and attacks, including distributed denial of service, Meltdown, Spectre, and spear-phishing attacks. A recitation and graduate-level assignments are required. Four credit hours. Prerequisite: Graduate standing in a discipline other than Computer Science, Data Science, Bioinformatics, Cognitive Science, or Human-Robot Interaction. |
TRF 12:00-1:15 Room To Be Announced |
| CS 239-01 |
Ethics for AI, Robotics, and Human Robot InteractionTechnical challenges of endowing autonomous artificial agents with normative principles that will allow them to operate successfully in human societies. Algorithmic approaches in artificial agents (rule-based, utility-based, behavior-based, etc.) and their links to philosophical foundations of the main ethical theories (virtue ethics, deontology, utilitarianism). Conceptual and mathematical analysis of assumptions underlying each algorithmic approach as well as implementation in agent-based simulations. Functional and performance tradeoffs of the algorithms and their implications for autonomous robots and AI systems. Mathematical and computational challenges of the different proposals for "implicit" and "explicit" ethical agents, including inverse reinforcement learning, verification-based approaches, and model checking. Prerequisite: CS MS or PhD or DS MS or HRI MS |
|
| DS 98-01 |
Senior Capstone Project in Data Science IIA continuation of COMP 87. Analysis of the problem proposed in COMP 87 is completed and a final paper summarizes data gathered, analytic results, lessons learned, and opportunities for future study. Prerequisite: COMP 87 |
TR 7:30p-8:45p Room To Be Announced |
fall 2023