Courses

COSC-5480: Large Language Models

Offering History

  • 2024 Spring

Course Description

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 Attention Mechanisms and Transformers.
  2. Architectural Deep Dive: Behind the design of GPT models, Llama, BERT, T5 and other leading models.
  3. Training Paradigms: Techniques and challenges in training and tuning large language models.
  4. Applications: chatbots, content generation, recommendation systems, and beyond.
  5. Societal Impact and Technical Challenges: Ethical considerations, fairness, bias in LLMs, model explainability, controllability, and safety concerns.
  6. 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.

COSC-689/6440/3440: Deep Reinforcement Learning

Offering History

  • 2023 Fall
  • 2022 Fall
  • 2021 Fall
  • 2020 Fall
  • 2019 Spring

Course Description

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. A recent 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 will 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 will have lectures, mathematical and programming assignments, and exams.

Textbooks:

  • Reinforcement Learning: An Introduction. Richard S. Sutton and Andrew G. Barto. The MIT Press. 2017. (Preprint is available online)

COSC 578: Statistical Machine Learning

Offering History

  • 2023 Spring
  • 2022 Spring
  • 2021 Spring

Course Description

Statistical machine learning brings together statistics and computational sciences such as computer science, system science, and optimization. The recent developments in bioinformatics, signal processing, information management, finance, and artificial intelligence have been largely influenced by statistical machine learning. With a focus on mathematical and algorithmic theories, this class offers basics in statistical theories and methodology in dealing with machine learning problems. Topics covered in the class include probability theories, common distributions, point estimation, inference, sampling, model selection, optimization, and evaluation. The class will have lectures, mathematical homework, and exams.

Textbooks:

  • Casella, G., Berger, R. (2001). Statistical Inference. Duxbury Resource Center. ISBN: 0534243126
  • Hastie, T., Tibshirani, R., Friedman, J. (2001). The Elements of Statistical Learning. New York, NY, USA: Springer New York Inc..

COSC 688: Experimental Artificial Intelligence (AI)

Offering History

  • 2021 Spring

Course Description

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.

COSC-878: Statistical Machine Learning: Big Data

Offering History

  • 2018 Fall
  • 2015 Spring

Course Description

This doctoral seminar studies topics in statistical machine learning in the age of big data and artificial intelligence. In the seminar, we read both classical and recent work in supervised learning, nonparametric models, optimization, and deep reinforcement learning. In the class, we study textbooks and survey milestone papers. Students are expected to submit questions for the readings before each class and give presentations when it is their turn. To have first-hand experience, students are also expected to do a few programming exercises in the textbooks. An earlier course website can be found here. (Please note the content will change from year to year).

COSC-589: Web Search and Sense-making

Offering History

  • 2018 Spring
  • 2017 Spring
  • 2016 Spring

Course Description

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”.

Find more information in the syllabus.

COSC-282: Big Data Analytics

Offering History

  • 2019 Spring
  • 2018 Spring
  • 2017 Spring
  • 2015 Fall

Course Description

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”

Find more information on the official course website.

COSC-150: Advanced Programming

Offering History

  • 2017 Fall

Course Description

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 object-oriented design and programming, unit testing, UML, event-driven programming, exception handling, sockets, graphical user interfaces (GUIs), and advanced programming projects such as artificial intelligence and/or mobile computing.

Find more information in the syllabus and the schedule.

Past Courses

  • COSC-289 Multimedia Information Processing,
    • 2014 Fall
    • 2013 Fall
  • COSC-051 Computer Science I (C++ programming),
    • 2013 Spring
  • COSC-488 Information Retrieval,
    • 2012 Fall
  • COSC-688 Experimental Information Retrieval,
    • 2012 Spring
  • COSC-589 Web Search and Sense-making,
    • 2014 Spring
    • 2011 Fall