Machine Learning

Introduction to core machine learning models and algorithms for classification, regression, dimensionality reduction and clustering with a focus on real-world applications in a variety of computing contexts (desktop/cluster/cloud). Requires the use of Python.

Reasoning Under Uncertainty

Development of mathematical reasoning skills for problems that involve uncertainty. Counting and probability, probabilistic reasoning, Naive Bayes classifiers, Monte Carlo simulation, Markov chains, Markov decision processes, classical game theory, and introduction to information theory.

Computer Systems Principles

Large-scale software systems like Google - deployed over a world-wide network of hundreds of thousands of computers - have become a part of our lives. These are systems success stories - they are reliable, available ("up" nearly all the time), handle an unbelievable amount of load from users around the world, yet provide virtually instantaneous results.

Intro to Computer Graphics

This course introduces the fundamental concepts of two-dimensional (2D) and three-dimensional (3D) computer graphics. It covers the basic methods needed to model, render, and animate 3D objects. Topics include raster displays, line drawing, affine and perspective transformations, windows and viewpoints, clipping, visibility, illumination models, reflectance models, radiometry, curves and surfaces, shading, texture mapping, ray tracing, graphic toolkits, animation, and 3D printing.

Formal Language Theory

Introduction to formal language theory. Topics include finite state languages, context-free languages, the relationship between language classes and formal machine models, the Turing Machine model of computation, theories of computability, resource-bounded models, and NP-completeness. It is recommended that students have a B- or better in COMPSCI 311 in order to attempt COMPSCI 501.

Information Systems

Introduction to the efficient management of large-scale data. Principles for representing information in the relational model and semi-structured data models (XML, JSON); query languages for analyzing and manipulating data (SQL and others); core systems principles for data management (file organizations, query optimization, indexing, distributed data processing, concurrency control) and distributed data processing paradigms.
Subscribe to