Programming w/Data Structures

Advanced programming techniques in the Java language focusing on abstract data types. Specific topics include linked structures, recursive structures and algorithms, tree-based structures, and hash tables. Elementary techniques of software engineering, including documentation, coding style, basic testing principles, and informal reasoning about correctness. Weekly programming assignments, discussion section exercises, and multiple exams.

ST-Intro to HTML/CSS

An academic approach to building websites with html and css. This course is aimed at beginning programmers and self-taught web developers who would like to cement their skills. Topics include structural html5, css, and introductory javascript/jquery (if time permits).

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.

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.

Computation Theory

An in-depth introduction to the main models and concepts of the mathematical theory of computation, including computability, complexity, and logic. Prerequisites: an undergraduate course in automata theory and formal languages such as CMPSCI 501 or permission of instructor.

Intro to Knowledge Discovery

Knowledge discovery is the process of discovering useful regularities in large and complex data sets. The field encompasses techniques from artificial intelligence (representation and search), statistics (inference), and databases (data storage and access). When integrated in to useful systems, these techniques can help human analysts make sense of vast stores of digital information.
Subscribe to