COSC 005 BBB Web Design I 3 Credits
Brave Behind Bars (BBB) is an introductory web design and career-readiness program for incarcerated students. The curriculum covers the fundamentals of HTML, CSS and JavaScript. The class includes lectures and training on presentation and public speaking. Students are also introduced to relevant technology-facing career paths by guest lecturers. Throughout this course, participants are challenged to think critically, collaborate with others, and design empathetically as they learn how to code and build a tech solution. Through processes such as self-exploration, research, and design-thinking, participants are enabled to use coding to make a difference about an issue they care about. The course revolves around a capstone project, where students build websites that address challenges impacting their communities. At the end of the course, participants step away exposed to empathetic technology and empowered with a greater sense of self-efficacy regarding the pursuit of future careers and educational opportunities.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 1001 Introduction to Computing 3 Credits
This course introduces the principle elements of computer science. Students develop computational thinking skills that are fundamental to inquiry in all disciplines. They furthermore gain a foundation in core computer science concepts (abstraction, algorithms, analysis, data, networks and programming). In solving computational problems, students learn to recognize and value a potential solution’s efficiency, elegance and correctness. They will also explore the relevance of computing on both the personal and societal levels. Classes meet once per week for lectures and once per week for lab sessions. This course may be used to fulfill the math/computer science portion of the Gen Ed Math/Science requirement.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 1005 BBB Web Design I 3 Credits
Brave Behind Bars (BBB) is an introductory web design and career-readiness program for incarcerated students. The curriculum covers the fundamentals of HTML, CSS and JavaScript. The class includes lectures and training on presentation and public speaking. Students are also introduced to relevant technology-facing career paths by guest lecturers. Throughout this course, participants are challenged to think critically, collaborate with others, and design empathetically as they learn how to code and build a tech solution. Through processes such as self-exploration, research, and design-thinking, participants are enabled to use coding to make a difference about an issue they care about. The course revolves around a capstone project, where students build websites that address challenges impacting their communities. At the end of the course, participants step away exposed to empathetic technology and empowered with a greater sense of self-efficacy regarding the pursuit of future careers and educational opportunities.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 1010 Intro to Comp Science: Python 3 Credits
This course is intended for non-majors seeking an introduction to computer science and Python programming. The course covers the following topics: basic data types in Python, variables and constants, input and output, Python reserved words and built-in functions, operators, conditional control structures, repetition control structures, basic file operations, user-defined functions, value parameters, lists, scope rules, importing packages, elementary data processing and visualization, and elementary software engineering principles.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 1011 Data Analytics Visualization 3 Credits
This course introduces the fundamental concepts and tools of data preparation, data analytics, and visualization. Using lectures and assignments, students will learn how to collect, evaluate, scrub, describe, and analyze datasets of various forms as well as visualize. The course will cover various statistical tools used in data analytics to build and test models to discover insights and make predictions.
This course is intended for non-majors seeking a general overview and practical knowledge on handling, analyzing, and visualizing data for better decision making. The course covers the following three modules: (1) Data Management (DM): Data quality assessment, data forms, data scrubbing, data collection, data storage, data integration, data transformation. (2) Data Analysis (DA): descriptive analytics, predictive analytics, text analytics, supervised and unsupervised AI & machine learning techniques, Pandas, NumPy/SciPy. (3) Data Visualization (DV): Excel, tableau, Python, seaborn/ggplot, matplotlib, Box and Whisker Plot, Scatterplot, Timeline, histograms, Bar/Column/Pie/Line charts.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 1012 Intro to Prog in the Age of AI 3 Credits
This course introduces computer science and Python programming for students from all backgrounds, emphasizing computational thinking and effective collaboration with AI programming tools. Topics include basic data types, variables, input/output, operators, conditional and repetition control structures, functions, lists, file operations, data processing, and software engineering principles. In addition to learning the building blocks of coding, students will explore how modern AI tools can be incorporated into the programming process. Assignments and projects will emphasize both hands-on coding practice and thoughtful use of AI as a collaborator, debugger, and learning aid. By the end of the course, students will be able to write Python programs independently, understand core concepts in computer science, and critically evaluate the role of AI in software development and problem solving.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 1015 The Science of AI 3 Credits
This course focuses on the basics of AI - how AI systems actually work, including their technical foundations, capabilities, and limitations. The course covers core machine learning concepts including state-of-the-art deep learning technologies, together with the mathematical and computational substrates that form the foundation of modern AI systems.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 1016 The World of Data 3 Credits
Many aspects of our lives has been converted to data. Once our lives and the world around us are datafied, the data can be converted into new forms of information and insight. In this class, we will learn about the basics of data science from data collection and cleaning to descriptive and predictive data analysis to visualization and storytelling. We will contemplate the insights we can learn about data and discuss principles for identifying and creating useful data that can be assessed to give insight into the world we live in. We will also discuss the limitations and biases associated with data and the ethical challenges that arise when using certain types of data. Through a data-centric lens, we will also learn the basics of python programming. No programming experience is required.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 1020 Computer Science I 3 Credits
This course is intended for computer science majors and minors, and other students with a serious interest in learning C++ programming. The course covers the following topics: fundamental data types, the C++ string class, variables and constants, and their declaration, console input/output (cin/cout), assignment operators, arithmetic, relational, and Boolean operators, conditional control structures, repetition control structures, basic file operations, user-defined functions, value and reference parameters, scope rules, name precedence, function overloading, template functions, elementary software engineering principles, the Standard Template Library (STL), the vector class, elementary searching and sorting, user-defined classes, operator overloading, pointers, self-referential classes, dynamic object creation and destruction, linked lists, and recursion. COSC-1020 followed by COSC-1110 and COSC-1030 is the introductory sequence for the major and minor programs.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 1021 Game Development 3 Credits
This course will engage computer game development at both critical and practical levels. At the theoretical level, this course will examine games as a procedural media form, akin to film or television, but reliant on programmed interactions. Class time will typically begin with a 30-45 minute lecture on a topic in a related discipline that could range from the purely functional (how to organize assets in your workflow, commenting code) to the technical (how does collision detection work?) to the theoretical (what do games have in common with other media and designed artifacts). The remainder of class time will be devoted to questions, demonstrations, and tutorial exercises.
Students will be required to demonstrate steady progress in the development of audio and 3D assets, programming, and design methods for unique games, by hitting agreed-upon development milestones. Grades will be given based on the complexity of the tasks achieved and overall progress in understanding and utilizing the development pipeline. The course will be directed toward beginning students with the potential for advanced students to work ahead.
The Unity development environment is an industry standard game development platform that allows game makers to deploy games on a wide range of devices and media including mobile, web, and VR. Unity is free for students and students will be expected to use and maintain their own Unity installation (computers will not be provided). Because of the compressed summer schedule, students should expect to commit a minimum of two hours per day outside of class time to complete assignments.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 1030 Computer Science II 3 Credits
COSC-1030 surveys advanced topics of C++ programming and introductory concepts of data structures. It is intended for computer science majors, minors, and other students with a serious interest in learning C++ programming. The course covers program design, organization, pointers, self-referential classes, dynamic object creation and destruction, linked lists, recursion, inheritance, virtual methods, polymorphism, template classes and functions, exception handling, C-style arrays, bit operations, elementary algorithm analysis, big-Oh notation, abstract data types, stacks, queues, deques, lists, vectors, sequences, priority queues, searching, and sorting.
COSC 1020 followed by
COSC 1110 and
COSC 1030 is the introductory sequence for CS majors, CS minors, and other students with a strong interest in computer science.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 1110 Math Methods for Comp Sci 3 Credits
This course, designed to be taken concurrently with COSC-1030, covers mathematical tools and principles that are valuable to the computer scientist. Topics include: propositional and predicate logic; mathematical proofs, including induction; counting and basic probability theory; logarithmic and exponential functions; elementary graph theory; and "Big-O" notation and asymptotics.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 1910 Networks, Crowds, and Markets 3 Credits
This course explores the impact of "connecteness'" of modern society. Social, technological and natural interactions can be represented using links in a network formed by people and other entities. This network impacts many phenomenon, including the manner in which opinions and epidemics spread through society. This course will explore topics such as spread of opinions, the small-world phenomenon, robustness and fragility of financial markets, and the structure of the Web. This course may be used to fulfill the math/computer science portion of the Gen Ed Math/Science requirement.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 2010 Data Structures 3 Credits
This course is designed as a second-year course for majors and minors. The main goals of the course are to present a variety of schemes for structuring data so that computer programs can efficiently insert, retrieve, modify, and remove information, to understand and express these operations as formal algorithms, and to analyze these algorithms formally. Using asymptotic analysis, the focus is on the analysis of worst-case running times of algorithms, although the course also covers the analysis of the average-case, amortized, and expected running times for selected algorithms. The data structures that the course surveys include unordered maps, hash tables, general trees, binary trees, ordered maps, search trees, self-balancing trees, multi-way trees, priority queues, heaps, sets, and graphs. Finally, the course reviews elementary sorting algorithms, presents heap-sort, and covers the formal analysis of their running times.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 2020 Advanced Programming 3 Credits
The objective of the course is to develop a mastery of object-oriented programming using the Java programming language and to expose students to advanced programming and basic software engineering concepts important for upper-division courses. Topics include, event-driven programming, graphical user interfaces (GUIs), human computer interaction, 2/3D Graphics, security, multimedia, exception handling, threads, sockets, networking, unit testing, mobile device programming, and the MapReduce programming model.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 2055 GPU Computing with Python 1 Credit
With the emergence of Deep Learning, graphics processing units (GPUs) have become the accelerator of choice for speeding up a variety of software applications. To fully exploit the GPU's potential, however, a programmer typically needs to learn low-level (often C/C++) software libraries, identify parallelism, and understand the GPU's hardware architecture. Fortunately, thanks to recent developments with Python and associated open source libraries, we can now gloss over some of the technical details and write GPU-enabled code via Python while stressing developer productivity and ease of use. GPU Computing with Python is a hands-on, project based course. Students will be exposed to GPU basics, including a brief introduction to the traditional programming model in CUDA, along with best-practices for using GPU-enabled open source software to build and profile high performance applications. While many examples will be tied to the signal processing domain, the goal of this course is for students to GPU-accelerate a problem of choice and to provide supporting evidence including profiler output and trade studies.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 2310 Computer Organization 3 Credits
In this course, students will learn about the building blocks of computers. This class introduces students to concepts that help them understand how computers operate and how they are designed. The course takes a bottom-up approach, beginning with information representation and basic logic gates, then systematically introducing new concepts to help students understand computer organization and assembly language programming. In particular, some of the main topics covered in this class include information representation and manipulation, logic elements and combinational logic, sequential logic and memory, machine language and instruction set architecture, basic computer organization, and assembly language and programming constructs.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 2950 CS Society: Interdisc. Expl. 3 Credits
Some of the greatest advances in computer science – and in science and technology in general – are the result of explorations spanning computer science and other disciplines. In this course, students will explore the intersection between computer science and other disciplines. Through both instructional-guided study and self-study, students will explore foundational and cutting-end results from the social sciences and other disciplines and then explore the relationship between those results and past, current, and possible future directions in computer science. Throughout the course, students will produce writings reflecting their findings and offering directions for consideration for future computer scientists as well as future innovators in other disciplines.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 3010 Programming Languages 3 Credits
This course acquaints the student with different classes of programming languages, criteria for language selection in various application areas, and the fundamentals of language design. Formal notations for language definition will be introduced. Run-time support for each class of language will be examined. The student will be required to write an interpreter to become familiar with some of the concepts covered in the course.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 3020 Operating Systems 3 Credits
This course studies the software systems that provide the interface between the computer system hardware resources and the users of the system. This interface is composed of a large collection of programs that provide simplified and uniform access to information storage (data and programs on tape, disk, and in memory), processing elements (CPUs and remote computers), input/output devices (telecommunications, keyboards, mice, video displays, printers, etc.), and data acquisition and equipment control devices. Topics include, processes and threads of execution, concurrent process synchronization, concurrent access to hardware resources, file systems, memory management and virtual memory, job scheduling, system modeling and performance evaluation, network communication and protocols, and computer and network security. A variety of example operating systems of different types will be examined and their characteristics compared.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 3030 Systems Programming 3 Credits
In this course students will gain the understanding and skills needed to develop reliable and efficient systems software. Topics include: system performance observation; advanced shell scripting; processor-level parallelism; program performance as it relates to the hardware memory hierarchy; program performance analysis and optimization for libraries and services; and an introduction to a memory-safe systems language.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 3200 Introduction to Algorithms 3 Credits
This course explores various techniques used in the design and analysis of computer algorithms. Starting with the divide-and-conquer technique, the course covers various general approaches such as the greedy method and dynamic programming. Depending on time, various examples from the following problem domains will be considered: graph theory, shortest path, max-flow, matching, FFT, data compression, cryptography, and computational geometry. The notions of NP-completeness and computability will be introduced. If time permits, students will be introduced to online and parallel algorithms.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 3230 Gems of Theoretical CS 3 Credits
"How do you send a letter to a stranger that only she can read? How can you prove that you located a picture of Waldo in a complex image without revealing any information about his position? How do you match students with schools (and win the Nobel prize for doing so)? What can a computer learn, and what can a computer never solve? We will answer these and many other questions by using wonderful ideas from Theoretical Computer Science."
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to Undergraduate level students.
COSC 3240 Algorithms and Adversaries 3 Credits
How do you answer questions about massive data sets in real-time, while storing only a tiny fraction of the data? How can someone you don't trust convince you they know a secret, without revealing the secret to you? Is there a mathematical justification for the philosophical principle of Occam's razor? We will answer these questions (and others) using tools from theoretical computer science. We will focus on ideas that have made their way into practice, either because modern computer systems require handling huge amounts of data, or because they require operating in highly adversarial environments (such as public blockchains).
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 3250 Introduction to Theory 3 Credits
Topics covered are drawn from the following: finite automata, formal languages, machine models for formal languages, computability and recursion theory, computational complexity, and mathematical logic applied to computer science.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 3260 Distributed Systems 3 Credits
A growing amount of computing now happens on vast collections of networked devices -- from data centers to peer-to-peer networks. In this course, we will study the theory necessary to design and analyze algorithms for these distributed systems. The student will learn, among other topics, about the algorithms that help Google tame its vast data centers, and those that make possible popular peer-to-peer networks. More generally, the student will develop the skills needed to address the many algorithmic challenges that face computer scientists in an increasingly distributed world of computing.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 3270 Distributed Algorithms 3 Credits
Traditional computer science emphasizes the design and analysis of sequential algorithms, which are meant to be executed on a single computing device. With the rise of network technology, however, came a new algorithmic scenario: multiple computing devices, connected by some sort of communication channels or shared objects, that must work together to solve problems. These distributed systems require distributed algorithms.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
Equivalent to COSC 242
Course registration restrictions: Enrollment is limited to Undergraduate level students.
COSC 3290 Introduction to Cryptography 3 Credits
Modern cryptography studies techniques for facilitating interactions between distrustful entities. Today, with the advent of the Internet, these techniques become indispensable – enabling, for instance, anonymous electronic elections, privacy-preserving electronic auctions, internet banking and more. In this course, we will introduce some of the fundamental concepts, and protocols with rigorous proofs of security.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 3400 Algorithms for NLP 3 Credits
Human language technologies increasingly help us to communicate with computers and with each other. But every human language is extraordinarily complex, and the diversity seen in languages of the world is massive. Natural language processing (NLP) seeks to formalize and unpack different aspects of a language so computers can approximate human-like language abilities. In this course, we will examine the building blocks that underlie a human language such as English (or Japanese, Arabic, Tamil, or Navajo), and fundamental algorithms for analyzing those building blocks in text data, with an emphasis on the structure and meaning of words and sentences. Students will implement a variety of core algorithms for both rule-based and machine learning methods, and learn how to use computational linguistic datasets such as lexicons and treebanks. Text processing applications such as machine translation, information retrieval, and dialogue systems will be introduced as well.
This course is designed for undergraduates who are comfortable with the basics of discrete probability and possess solid programming skills, including the ability to use basic data structures and familiarity with regular expressions. COSC-160: Data Structures is the prerequisite for CS students, and LING-001 is the prerequisite for Linguistics students. Students that are new to programming or need a refresher are directed to LING-362: Introduction to NLP. The languages of instruction will be English and Python.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 3430 Intro to Data Science 3 Credits
Data Science - Piecing Together the Data Around Us This course teaches students how to synthesize disparate, unstructured data to better understand/characterize the world around us, and in some cases, to draw meaningful inferences. Topics covered include: an overview of the history of data science, discussion of successful data science cases, an introduction to big data analytics, the analytics lifecycle, data preparation, data cleaning, basic analytic methods including basic clustering and inference models, and visual analytics.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 3440 Deep Reinforcement Learning 3 Credits
Deep reinforcement learning is a machine learning area that learns how to make optimal decisions from interacting with an environment using deep neural networks. An intelligent agent observes the consequences of its action from the environment and alters its behavior to maximize the expected return. We study algorithms and applications in deep reinforcement learning. Topics include Deep neural networks, Markov decision processes, policy gradient methods, Q-Learning (DQN), Actor-Critic, Imitation Learning, and other advanced topics. The course has lectures, readings, programming assignments, and exams.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 3450 Artificial Intelligence 3 Credits
Artificial Intelligence (AI) is the branch of computer science that studies how to program computers to reason, learn, perceive, and understand. The lecture portion of the class surveys basic and advanced concepts and techniques of artificial intelligence, including search, knowledge representation, automated reasoning, uncertain reasoning, and machine learning. Specific topics include symbolic computing, state-space search, game playing, theorem proving, rule-based systems, Bayesian networks, probability estimation, rule induction, Markov decision processes, reinforcement learning, and ethical and philosophical issues. Applications of artificial intelligence are also discussed in domains such as medicine and computer security. Students complete midterm and final exams, and five programming projects using the Java programming language.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 3460 Intro to Machine Learning 3 Credits
This undergraduate course surveys the major research areas of machine learning focusing on classification. Through traditional lectures and programming projects, students learn (1) to understand the foundations of machine learning, (2) to design and implement methods of machine learning, (3) to evaluate methods of machine learning, and (4) to conduct empirical evaluations of multiple methods of machine learning. The course compares and contrasts machine learning with related endeavors, such as statistical learning, pattern classification, data mining, and information retrieval. Topics include instance-based approaches, naive Bayes, decision trees, rule induction, linear classifiers, support vector machines, neural networks, ensemble methods, evaluation, and applications. Students complete five programming projects using Java. There are midterm and final exams.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 3470 Deep Learning 3 Credits
This course will focus on building state-of-the-art systems in the intersection of deep learning and computer vision. Student will be introduced to deep architectures and learning algorithms for various discriminative and generative computer vision tasks. The course will demonstrate how such tasks are main building blocks in processing images and videos for applications such as self-driving cars, healthcare, surveillance, and human-computer interfaces.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 3510 Intro to Database 3 Credits
This course covers the theoretical design principles of modern database systems, the data structures and algorithms used in their implementation, and the techniques and tools used in designing databases. It is a comprehensive introduction to relational database modeling, relational design principles based on functional dependencies and normal forms, query languages including SQL, and database optimization techniques (indexing, views, and integrity constraints).
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 3570 Big Data Analytics 3 Credits
The growth of the Web and the improvements in data creation, collection, and use have lead to tremendous increase in the amount and complexity of the data that a search engine needs to handle. "Big data" presents challenges to search engines from three perspectives: bigger data volume, higher data complexity, and faster data change rate. The increase of the magnitude and complexity of the data has become a major drive for new data analytics algorithms and technologies that are scalable, highly interactive, and able to handle complex and dynamic information seeking tasks in the big data era. In this class, we will focus on text retrieval algorithms and programming based on Big Data. We will cover programming models that allow us to easily distribute computations across large computer clusters. In particular, we will teach Apache Spark, which is an open-source cluster computing framework that has soon become the state-of-the-art for big data programming. In contrast to Hadoop's MapReduce paradigm, Spark's in-memory primitives provide performance up to 100 times faster for certain applications. Spark provides clean API in JAVA, Scala, Python and R. This course will provide an introduction to Spark, focusing specifically on search engine design upon Spark and "thinking at scale".
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 3590 Data Mining 3 Credits
This course covers concepts and techniques in the field of data mining. This includes both supervised and unsupervised algorithms, such as naive Bayes, neural network, decision tree, rule based classifiers, distance based learners, clustering, and association rule mining. Various issues in the pre-processing of the data are addressed. Text classification, social media mining, and recommender systems will be addressed. The students learn the material by building various data mining models and using various data pre-processing techniques, performing experimentation and provide analysis of the results."
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 3610 Computer Networks 3 Credits
This course is an undergraduate-level treatment of the concepts and principles of data communications and computer networking. Topics covered include network architecture and layering, packet and circuit switching, addressing, intra- and inter-networking, routing protocols, network management, network applications, and recent advances in computer networks. This course will involve a combination of homework assignments, paper readings, and programming projects.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 3720 Sociotechnical Security 3 Credits
Human factors ranging from individual human behavior through societal structures both impact and are impacted by digital security and privacy. In this course, you will learn about the role of human factors in the efficacy of security and privacy systems, including identifying common failure patterns. You will also investigate how digital systems can impact the human experience of safety. That is, how digital systems can threaten or enhance individual and societal-level security and privacy. We will explore a range of topics including authentication, access control, mental models of encryption and anonymity, security warnings, spam, reidentification of individuals from public data, online hate and harassment, and digitally-facilitated intimate partner violence. You will learn and apply human-centered and measurement research methods in the context of security and privacy including qualitative interviews, quantitative surveys, usability testing, internet measurement, and statistical data analysis.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 3810 Handheld Device Programming 3 Credits
This course covers Android/IOS programming. The major topics include: GUIs, layouts, menus, resource files, events, touch/gesture processing, accelerometer and motion event handling, images, video, audio, graphics, animation, maps, geo-location, threading, web services, timers, supporting various screen sizes/resolutions, and more. We will write Apps for Android phones/watches, iPhone, and Apple Watch.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 3910 CSES Capstone 3 Credits
The aim of this course is to help students integrate their knowledge of CS methods and practices with ethical commitments to social responsibility. A key goal of the course is to scaffold students’ practice at integrating ethical commitments and social responsibility into the specific technical work of developing data and digital applications in CS. Human-centered and values-driven design methodologies will be taught and used to form the foundation of student-chosen projects.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to students with a major in Comp Sci, Ethics, Society, Comp Sci, Ethics, Society, Comp Sci, Ethics, Society or Comp Sci, Ethics, Society.
COSC 4410 Computer Vision w/ Image Proc 3 Credits
Computer Vision with Image Processing (CVIP) is an introductory course that examines the formation of digital images and basic techniques used to enhance and manipulate digital images, which include image filtering, edge detection and segmentation. The second part of the course focuses on computer vision, namely models used to describe image features and descriptors, classification and recognition. A basic understanding of statistics, linear algebra and programming is expected as students will complete assignments requiring image enhancement techniques and machine learning models for detection and recognition.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 4415 Intro to Computer Graphics 3 Credits
This course is an introduction to computer graphics. The material covered includes the fundamental concepts of 2D and 3D computer graphics. Topics include rendering geometric primitives, simple illumination, shading, texturing, surface removal, image processing, and 2D/3D graphic transformations (linear algebra). This course is applied and requires students to develop programs that render realistic 3D geometric primitives, complex shapes and 3D scenes. The primary development language is JavaScript and the OpenGL/WebGL graphic framework. Prior knowledge of JavaScript and OpenGL/WebGL and GLSL is not needed, however knowledge of a modern programming language (JavaScript, C/C++, Java, python, etc.) and data structures is required.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Mutual exclusion: COSC 275
COSC 4420 Adaptive Data Analysis 3 Credits
Data-based inferences can become invalid if the studied hypotheses are selected based on the data itself. Yet, it is common that data is being re-used and hence a potential to overfitting and false discoveries. In this class, we will study mathematical approaches for mitigating false discovery and overfitting in data analysis when data is being reused adaptively, i.e., when hypotheses are selected based on previous finding from the same data. We will study examples where adaptivity leads to invalid inferences, fundamental limitations on ensuring statistical validity in face of adaptivity, and novel mathematically rigorous approaches for this task.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 4462 Machine Translation 3 Credits
After more than 60 years since Machine Translation (MT) research started at Georgetown, this area of Natural Language Processing (NLP) research is more active than ever. In this course we explore the data-driven approaches to translate human language with computers that supplanted rule-based approaches in the past quarter century. First, we lay foundations for the course with statistical NLP relevant to MT and corpus preparation. Next, we start exploring statistical MT (SMT) – from word-based models to phrase-based models to tree-based models. We will then cover domain-adaptation, incremental learning and how to integrate linguistic information. We will learn how to evaluate system output with automatic and human evaluation methods.
Recently, deep learning-based approaches have proven to produce superior translation quality compared to SMT. We will investigate the current state-of-the-art in neural MT (NMT) and contrast its strength and weaknesses with SMT.
Machine translation does not exist in a vacuum; it is now used to provide draft translations for human translators and is embedded in other NLP systems. With better quality, raw MT is increasingly used in in written and spoken human communication. We study the adaptation of MT for the most common applications.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 4463 AI, Language, and Interaction 3 Credits
AI, Language, and Interaction examines how intelligent systems learn, represent, and use language, with a focus on the technical foundations of chatbots, task-oriented dialogue systems, and emerging LLM-based interactive agents. Bridging computer science and linguistics, the course explores parallels between usage-based theories such as Construction Grammar and the probabilistic linguistic patterns large language models acquire from text, while also addressing the limits of current systems in reasoning, grounding, and embodiment. Students will study how dialogue systems interpret context, manage interaction, and support real-world communication, with attention to future directions including multimodal and human-robot dialogue. The course is project-based, and final projects may take either a computational or a linguistic orientation, from building dialogue systems to conducting data-driven analyses of language and interaction. No formal prerequisites are required, but students should have prior coursework or a substantive interest in computer science, linguistics, or both.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 4467 SpeechAudio Deep Neural Ntwk 3 Credits
This course covers modern deep learning approaches for speech recognition, synthesis, and audio processing. Students learn PyTorch implementation of neural architectures, from foundational networks to state-of-the-art transformer models. Topics include basic text processing, audio feature extraction, automatic speech recognition, text-to-speech synthesis, and audio/music generation. The course emphasizes hands-on experience through weekly programming assignments using PyTorch. Prior programming experience in Python required; no previous signal processing or deep learning experience assumed. Designed for computational linguistics and computer science graduate students or advanced undergraduates.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to Graduate level students.
Enrollment limited to students in the School of Continuing Studies department.
COSC 4550 Information Retrieval 3 Credits
Information retrieval is the identification of textual components, be them web pages, blogs, microblogs, documents, medical transcriptions, mobile data, or other big data elements, relevant to the needs of the user. Relevancy is determined either as a global absolute or within a given context or view point. Practical, but yet theoretically grounded, foundational and advanced algorithms needed to identify such relevant components are taught.
The Information-retrieval techniques and theory, covering both effectiveness and run-time performance of information-retrieval systems are covered. The focus is on algorithms and heuristics used to find textual components relevant to the user request and to find them fast. The course covers the architecture and components of the search engines such as parser, index builder, and query processor. In doing this, various retrieval models, relevance ranking, evaluation methodologies, and efficiency considerations will be covered. The students learn the material by building a prototype of such a search engine. These approaches are in daily use by all search and social media companies.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 4700 Information Assurance 3 Credits
This course introduces students to means of assuring the confidentiality, integrity, and availability of information through mechanisms of technology, policy, and education. Topics will include: encryption mechanisms; policy development and risk analysis; physical and personnel security; identity and authentication; malicious code; secure program design, development, and review; system auditing and integrity; computer forensics; TCP/IP security including DoS, intrusion detection, firewalls, and wireless security; and legal, social, and ethical issues.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 4705 Intro to Network Security 3 Credits
This course introduces students to Internet security. Students will
learn about current threats and defenses by examining case studies,
seminal research papers, and monographs in a wide range of security
areas. Topics covered include cryptography, network design
fundamentals, authentication, confidentiality protocols, worms, botnets,
denial-of-service attacks, firewalls, intrusion detection systems,
secure routing, network privacy and anonymity, spam, web security,
network eavesdropping, social engineering, and computer crime.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 4710 Privacy and Surveillance Tech 3 Credits
This course will explore technical privacy threats and countermeasures in modern computing and communications systems. We will start with a broad survey of the legal, social and technical requirements and expectations for the privacy properties of these systems, the conflicts and trade-offs inherent in these requirements, and the default privacy threats and protections under which current and historical systems operate. We will particularly focus on techniques for breaching privacy of communications content, communications metadata, identity, and stored data, countermeasures to these threats, and the effects of technological and platform changes to these threats and the efficacy of countermeasures. Specific topics will include the distinction between content and metadata, how various kinds of surveillance and interception techniques work in practice, countermeasures such as encryption and anonymity networks, and the legal framework under which surveillance operates.
Background: A solid familiarity with networking, applications software, and operating systems, as well as a willingness to think broadly and deeply about the impacts of the technologies we build.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 4715 Computer Security Ethics 3 Credits
The computer security community has tackled challenges of ethics and morality for decades. In this course, students will explore and understand the classical ethical challenges in the computer security discipline. Through this course, students will gain practical experience navigating new and emerging challenges in computer security ethics..
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to students with a major in Computer Science, Computer Science, Computer Science, Computer Science, Comp Sci, Ethics, Society, Comp Sci, Ethics, Society, Comp Sci, Ethics, Society or Comp Sci, Ethics, Society.
COSC 4850 Intro to Human-Centered CS 3 Credits
Human-Centered Computing is a field of practice that draws on a combination of computing and social science methods to design computing systems that align with human needs and values. In this course, you will learn how to engage in needs finding to understand the requirements your system must meet to satisfy its users as well as critical and experimental evaluation of existing technologies to identify the ways in which these technologies (fail to) meet user needs. Specifically, you will learn several methods for evaluating the usability and efficacy of computing systems including qualitative interviews, quantitative surveys, usability testing, participatory design & prototyping, A/B testing, and statistical data analysis.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 4949 Tutorial: Computer Science 1-3 Credits
This tutorial is for AB and BS students who seek individualized instruction under the supervision of a member of the full-time faculty. A reading or research tutorial counts an elective. Students can repeat tutorials. Students pursuing a senior thesis can enroll in a tutorial to earn credit while working on their research project.
Level: Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 5030 Systems Programming 3 Credits
This course provides a hands-on introduction to systems programming with an emphasis on data structures and interfacing with the UNIX operating system. While focusing on the fundamental data structures necessary for designing and implementing systems applications, this course discusses the Unix Application Programming Interface (API), signals, threads, and inter-process communication (IPC). This course is instructed from a programmatic perspective using the C programming language, with special topics in both Java and Python.
Level: Graduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Students cannot enroll who have a program in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
COSC 5110 Information Theory 3 Credits
This course introduces a beautiful mathematical theory that captures the essence of information content of a process, computation or communication. It will explore the connection between this theory and various fundamental topics in Computer Science such as coding theory, communication complexity, and description complexity. Subject to time limitations, applications in combinatorics, graph theory, lower bounds, data compression, data communication and coding will be covered. A major goal of the course is to understand information-theoretic techniques and intuition that play prominent role in various parts of science.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to students with a program in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
COSC 5200 Algorithms 3 Credits
This introductory graduate course explores the design and analysis of efficient algorithms. Topics covered include divide-and-conquer, greedy algorithms, and dynamic programming as well as more advanced topics like amortization, randomization, linear programming, memory-efficient algorithms, online algorithms, and approximation algorithms. Specific problem domains are subject to change but may include string algorithms, computational geometry, graph algorithms, combinatorial optimization, number theory, and computational sciences. Although there is some limited overlap of material, this course is not a replacement for an undergraduate algorithms course and hence assumes some basic understanding of algorithm analysis and discrete mathematics.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to students with a major in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
COSC 5210 Streaming Algorithms 3 Credits
This course will cover streaming algorithms for processing massive datasets. These are algorithms that process their inputs in a single pass, using very limited memory -- much less than the size of the input. They output small summaries, or "sketches", that are capable of (approximately) answering many questions about the input. Topics covered will include algorithms for counting the number of distinct elements in a stream, identifying frequent items, estimating a distribution from a stream of values, frequency moments, clustering, and computing properties of graphs. Efficient hash-based data structures will also be covered, including linear probing, double hashing, cuckoo hashing, and k-wise independence. Familiarity with basic probability theory is expected.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 5220 Parallel Algorithms 3 Credits
The main focus of this course is on parallel algorithms, but we will also briefly cover programming models and cache-coherence. The lectures primarily address design and analysis of algorithms, but there will also be one or two programming assignment(s) to illustrate some of the engineering issues. This course comprises two main units. The first unit is lecture based and intended to provide a background on parallel computing, focusing on some classic and recent results in parallel algorithms. The second unit is more research-centric, based around reading and presenting research papers. Most papers will be presented by students, but depending on enrollment and time, some may also be presented by me. There will also be an end-of-term project which may be systems or theory (students' choice).
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to students with a major in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
COSC 5230 Grad. Gems of Theoretical CS 3 Credits
How do you send a letter to a stranger that only she can read? How can you prove that you located a picture of Waldo in a complex image without revealing any information about his position? How do you match students with schools (and win the Nobel prize for doing so)? What can a computer learn, and what can a computer never solve?
We will answer these and many other questions by using wonderful ideas from Theoretical Computer Science.
We expect familiarity with mathematical proofs, discrete mathematics, linear algebra, and basic probability theory.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to Graduate level students.
COSC 5240 Probabilistic Proof Systems 3 Credits
Classically, a mathematical proof of a theorem is something that can be written down and efficiently checked line by line. However, over the last 30 years, computer scientists have introduced a variety of nonclassical notions of proofs. These can be broadly described as "probabilistic proof systems", because they fundamentally involve randomness. The study of probabilistic proof systems has led to many exciting developments in cryptography and theoretical computer science over the last three decades. This course will describe a variety of probabilistic proof systems and their applications to cryptography and complexity theory. Topics include interactive proofs, multi-prover interactive proofs, probabilistically checkable proofs, zero-knowledge proofs, and proofs secure against computationally bounded provers (i.e., argument systems). Particular attention will be devoted to recent applications of probabilistic proof systems to cloud computing and cryptocurrencies. There are no formal prerequisites for this course. However, mathematical maturity will be expected.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to students with a program in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
COSC 5250 Theory of Computation 3 Credits
Topics covered are drawn from the following: finite automata, formal languages, machine models for formal languages, computability and recursion theory, computational complexity, and mathematical logic applied to computer science.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to Graduate level students.
COSC 5255 Theory of Comm. Comp. and Inf. 3 Credits
This is a fundamental course that understands the properties of Communication, Computation and Information needed to successfully compute a function. What are the limits of communication, computations and information? What can we infer from one another? Various topics from Communication Complexity, Information Theory, Coding Theory and Theory of Computations will be covered. Students will present a topic of their choice within the theory.
Level: Graduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to Graduate level students.
COSC 5260 Distributed Algorithms 3 Credits
This course focuses on the design and analysis of distributed algorithms, which are algorithms that are run at multiple locations or entities that must cooperate to solve problems. Such algorithms are useful in many settings, including coordination of servers in data centers and synchronization of the cores in multiprocessor computer chips. Certain distributed algorithms can also be used to explain behavior observed in the natural world. In this course, students will learn the standard models for distributed systems and classical distributed algorithms. The student will also learn a collection of more recent results. The course will primarily address design and analysis of distributed algorithms.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 5270 Analytic Methods in CS 3 Credits
Analytic techniques have become influential in many areas of theoretical computer science. This course will survey some of the most broadly applicable of these techniques and their most important applications. Techniques to be covered include discrete Fourier analysis and approximation theory. Application domains include PAC learning, quantum computing, and communication complexity.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 5275 Intro to Switching Theory 3 Credits
After initial review of number systems, codes, sets, and relations, the course will cover switching algebra and its applications, switching function minimization, logic design and analysis, and combinational circuit testing. The remainder of the course will introduce, minimize, and transform sequential circuits.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to students with a major in Computer Science, Computer Science, Computer Science or Computer Science.
COSC 5280 Matrix Rigidity 3 Credits
Matrix rigidity, introduced by L. Valiant in 1977, measures the Hamming distance from a given matrix to the set of low rank matrices. This definition might seem strange at first, but in the past 40 years it has revealed curious connections between algebra, geometry, and computation. In this course, we will prove central results on matrix rigidity, and will see its applications to circuit lower bounds, data structures, communication complexity, and information theory. Along the way, we will see beautiful results in neighboring areas, including locally decodable codes, the cap set problem, superconcentrators, and the orthogonal vectors problem.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to students with a major in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
COSC 5290 Cryptography 3 Credits
Modern cryptography studies techniques for facilitating interactions between distrustful entities. Today, with the advent of the Internet, these techniques become indispensable – enabling, for instance, anonymous electronic elections, privacy-preserving electronic auctions, internet banking, and more. In this course, we will introduce some of the fundamental concepts, protocols with rigorous proofs of security.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to students with a major in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
COSC 5295 Differential Privacy 3 Credits
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 5310 Comp Hardware Sys Architect 3 Credits
Evolution of the design of computer systems and the factors shaping their hardware/software system architectures. Topics may include: Amdahl’s law, Flynn’s taxonomy, Moore's Law and silicon chip and system physical properties, parallelism in processor architecture, memory hierarchies (cache and virtual memory), processor micro-architecture and pipelining, protection and sharing, I/O and interrupts, in-order and out-of-order superscalar architectures, VLIW machines, vector supercomputers, multicores, clusters, multithreaded architectures, symmetric multiprocessors, parallel computational models and programming, GPU and special-purpose graphics processors, reconfigurable logic and special-purpose processors. Undergraduates may enroll with instructor's permission.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to Graduate level students.
COSC 5320 Computing in an Uncertain Wrld 3 Credits
Absolute correctness is fast becoming elusive in today's computer systems. Next generation hardware and software need to be re-designed with the notion that errors in computing (unintentional from environmental factors or intentional from malicious adversaries) are inevitable. In this course we will study state-of-the-art in novel computer architecture and systems that are designed to not only tolerate unexpected errors but also exploit them for performance and energy gains. The course will involve instructor-led lectures, literature surveys and opportunity to perform a research project that aligns with the student's interest.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to students with a major in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
COSC 5402 Empirical Methods in NLP 3 Credits
Systems of communication that come naturally to humans are thoroughly unnatural for computers. For truly robust information technologies, we need to teach computers to unpack our language. Natural language processing (NLP) technologies facilitate semi-intelligent artificial processing of human language text. In particular, techniques for analyzing the grammar and meaning of words and sentences can be used as components within applications such as web search, question answering, and machine translation.
This course introduces fundamental NLP concepts and algorithms, emphasizing the marriage of linguistic corpus resources with statistical and machine learning methods. As such, the course combines elements of linguistics, computer science, and data science. Coursework will consist of lectures, programming assignments (in Python), and a final team project. The course is intended for students who are already comfortable with programming and have some familiarity with probability theory.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to Graduate level students.
COSC 5440 Automated Reasoning 3 Credits
This graduate lecture surveys methods of automated deductive reasoning. Through traditional lectures, programming projects, paper presentations, and research projects, students learn (1) to understand the foundations of logical and probabilistic methods of automated reasoning. (2) to implement algorithms for logical and probabilistic reasoning, (3) to comprehend, analyze, and critique papers from the primary literature, (4) to replicate studies described in the primary literature, and (5) to design, conduct, and present their own studies. Topics include propositional logic, predicate logic, resolution proof, production systems, Prolog, uncertain reasoning, certainty factors, Bayesian decision theory, Bayesian networks, exact inference, approximate inference, first-order probabilistic models, probabilistic programming languages, and applications.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to students with a program in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
COSC 5450 Foundations of Machine Learn. 3 Credits
This course provides a comprehensive introduction to the core principles and methodologies of machine learning. The course is designed to cover essential topics such as probability theories, common distributions, point estimation, sampling, model selection, gradient optimization, and evaluation, ensuring a comprehensive understanding of the theoretical and algorithmic aspects of machine learning and providing fundamental concepts to support further study in supervised learning, unsupervised learning, and reinforcement learning, It will also cover cutting-edge topics such as shallow learning vs. deep learning, self-supervised learning, and high-dimensional learning, focusing on enabling students to understand the theories and principles behind the latest advancements in the field. By the end of this course, students will not only grasp the fundamental concepts of machine learning but also cultivate a mindset and skill set that are adaptable to the dynamic nature of technological progress, keeping pace with the rapidly evolving technological landscape in the field of machine learning. The class will have lectures, mathematical homework, and exams.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to Graduate level students.
COSC 5455 Intro to Deep Learning 3 Credits
Recent advances in hardware have made deep learning with neural networks practical for real-world problems. Neural networks are a powerful tool that have shown benefit in a wide range of fields. Deep learning involves creating artificial neural networks with greater layer depth or deep neural nets (DNN) for short. These DNNs can find patterns in complex data, and are useful in a wide variety of situations. In numerous fields, state-of-the-art solutions have been accomplished with DNNs and DNN systems dominate head-to-head competitions. This course will introduce the student to neural networks, explain different neural network architectures, and then demonstrate the use of these neural networks on a wide array of tasks.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to students with a program in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
COSC 5460 Machine Learning 3 Credits
This graduate lecture surveys the major research areas of machine learning focusing on classification. Through traditional lectures and programming projects, students learn (1) to understand the foundations of machine learning, (2) to design and implement methods of machine learning, (3) to evaluate methods of machine learning, and (4) to conduct empirical evaluations of multiple methods of machine learning. The course compares and contrasts machine learning with related endeavors, such as statistical learning, pattern classification, data mining, and information retrieval. Topics include Bayesian decision theory, instance-based approaches, Bayesian methods, decision trees, rule induction, density estimation, linear classifiers, support vector machines, neural networks, ensemble methods, learning theory, evaluation, and applications. Students complete five programming projects using Java. There are midterm and final exams.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to Graduate level students.
COSC 5470 Deep Learning for Comp. Vision 3 Credits
This course will focus on building state-of-the-art systems in the intersection of deep learning and computer vision. Topics will cover deep architectures and learning algorithms for various discriminative and generative computer vision tasks. The course will demonstrate how such tasks are main building blocks in processing images and videos for applications such as self-driving cars, healthcare, surveillance, and human-computer interfaces. Students should be comfortable with: Linear Algebra, Calculus, Probability, Working knowledge of programming, Exposure to simple deep learning models
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to students with a major in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
COSC 5480 Large Language Models (LLMs) 3 Credits
This course delves deep into the intricacies of Large Language Models (LLMs), offering students an understanding of their design, implementation, and applications. Beginning with the foundational architectures such as transformers and attention mechanisms, students will journey through the evolution from the fundamental models to contemporary marvels like GPT-3, ChatGPT, and GPT-4.
The course aims to provide a comprehensive overview of the historical and current state of LLMs, equipping students with the knowledge to design, train, and fine-tune LLMs for custom applications.
It will also encourage critical discussions on the ethical, societal, and technical challenges associated with LLMs. Key topics covered in the course include (1) Foundations: Review of RNNs, LSTMs, Attention Mechanisms, and Transformers. (2) Architectural Deep Dive: Behind the design of GPT-3, BERT, and other leading models. (3) Training Paradigms: Techniques and challenges in training massive models.
(4) Applications: chatbots, content generation, recommendation systems, and beyond. (5) Societal Impact: Ethical considerations, fairness, and bias in LLMs. (6) Technical Challenges: Model explainability, controllability, and safety concerns. (7) Future Directions: Where LLMs are headed and emerging research areas. The course assessments consist of monthly assignments involving practical implementations and model evaluations, exams covering theoretical and applied concepts, and one optional final project focusing on designing a custom application utilizing LLMs. Class participation and critical discussion sessions are also important components in student assessments.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to students with a major in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
Enrollment limited to students in the Main Campus or Medical Center campuses.
COSC 5510 Database Management Systems 3 Credits
This graduate-level course covers the theoretical design principles of modern database systems, the data structures and algorithms used in their implementation, and the techniques and tools used in designing databases. It is a comprehensive introduction to relational database modeling, query languages including SQL, and database optimization techniques (indexing, views, and integrity constraints). The class also includes a programming intensive project and/or research project.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to Graduate level students.
COSC 5520 Web Search and Sense-Making 3 Credits
The Web provides abundant information which allows us to live more conveniently and make quicker decisions. At the same time, the growth of the Web and the improvements in data creation, collection, and use have lead to tremendous increase in the amount and complexity of the data that a search engine needs to handle. The increase of the magnitude and complexity of the data has become a major drive for new data analytics algorithms and technologies that are scalable, highly interactive, and able to handle complex and dynamic information seeking tasks in the big data era. How to effectively and efficiently search for the documents relevant to our information needs and how to extract the valuable information and make sense out from “big data” are the subjects of this course. The course will cover Web search theory and techniques, including basic probabilistic theory, representations of documents and information needs, various retrieval models, link analysis, classification and recommender systems. The course will also cover programming models that allow us to easily distribute computations across large computer clusters. In particular, we will teach Apache Spark, which is an open-source cluster computing framework that has soon become the state-of-the-art for big data programming. The course is featured in step-by-step weekly/bi-weekly small assignments which composes a large big data project, such as building Google’s PageRank on the entire Wikipedia. Students will be provided knowledge to Spark, Scala, Web search engines, and Web recommender systems with a focus on search engine design and "thinking at scale”.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to Graduate level students.
COSC 5521 Approximate Computing 3 Credits
The paradigm of error-efficient computing aims to build efficient computing systems that redefine "correctness" as producing results that are good enough to ensure an acceptable user experience. The goal of the course is to provide a broad and deep understanding of the state-of-the-art in error-efficient computing that will allow students to (1) rethink the notion of computing in a world where errors are ubiquitous (and absolute correctness is elusive) and (2) understand how error-efficient computing can revolutionize the way we design hardware and software to exploit significant new opportunities of compute efficiency. The course goals will be met through reading research papers and undertaking a fun research project.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment limited to students in the Computer Science department.
COSC 5530 Health Search and Mining 3 Credits
This course will be a combination of lectures and students' presentations. After providing a review of information retrieval and data mining, the lectures will cover health text processing on scientific literature, clinical notes, and social media, among others. The Students will present and discuss research literature. This includes: review of current literature on specific topic, and experimental results and evaluation of a proposed approach. Students are expected to have the knowledge of data structures.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to students with a program in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
COSC 5540 Text Mining Analysis 3 Credits
This course covers various aspects and research areas in text mining and analysis. Text may be a document, query, blog, tag description, etc. The structure of the course is a combination of lectures & students presentations. The lectures will cover Text/Web/query classification, information extraction, word sense disambiguation, opinion mining & sentiment analysis, query log analysis, ontology extraction and integration, and more. The students are assigned a related topic in the field for further study and presentation in the class.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to students with a major in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
COSC 5560 Mining Complex Networks 3 Credits
Networks (or graphs) are ubiquitous. Social networks, information networks, and technological networks can easily be modeled as graph structures. This course presents state-of-the-art methods and algorithms for exploring, analyzing, and mining large-scale networks. We will investigate different approaches for extracting meaningful information from large-scale graph data in efficient ways, and see their application in different domains. Topics will include graph modeling, centrality analysis, community detection, subgraph mining/motif discovery, random walk models, event detection, and link prediction. We will implement different algorithms studied in class to better understand the properties of real-world graphs.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to Graduate level students.
COSC 5570 Massive Data Fundamentals 3 Credits
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to Graduate level students.
COSC 5571 Artificial Intelligence 3 Credits
Artificial Intelligence (AI) is the branch of computer science that studies how to program computers to reason, learn, perceive, and understand. The lecture portion of the class surveys basic and advanced concepts and techniques of artificial intelligence, including search, knowledge representation, automated reasoning, uncertain reasoning, and machine learning. Specific topics include symbolic computing, state-space search, game playing, theorem proving, rule-based systems, Bayesian networks, probability estimation, rule induction, Markov decision processes, reinforcement learning, and ethical and philosophical issues. Applications of artificial intelligence are also discussed in domains such as medicine and computer security. Students complete midterm and final exams, and five programming projects using the Java programming language.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
COSC 5580 Introduction to Data Analytics 3 Credits
This course teaches students how to synthesize disparate, possibly unstructured data to better understand and characterize the world around us, and in some cases, to draw meaningful inferences. The course design will be centered around different data analytics and data science cases. Topics covered include: the history of data science, successes and failures in data analytics, the data analytics life cycle, formulating data science problems, data wrangling, data characterization (correlations, identifying clusters and associations), data inference, basic network analysis, and visual analytics. This course will use Python and R.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to students with a major in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
COSC 5610 Advanced Networking 3 Credits
This course is a graduate-level treatment of the concepts and principles of data communications and computer networking. Topics covered include network architecture and layering, packet and circuit switching, addressing, intra- and inter-networking, routing protocols, network management, network applications, and recent advances in computer networks. This course will involve a combination of homework assignments, paper readings, and programming projects.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to students with a program in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
COSC 5620 Real-Time Sys Temporal Verif 3 Credits
This course teaches how to ensure computer systems are temporally correct, which is especially important for systems with interactions with the physical world such as autonomous cars, jet aircraft, robots, as well as classical embedded systems. For these systems, timing affects both system safety and performance. The course covers real-time scheduling for single and multicore systems, resource sharing protocols and analysis, practical control theory and PID control, symbolic model checking, temporal logics, automated reasoning using SMT solvers and Timed Automata.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to students with a program in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
COSC 5720 Trust and Safety 3 Credits
This course focuses on the role of policy and engineering in people's trust in and the safety of digital information, interactions and systems. Topics covered will include: eCrime (spam, fraud, identity theft, etc.), technology-facilitated violence, usable security & privacy, online communities, content moderation, hate & harassment, and mis/dis-information. The course will involve engaging with a combination of industry case studies and academic literature. Students are expected to complete assignments that include programming, design, writing, and academic research.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to students with a major in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
COSC 5740 Data Privacy 3 Credits
Building on a variety of algorithmic techniques, this class will present and discuss various topics in modern foundational approaches to data privacy: Common settings, threat models, weaknesses of traditional disclosure limitation techniques, fundamental barriers to privacy, differential privacy, and distribution.
3.000 Credit hours
3.000 Lecture hours
0.000 Lab hours
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to Graduate level students.
COSC 5745 Advanced Computer Security 3 Credits
This course is a graduate-level treatment of the concepts and principles in systems, networking, and software security. Topics covered include foundational principles, secure design principles, policy models, identity, access control, information flow, confinement, program analysis, auditing, forensics, attack modeling, and applications of security on special topics. This course will involve a combination of homework assignments and a research project.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to students with a major in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
COSC 5750 Network Security 3 Credits
This course introduces students to Internet security. Students will
learn about current threats and defenses by examining case-studies,
seminal research papers, and monographs in a wide range of security
areas. Topics covered include cryptography, network design
fundamentals, authentication, confidentiality protocols, worms, botnets,
denial-of-service attacks, firewalls, intrusion detection systems,
secure routing, network privacy and anonymity, spam, web security,
network eavesdropping, social engineering, and computer crime.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to Graduate level students.
COSC 5760 Comp Security Voting Systems 3 Credits
This course will examine the security requirements for voting systems (particularly those used for civil elections in the United States), how various designs and implementations meet or fail to meet these requirements, and how such systems can be improved. The course will focus on vote-casting technology ("voting machines") as well as the backend election management systems that define ballots, register voters, provision precinct equipment, and count and report vote tallies. We will devote particular attention to understanding how the legal framework and historical threat models relate to specific software and hardware technical requirements. We will look at a range of formal and informal proposed designs for election systems, specific systems that have been or are currently in active use, and various studies that have been made of these systems and designs. The course will focus on software security issues, but will also touch on usability, threat modeling, and legal and governance issues. More broadly, the course will use election security and integrity as a case study in designing critical systems to meet complex threats under tightly constrained tradeoffs.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to students with a program in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
COSC 5770 Security of Future Net. Arch. 3 Credits
Security of Future Networking Architectures
This graduate course explores the security of future computer networking architectures, how various architecture designs and implementations improve upon or introduce new security challenges, and how such architectures can be improved. Students read, present, and discuss research papers on the security of: programmable control planes (e.g., software-defined networking), programmable data planes (e.g., OpenFlow and P4), and network operating systems. Specific problem domains are subject to change but may include network verification, static and dynamic program analysis, network debugging and troubleshooting, and network forensics. Student groups propose and carry out projects towards the aim of developing research insights. This course is not a replacement for an undergraduate security or networking course and assumes some basic understanding of computer networking, security, and information assurance.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to Graduate level students.
COSC 5780 Internet Censorship and Circ. 3 Credits
COSC538: Internet Censorship and Circumvention
This class explores the current landscape of Internet censorship--both home and abroad--with a focus on the technologies and practices used by censors and those that seek to evade them. We survey the literature on censorship circumvention technologies, and explore their efficacy and practicality in the face of real-world censors. Students will complete a semester-long project with the goal of bettering our understanding of a censorship or circumvention technology.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to students with a program in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
COSC 5925 Curricular Practical Training 0.25 Credits
Enrollment in this tutorial satisfies the registration requirement for Curricular Practical Training (CPT) employment. Requires department approval.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to Graduate level students.
Enrollment limited to students in the Computer Science department.
COSC 5990 Research methodologies 3 Credits
This graduate-level course aims to impart essential research skills and career skills to new computer science researchers. The course introduces the context, study strategies, research designs, principles, communication and procedures of research processes. Working knowledge of diverse topics will be covered, such as academic writing, literature study methods, experimental design, result analysis, the peer-review process, presentation skills and ethical aspects of doing research. It also teaches key career skills such as job interview, networking planning, and understanding of academic vs. industry differences. The course will have lectures, guest speakers, readings, class discussions, and assignments; and it will be coordinated to include lectures and talks from multiple professors in the CS department so that students can learn research methodologies from a variety of perspectives. Students will be evaluated based on: participation; assessment of writing (e.g., paper writing, presentation writing); assessment of oral presentation. Registration limited to graduate students and highly recommended for first year PhD students.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to students with a major in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
COSC 6210 Adv Topics in Theoretical CS 3 Credits
This course explores open problems and recent breakthroughs in computational complexity. Topics include circuit lower bounds, fine-grained complexity, derandomization, hardness of approximation, and more. Emphasis is placed on understanding the techniques that have led to recent progress. The course is designed for graduate students with experience in theoretical computer science.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment limited to students in the Computer Science department.
COSC 6422 Adv. Semantic Representation 3 Credits
Natural language is an imperfect vehicle for meaning. On the one hand, some expressions can be interpreted in multiple ways; on the other hand, there are often many superficially divergent ways to express very similar meanings. Semantic representations attempt to disentangle these two effects by exposing similarities and differences in how a word or sentence is interpreted. Such representations, and algorithms for working with them, constitute a major research area in natural language processing.This course will examine semantic representations for natural language from a computational/NLP perspective. Through readings, presentations, discussions, and hands-on exercises, we will put a semantic representation under the microscope to assess its strengths and weaknesses. For each representation we will confront questions such as: What aspects of meaning are and are not captured? How well does the representation scale to the large vocabulary of a language? What assumptions does it make about grammar? How language-specific is it? In what ways does it facilitate manual annotation and automatic analysis? What datasets and algorithms have been developed for the representation? What has it been used for? Special emphasis will be placed on three broad-coverage graph-based representations: AMR, UCCA, and FrameNet.
Level: Graduate
Grading: Main Campus (UGrad, Grad)
COSC 6440 Deep Reinforcement Learning 3 Credits
Deep Reinforcement learning is an area of machine learning that learns how to make optimal decisions from interacting with an environment. From the environment, an agent observes the consequence of its action and alters its behavior to maximize the amount of rewards received in the long term. Reinforcement learning has developed strong mathematical foundations and impressive applications in diverse disciplines such as psychology, control theory, artificial intelligence, and neuroscience. An example is the winning of AlphaGo, developed using Monte Carlo tree search and deep neural networks, over world-class human Go players. The overall problem of learning from interaction to achieve goals is still far from being solved, but our understanding of it has improved significantly. In this course, we study fundamentals, algorithms, and applications in deep reinforcement learning. Topics include Markov Decision Processes, Multi-armed Bandits, Monte Carlo Methods, Temporal Difference Learning, Function Approximation, Deep Neural Networks, Actor-Critic, Deep Q-Learning, Policy Gradient Methods, and connections to Psychology and to Neuroscience. The course has lectures, mathematical and programming assignments, and exams.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to students with a major in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
COSC 6480 Experimental AI 3 Credits
This course offers opportunities for students to have an in-depth understanding and hands-on experience with practical AI systems for state-of-the-art evaluation campaigns. It includes seminar-style classroom presentations and a significant project component. Students will be guided to go through the design and implementation of AI systems in different domains. The course will review recent AI and Machine Learning publications and lead students to work in small groups to build systems. Students are expected to have strong programming skills and previous experience in machine learning, deep learning and/or AI.
Level: Graduate, Undergraduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to students with a program in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
COSC 7949 Tutorial: Computer Science 0-3 Credits
Level: Graduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to students with a major in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
COSC 7950 Extra Credit/Internship 0.25 Credits
Level: Graduate
Grading: Main Campus (UGrad, Grad)
Equivalent to COSC 902
COSC 8220 Sem: Communication Complexity 2 Credits
Communication complexity studies how much information must be transmitted between two or more parties, who wish to jointly compute a function where the input is distributed between the parties. The most basic model of communication complexity was introduced by Yao in 1979, and is one of the few models in which we know strong unconditional lower bounds. Communication complexity provides a framework for proving lower bounds in several areas such as data structures, circuit complexity, streaming algorithms, etc.
We will spend the first few weeks of the course covering basic techniques for proving lower bounds in the deterministic, non-deterministic and randomized models of communication complexity. These techniques are typically combinatorial, algebraic or information theoretic. After this, we will have paper presentations with the goal of understanding recent developments and open problems in the area.
Level: Graduate
Grading: Pass/Fail Default
Course registration restrictions: Enrollment limited to students in the PHD-COSC program.
Enrollment is limited to Graduate level students.
COSC 8230 Recent Advances in Complexity 2 Credits
A seminar that covers advanced topics in computational complexity.
Level: Graduate
Grading: Pass/Fail Default
Course registration restrictions: Enrollment is limited to Graduate level students.
Enrollment limited to students in the Computer Science department.
COSC 8260 Distributed Algs and Systems 2 Credits
In this doctoral seminar, students learn about algorithms and implementation issues for distributed systems. The students will read, present, and discuss research papers on various topics including distributed shared memory and key-value stores, distributed consensus, distributed graph algorithms, and fault-tolerance in distributed systems.
Level: Graduate
Grading: Pass/Fail Default
Course registration restrictions: Enrollment limited to students in the MS-COSC or PHD-COSC programs.
Enrollment is limited to Graduate level students.
COSC 8270 p(doom): A Theoretical Inquiry 2 Credits
One of the hottest issues within the broader debate about AI and its cultural impact is the potential for this technology to create massive, perhaps even existential, impacts on humanity as we know it. In this seminar, we'll undertake a rigorous technical and theoretical investigation of these claims. We'll look deeper at the capabilities and limitations of existing and proposed AI architectures, and seek to better understand the theoretical models for often-cited possibilities such as AGI and Superintelligence. We'll compare popular accounts of these technologies to their realities. Our goal is to produce a strongly-grounded answer to the newly relevant question: 'what's your p(doom)?'
Level: Graduate
Grading: Pass/Fail Default
Course registration restrictions: Enrollment is limited to students with a program in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
COSC 8290 Seminar in Cryptography 2 Credits
This doctoral seminar surveys the recent literature in cryptography.
Level: Graduate
Grading: Pass/Fail Default
Course registration restrictions: Enrollment is limited to Graduate level students.
COSC 8310 Trends in Computer Arch. 2 Credits
In this series we will take a look at seminal papers from the last decade of top tier computer architecture conferences and discuss trends from general purpose computation to specializes accelerators in domains such as AI, cryptography, robotics etc.
Level: Graduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment is limited to students with a major in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment limited to students in the PHD-COSC program.
Enrollment is limited to Graduate level students.
COSC 8320 Reliab. Approx. in Computing 2 Credits
In this seminar, we will explore seminal papers from the past decade of top-tier systems conferences, highlighting trends in error-efficient computing. Our focus will be on reliability-aware computing, spanning general-purpose processors to specialized accelerators in domains such as AI, cryptography, and robotics. We will examine techniques, trade-offs, and emerging directions that enable systems to maintain performance while managing errors effectively.
Level: Graduate
Grading: Main Campus (Pass/Fail)
Course registration restrictions: Enrollment limited to students in the MS-COSC program.
Enrollment is limited to Graduate level students.
COSC 8405 Seminar in NLP 2 Credits
This course will expose students to current research in natural language processing and computational linguistics. Class meetings will consist primarily of student-led reading discussions, supplemented occasionally by lectures or hands-on activities. The subtopics and reading list will be determined at the start of the semester; readings will consist of research papers, advanced tutorials, and/or dissertations. Students enrolled in the LING section will additionally complete a term project related to the material in the course.
Level: Graduate
Prerequisites: (COSC 572 or COSC 6402) or (LING 572 or LING 5402) Grading: Pass/Fail Default
Course registration restrictions: Enrollment limited to students in the PHD-COSC program.
Enrollment is limited to Graduate level students.
COSC 8410 Alg for Dist Mach Learning 2 Credits
Distributed machine learning, as the name suggests, refers to learning over data that is distributed amongst multiple machines. Each machine holds only a piece of the entire data, and the objective is to learn a parameter that minimizes a loss function defined over the entire data. The problem of distributed machine learning can be formulated as a special class of a more general distributed optimization problems. This seminar course will discuss state-of-the-algorithms for solving distributed optimization problems, in the context of distributed machine learning.
Level: Graduate
Grading: Pass/Fail Default
Course registration restrictions: Enrollment limited to students in the PHD-COSC program.
Enrollment is limited to Graduate level students.
COSC 8430 Sem. Image and Video Computing 2 Credits
In this seminar we examine the recent advances in computer vision through reading group discussions, presentations, and guest lectures. By completing this seminar you can expect to be familiar with the various models proposed to address computer vision problems including: recognition, detection, segmentation, tracking, inpainting, stylization and generation. For each research paper covered, there will be a focus on the explainability, fairness and ethical implications of the work. Finally, this seminar will also address key elements of giving a good talk, and strategies for studying a research paper.
Level: Graduate
Grading: Pass/Fail Default
Course registration restrictions: Enrollment is limited to students with a major in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
COSC 8480 Lrg Scl Stat Mach Lrng 2 Credits
This doctoral seminar studies topics in statistical machine learning in the age of big data and artificial intelligence. In the seminar, we will read both classical and recent work in supervised learning, nonparametric models, optimization, and deep reinforcement learning. In the class, we will read textbooks and survey milestone papers. Students are expected to submit questions for the readings before each class and give presentations when it is their turns. To have first-hand experience, students are also expected to do a few programming exercises in the textbooks.
Level: Graduate
Grading: Pass/Fail Default
Course registration restrictions: Enrollment limited to students in the PHD-COSC program.
Enrollment is limited to Graduate level students.
COSC 8525 Sem Information Retrieval 2 Credits
This doctoral seminar surveys the recent literature in search systems.
Level: Graduate
Grading: Pass/Fail Default
Course registration restrictions: Enrollment is limited to Graduate level students.
COSC 8530 Search Mining of Textual Data 2 Credits
In this doctoral seminar, doctoral students read, present, and discuss research papers on search and mining methodologies to process textual data of any form: short or long, general or domain specific, formal scientific text or some informal social media text. Student groups are assigned projects towards the aim of developing research insights.
Level: Graduate
Grading: Pass/Fail Default
Course registration restrictions: Enrollment is limited to students with a program in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
COSC 8710 Data Protection by Design 2 Credits
This doctoral seminar investigates the current trends in data protection by design in secure systems and networks. Students will examine case studies and read research papers that involve recent data protection regulations, with an emphasis placed on the General Data Protection Regulation (GDPR). Topics include data usage, privacy, auditing, access controls, accountability, transparency, and modeling. Applications include Web and network security, databases, and blockchains, among others. The course requires students to engage in novel research, supervised by the instructor.
Level: Graduate
Grading: Pass/Fail Default
Course registration restrictions: Enrollment is limited to students with a major in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
COSC 8720 Doc Sem: Computer Security 2 Credits
This doctoral seminar investigates current trends in computer and network security research. Students will read recent research papers in computer and network security academic venues. The course requires students to engage in novel research, supervised by the instructor.
Level: Graduate
Grading: Pass/Fail Default
Course registration restrictions: Enrollment is limited to students with a major in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment is limited to Graduate level students.
COSC 8730 Blockchain Theory 2 Credits
Distributed ledgers and the cryptocurrencies that leverage them have become a major focus of both commercial and research interest in recent years. This topic intersects with theoretical computer science in several interesting ways. A growing number of theoreticians, for example, have worked on formally analyzing specific distributed ledger systems, or describing and analyzing algorithms that run on top of them. Furthermore, the systems themselves increasingly leverage existing results on distributed consensus from the theory literature. The goal of this seminar is to explore these different intersections between distributed ledgers and theoretical computer science, with the goal of identifying exciting new research problems and identifying future trends.
Level: Graduate
Grading: Pass/Fail Default
Course registration restrictions: Enrollment limited to students in the PHD-COSC program.
Enrollment is limited to Graduate level students.
COSC 8740 Formal Approaches to Privacy 2 Credits
We will study how formal approaches to privacy can advance privacy technology and regulation and serve as an algorithmic tool for solving problems seemingly unrelated to privacy.
Level: Graduate
Grading: Main Campus (UGrad, Grad)
Course registration restrictions: Enrollment limited to students in the PHD-COSC program.
Enrollment is limited to Graduate level students.
COSC 8820 Responsible Computing 2 Credits
In this PhD-level seminar we will take a critical lens to computing. There is growing recognition of the value (and necessity) of centering those with less power when evaluating existing systems and when designing and implementing new systems. Through readings and discussion we will explore how we can center the marginalized and critique traditional power structures in the fields of computer security & privacy and machine learning. We conclude with hope: exploring methods like techno-futuring to ideate toward more just ideals for future computing systems.
Level: Graduate
Grading: Pass/Fail Default
Course registration restrictions: Enrollment is limited to students with a major in Computer Science, Computer Science, Computer Science or Computer Science.
Enrollment limited to students in the PHD-COSC program.
Enrollment is limited to Graduate level students.
COSC 9991 Continuous Registration
Level: Graduate
Grading: No Grade
Course registration restrictions: Enrollment is limited to Graduate level students.
COSC 9992 Continuous Registration
Level: Graduate
Grading: No Grade
Course registration restrictions: Enrollment is limited to Graduate level students.
COSC 9993 Continuous Registration
Level: Graduate
Grading: No Grade
Course registration restrictions: Enrollment is limited to Graduate level students.
COSC 9994 Continuous Registration
Level: Graduate
Grading: No Grade
Course registration restrictions: Enrollment is limited to Graduate level students.
COSC 9999 Thesis Research
Level: Graduate
Grading: No Grade
Course registration restrictions: Enrollment is limited to Graduate level students.