

Our Courses

Dynamic Programming: Applications In Machine Learning and Genomics
Learn how dynamic programming and Hidden Markov Models can be used to compare genetic strings and uncover evolution.
-
Course by
-
English

Advanced Topics in Derivative Pricing
This course discusses topics in derivative pricing. The first module is designed to understand the Black-Scholes model and utilize it to derive Greeks, which measures the sensitivity of option value to variables such as underlying asset price, volatility, and time to maturity. Greeks are important in risk management and hedging and often used to measure portfolio value change. Then we will analyze risk management of derivatives portfolios from two perspectives—Greeks approach and scenario analysis.
-
Course by
-
Self Paced
-
16 hours
-
English

Dynamic Programming, Greedy Algorithms
This course covers basic algorithm design techniques such as divide and conquer, dynamic programming, and greedy algorithms. It concludes with a brief introduction to intractability (NP-completeness) and using linear/integer programming solvers for solving optimization problems. We will also cover some advanced topics in data structures. This course can be taken for academic credit as part of CU Boulder’s MS in Data Science or MS in Computer Science degrees offered on the Coursera platform.
-
Course by
-
Self Paced
-
38 hours
-
English

Comparing Genes, Proteins, and Genomes (Bioinformatics III)
Once we have sequenced genomes in the previous course, we would like to compare them to determine how species have evolved and what makes them different. In the first half of the course, we will compare two short biological sequences, such as genes (i.e., short sequences of DNA) or proteins.
-
Course by
-
Self Paced
-
22 hours
-
English

Developing FPGA-accelerated cloud applications with SDAccel: Practice
This course is for anyone passionate about learning how to develop FPGA-accelerated applications with SDAccel! The more general purpose you are, the more flexible you are and the more kinds of programs and algorithms you can execute on your underlying computing infrastructure. All of this is terrific, but there is no free food and this is happening, quite often, by losing in efficiency. This course will present several scenarios where the workloads require more performance than can be obtained even by using the fastest CPUs.
-
Course by
-
Self Paced
-
13 hours
-
English

Julia Scientific Programming
This course introduces you to Julia as a first programming language. Julia is a high-level, high-performance dynamic programming language developed specifically for scientific computing. This language will be particularly useful for applications in physics, chemistry, astronomy, engineering, data science, bioinformatics, and many more.
-
Course by
-
Self Paced
-
19 hours
-
English

Decision Making and Reinforcement Learning
This course is an introduction to sequential decision making and reinforcement learning. We start with a discussion of utility theory to learn how preferences can be represented and modeled for decision making. We first model simple decision problems as multi-armed bandit problems in and discuss several approaches to evaluate feedback. We will then model decision problems as finite Markov decision processes (MDPs), and discuss their solutions via dynamic programming algorithms.
-
Course by
-
Self Paced
-
47 hours
-
English

Natural Language Processing with Probabilistic Models
In Course 2 of the Natural Language Processing Specialization, you will: a) Create a simple auto-correct algorithm using minimum edit distance and dynamic programming, b) Apply the Viterbi Algorithm for part-of-speech (POS) tagging, which is vital for computational linguistics, c) Write a better auto-complete algorithm using an N-gram language model, and d) Write your own Word2Vec model that uses a neural network to compute word embeddings using a continuous bag-of-words model. By the end of this Specialization, you will have designed NLP applications that perform question-answering and se
-
Course by
-
Self Paced
-
31 hours
-
English

Algorithmic Toolbox
This online course covers basic algorithmic techniques and ideas for computational problems arising frequently in practical applications: sorting and searching, divide and conquer, greedy algorithms, dynamic programming. We will learn a lot of theory: how to sort data and how it helps for searching; how to break a large problem into pieces and solve them recursively; when it makes sense to proceed greedily; how dynamic programming is used in genomic studies.
-
Course by
-
Self Paced
-
40 hours
-
English

Fundamentals of Reinforcement Learning
Reinforcement Learning is a subfield of Machine Learning, but is also a general purpose formalism for automated decision-making and AI. This course introduces you to statistical learning techniques where an agent explicitly takes actions and interacts with the world. Understanding the importance and challenges of learning agents that make decisions is of vital importance today, with more and more companies interested in interactive agents and intelligent decision-making. This course introduces you to the fundamentals of Reinforcement Learning.
-
Course by
-
Self Paced
-
15 hours
-
English

Sample-based Learning Methods
In this course, you will learn about several algorithms that can learn near optimal policies based on trial and error interaction with the environment---learning from the agent’s own experience. Learning from actual experience is striking because it requires no prior knowledge of the environment’s dynamics, yet can still attain optimal behavior. We will cover intuitively simple but powerful Monte Carlo methods, and temporal difference learning methods including Q-learning.
-
Course by
-
Self Paced
-
22 hours
-
English