

Our Courses

Algorithms for Searching, Sorting, and Indexing
This course covers basics of algorithm design and analysis, as well as algorithms for sorting arrays, data structures such as priority queues, hash functions, and applications such as Bloom filters. Algorithms for Searching, Sorting, and Indexing can be taken for academic credit as part of CU Boulder’s Master of Science in Data Science (MS-DS) degree offered on the Coursera platform. The MS-DS is an interdisciplinary degree that brings together faculty from CU Boulder’s departments of Applied Mathematics, Computer Science, Information Science, and others.
-
Course by
-
Self Paced
-
35 hours
-
English

The Structured Query Language (SQL)
In this course you will learn all about the Structured Query Language ("SQL".) We will review the origins of the language and its conceptual foundations. But primarily, we will focus on learning all the standard SQL commands, their syntax, and how to use these commands to conduct analysis of the data within a relational database.
-
Course by
-
Self Paced
-
55 hours
-
English

Measurement Systems Analysis
In this course, you will learn to analyze measurement systems for process stability and capability and why having a stable measurement process is imperative prior to performing any statistical analysis. You will analyze continuous measurement systems and statistically characterize both accuracy and precision using R software. You will perform measurement systems analysis for potential, short-term and long-term statistical control and capability.
-
Course by
-
17 hours
-
English

Statistical Inference and Hypothesis Testing in Data Science Applications
This course will focus on theory and implementation of hypothesis testing, especially as it relates to applications in data science. Students will learn to use hypothesis tests to make informed decisions from data. Special attention will be given to the general logic of hypothesis testing, error and error rates, power, simulation, and the correct computation and interpretation of p-values.
-
Course by
-
Self Paced
-
37 hours
-
English

Algorithms on Strings
World and internet is full of textual information. We search for information using textual queries, we read websites, books, e-mails. All those are strings from the point of view of computer science. To make sense of all that information and make search efficient, search engines use many string algorithms. Moreover, the emerging field of personalized medicine uses many search algorithms to find disease-causing mutations in the human genome. In this online course you will learn key pattern matching concepts: tries, suffix trees, suffix arrays and even the Burrows-Wheeler transform.
-
Course by
-
Self Paced
-
19 hours
-
English

Business Writing
Writing well is one of the most important skills you can develop to be successful in the business world. Over seventy companies and thirty thousand students--from professional writers to new employees to non-native English speakers to seasoned executives--have used the techniques in Business Writing to power their ability to communicate and launch their ideas.
-
Course by
-
Self Paced
-
13 hours
-
English

Mathematical Thinking in Computer Science
Mathematical thinking is crucial in all areas of computer science: algorithms, bioinformatics, computer graphics, data science, machine learning, etc. In this course, we will learn the most important tools used in discrete mathematics: induction, recursion, logic, invariants, examples, optimality. We will use these tools to answer typical programming questions like: How can we be certain a solution exists? Am I sure my program computes the optimal answer?
-
Course by
-
Self Paced
-
42 hours
-
English

Data Structures and Performance
How do Java programs deal with vast quantities of data? Many of the data structures and algorithms that work with introductory toy examples break when applications process real, large data sets. Efficiency is critical, but how do we achieve it, and how do we even measure it? This is an intermediate Java course. We recommend this course to learners who have previous experience in software development or a background in computer science, and in particular, we recommend that you have taken the first course in this specialization (which also requires some previous experience with Java).
-
Course by
-
Self Paced
-
42 hours
-
English

Business Intelligence Concepts, Tools, and Applications
This is the fourth course in the Data Warehouse for Business Intelligence specialization. Ideally, the courses should be taken in sequence. Effectively and efficiently mining data is the very center of any modern business’s competitive strategy, and a data warehouse is a core component of this data mining. The ability to quickly look back at early trends and have the accurate data – properly formatted – is essential to good decision making. By enabling this historical overview, a data warehouse allows decision makers to learn from past trends and challenges.
-
Course by
-
Self Paced
-
22 hours
-
English

Computer Science: Programming with a Purpose
The basis for education in the last millennium was “reading, writing, and arithmetic;” now it is reading, writing, and computing. Learning to program is an essential part of the education of every student, not just in the sciences and engineering, but in the arts, social sciences, and humanities, as well. Beyond direct applications, it is the first step in understanding the nature of computer science’s undeniable impact on the modern world.
-
Course by
-
Self Paced
-
88 hours
-
English

Machine Learning for All
Machine Learning, often called Artificial Intelligence or AI, is one of the most exciting areas of technology at the moment. We see daily news stories that herald new breakthroughs in facial recognition technology, self driving cars or computers that can have a conversation just like a real person. Machine Learning technology is set to revolutionise almost any area of human life and work, and so will affect all our lives, and so you are likely to want to find out more about it.
-
Course by
-
Self Paced
-
22 hours
-
English

Genomics: Decoding the Universal Language of Life
What is a genome? A genome contains all of the information that a cell needs to develop, function, and reproduce itself, and all the information needed for those cells to come together to form a person, plant, or animal. Genomes contain an organism’s complete set of genes, and also the even tinier genetic structures that help regulate when and how those genes are used. The ability to regrow a torn ligament, the clues that might predict the onset of mental illness, the nutritional potential of crops, and even the history of life itself, are all encoded in genomes.
-
Course by
-
Self Paced
-
37 hours
-
English

Introduction to Programming with MATLAB
This course teaches computer programming to those with little to no previous experience. It uses the programming system and language called MATLAB to do so because it is easy to learn, versatile and very useful for engineers and other professionals. MATLAB is a special-purpose language that is an excellent choice for writing moderate-size programs that solve problems involving the manipulation of numbers. The design of the language makes it possible to write a powerful program in a few lines.
-
Course by
-
Self Paced
-
35 hours
-
English

Solving Algorithms for Discrete Optimization
Discrete Optimization aims to make good decisions when we have many possibilities to choose from. Its applications are ubiquitous throughout our society. Its applications range from solving Sudoku puzzles to arranging seating in a wedding banquet. The same technology can schedule planes and their crews, coordinate the production of steel, and organize the transportation of iron ore from the mines to the ports. Good decisions on the use of scarce or expensive resources such as staffing and material resources also allow corporations to improve their profit by millions of dollars.
-
Course by
-
Self Paced
-
22 hours
-
English

Build a Modern Computer from First Principles: From Nand to Tetris (Project-Centered Course)
What you’ll achieve: In this project-centered course* you will build a modern computer system, from the ground up. We’ll divide this fascinating journey into six hands-on projects that will take you from constructing elementary logic gates all the way through creating a fully functioning general purpose computer.
-
Course by
-
Self Paced
-
44 hours
-
English

How Computers Work
Computers are everywhere, they aren't just the desktops and laptops we use for work but the phones in our pockets and even the watches on our wrists are also computers. You probably use a computer every day and in fact you are reading this on a computer! Just because we use computers all the time, doesn't mean that we understand them, or find them easy to use. Computer Science is the science of computers, it is the field of knowledge that experts use to understand computer systems. Knowing a little computer science will help you understand the computers all around you.
-
Course by
-
Self Paced
-
10 hours
-
English

Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course)
In this project-centered course you will build a modern software hierarchy, designed to enable the translation and execution of object-based, high-level languages on a bare-bone computer hardware platform. In particular, you will implement a virtual machine and a compiler for a simple, Java-like programming language, and you will develop a basic operating system that closes gaps between the high-level language and the underlying hardware platform. In the process, you will gain a deep, hands-on understanding of numerous topics in applied computer science, e.g.
-
Course by
-
Self Paced
-
90 hours
-
English

Teaching Computational Thinking
This course is for educators who are passionate about the future of their 7-12+ year old students and want to learn more about teaching computer science in an engaging and meaningful way.
-
Course by
-
Self Paced
-
15
-
English

Introduction to Computer Science and Programming Using Python
An introduction to computer science as a tool to solve real-world analytical problems using Python 3.5.
-
Course by
-
English

Introduction to Computer Science and Programming
The term “Computation” refers to the action performed by a computer. A computation can be a basic operation and it can also be a sophisticated computer simulation requiring a large amount of data and substantial resources. This course aims at introducing learners with no prior knowledge to the basic key concepts of computer science. By following the lectures and exercises of this course, you will gain an understanding of algorithms by programming using the language Ruby.
-
Course by
-
English

Teaching Coding in Grades 5-8 with Scratch Encore
This course introduces teachers and other educators to the basics of teaching programming with Scratch to students in grades 5-8 using Scratch Encore, a culturally responsive, intermediate computer science curriculum. Each week, participants are introduced to key computer science concepts (e.g., loops, synchronization), and then apply those concepts as they complete programming assignments in Scratch. Helpful pedagogical practices and teaching strategies are introduced throughout the course.
-
Course by
-
Self Paced
-
English

Impact of Technology: How To Lead Classroom Discussions
Learn how to keep 14-16 year-old students engaged in discussions while teaching computer science.
-
Course by
-
Self Paced
-
12
-
English

An Introduction to Computer Networking for Teachers
Build your knowledge and understanding of computer networks as a computer science teacher.
-
Course by
-
Self Paced
-
12
-
English

Computer Vision and Image Processing Fundamentals
Learn about computer vision, one of the most exciting fields in machine learning. artificial intelligence and computer science.
-
Course by
-
Self Paced
-
10
-
English

CS50's Computer Science for Business Professionals
This is CS50’s introduction to computer science for business professionals.
-
Course by
-
Self Paced
-
32
-
English