# Upcoming Paid Online Courses (14)

How do you optimally encode a text file? How do you find shortest paths in a map? How do you design a communication network? How do you route data in a network? What are the limits of efficient computation?

This course, part of the Computer Science Essentials for Software Development Professional Certificate program, is an introduction to design and analysis of algorithms, and answers along the way these and many other interesting computational questions.

You will learn about algorithms that operate on common data structures, for instance sorting and searching; advanced design and analysis techniques such as dynamic programming and greedy algorithms; advanced graph algorithms such as minimum spanning trees and shortest paths; NP-completeness theory; and approximation algorithms.

After completing this course you will be able to design efficient and correct algorithms using sophisticated data structures for complex computational tasks.

Linear Algebra: Foundations to Frontiers (LAFF) is packed full of challenging, rewarding material that is essential for mathematicians, engineers, scientists, and anyone working with large datasets. Students appreciate our unique approach to teaching linear algebra because:

- It’s visual.
- It connects hand calculations, mathematical abstractions, and computer programming.
- It illustrates the development of mathematical theory.
- It’s applicable.

In this course, you will learn all the standard topics that are taught in typical undergraduate linear algebra courses all over the world, but using our unique method, you'll also get more! LAFF was developed following the syllabus of an introductory linear algebra course at The University of Texas at Austin taught by Professor Robert van de Geijn, an expert on high performance linear algebra libraries. Through short videos, exercises, visualizations, and programming assignments, you will study Vector and Matrix Operations, Linear Transformations, Solving Systems of Equations, Vector Spaces, Linear Least-Squares, and Eigenvalues and Eigenvectors. In addition, you will get a glimpse of cutting edge research on the development of linear algebra libraries, which are used throughout computational science.

MATLAB licenses will be made available to the participants free of charge for the duration of the course.

We invite you to LAFF with us!

Every day, computers and algorithms touch your life in both mundane and profound ways. They are in the plants and distribution systems that bring you electricity and clean water, sensors that moderate the flow of traffic, in the tractors and combines that sow and harvest your food, and in the satellites that measure and predict the weather.

If you are curious about what computers can do, and how we instruct them to do those things - this course is for you. No prior programming experience is needed. More than just exposure to programming, you’ll gain a powerful set of thinking and problem-solving skills that you can use in your daily life.

Start taking advantage of the computer power around us to make our world a better place.

This is a three-credit course at Arizona State University (CSE 110 Principles of Programming) and satisfies the Computer/Statistics/Quantitative (CS) general studies requirement.

The increased demand by consumers and businesses for more utility, connectivity and smarter and more efficient electronic technology not only creates a need for more embedded systems but also for engineers in the embedded systems field.

In this lab-based computer science course, explore the complexities of embedded systems and learn how to develop your own **real-time operating system** (RTOS) by building a personal fitness device with **Bluetooth connectivity** (BLE). An **operating system** (OS) is a software system that computers use to manage the resources of a computer. The OS decides which tasks are performed when and decides how resources are utilized. Simple embedded systems, which are a combination of electrical, mechanical, chemical, and computer components designed to perform a dedicated function, originally did not need an OS. However, as embedded systems have evolved, so have their complexities. To manage this, an RTOS **is now required**.

Embedded systems are often deployed in safety-critical situations such as automotive, military, industrial, and medical applications. In applications such as communications and consumer electronics, response time and processing speed are important. A real-time system not only needs to arrive at the correct answer, but must also get the correct answer at the correct time. A RTOS manages a computer's resources so that tasks are performed in a timely mannner.

In this computer science course, students will learn the design fundamentals of an **RTOS** from the bottom up and use these fundamentals to build practical real-time applications. We will provide a board support package (BSP), so students will be able to focus on the RTOS and Bluetooth network without needing prior experience in circuits and I/O device driver software. This is a **hands-on project-based lab course**, where you will incrementally build a personal fitness device with Bluetooth connectivity.

This course is intended for students and professional engineers wishing to improve their skills in the fields of embedded systems, product development, computer architecture, operating systems, and Bluetooth networks.

To complete this course, you will need to **purchase a lab kit** including a microcontroller board, an I/O board, and a Bluetooth module. Instructions about purchasing the kit and installing required software are at http://edx-org-utaustinx.s3.amazonaws.com/UT601x/RTOS.html .

Computational thinking is an invaluable skill that can be used across every industry, as it allows you to formulate a problem and express a solution in such a way that a computer can effectively carry it out.

In this course, part of the Big Data MicroMasters program, you will learn how to apply computational thinking in data science. You will learn core computational thinking concepts including decomposition, pattern recognition, abstraction, and algorithmic thinking.

You will also learn about data representation and analysis and the processes of cleaning, presenting, and visualizing data. You will develop skills in data-driven problem design and algorithms for big data.

The course will also explain mathematical representations, probabilistic and statistical models, dimension reduction and Bayesian models.

You will use tools such as R, MOA and data processing libraries in associated language environments.

What do self-driving cars, face recognition, web search, industrial robots, missile guidance, and tumor detection have in common?

They are all complex real world problems being solved with applications of intelligence (AI).

This course will provide a broad understanding of the basic techniques for building intelligent computer systems and an understanding of how AI is applied to problems.

You will learn about the history of AI, intelligent agents, state-space problem representations, uninformed and heuristic search, game playing, logical agents, and constraint satisfaction problems.

Hands on experience will be gained by building a basic search agent. Adversarial search will be explored through the creation of a game and an introduction to machine learning includes work on linear regression.

We will use the free and open tool, App Inventor for Android, to explore advanced topics in computer science.

You’ll build an app a week, exploring such advanced topics as gameplay over a network, encryption, and more.

At the end of the course, we’ll collectively decide on an app that we will build together. You will be able to build almost anything you can imagine!

Because computer science is not just about coding and building apps, we will also learn some of the fundamental principles of computer science. We'll explore the potential and the limitations of computing and coding. We'll learn how the Internet works and about the positive and negative aspects of computing in today's society.

For these broader computing concepts we will work within an emerging curricular framework -- the Computer Science Principles (CSP). The CSP framework is being developed by leading computer science educators from around the country under the auspices of the College Board and with funding support of the National Science Foundation.

In addition to programming and CSP, the course is project-based and emphasizes writing, communication, and creativity. Multiple-choice questions, in the style that students can expect to encounter on the AP exam, will also be a key component of this course.

Louv1.1x and computer-programming-louvainx-louv1-2x-0#!">Louv1.2x together give an introduction to all major programming concepts, techniques, and paradigms in a unified framework. We cover the three main programming paradigms: functional, object-oriented, and declarative dataflow.

The two courses are targeted toward people with a basic knowledge of programming. It will be most useful to beginning programming students, but the unconventional approach should be insightful even to seasoned professionals.

Louv1.1x covers fundamental concepts. You’ll learn functional programming, its techniques and its data structures. You’ll use simple formal semantics for all concepts, and see those concepts illustrated with practical code that runs on the accompanying open-source platform, the Mozart Programming System.

Louv1.2x covers data abstraction, state, and concurrency. You’ll learn the four ways to do data abstraction and discuss the trade-offs between objects and abstract data types. You’ll be exposed to deterministic dataflow, the most useful paradigm for concurrent programming, and learn how it avoids race conditions.

To learn more about the practical organization of the two courses, watch the introductory video.

Video games as a medium go back more than 50 years to mainframe computers. Even the central design of video games can be traced back to the first games themselves.

To be a good game designer, it’s essential to have an understanding of the video game design industry’s fascinating history.

We’ve partnered with The Strong National Museum of Play to give you a unique look into the history of all things video game. The International Center for the History of Electronic Games at The Strong is the largest and most comprehensive public assemblage of video games and related materials in the world. The staff are celebrated experts in the field and the ICHEG is visited by scholars of video games from around the world. You’ll gain amazing insight into the history of video games with a guided exploration of key artifacts from the collection of more than 100,000 electronic games and materials.

How long should the handle of your spoon be so that your fingers do not burn while mixing chocolate fondue? Can you find a shape that has finite volume, but infinite surface area? How does the weight of the rider change the trajectory of a zip line ride? These and many other questions can be answered by harnessing the power of the integral.

But what is an integral? You will learn to interpret it geometrically as an area under a graph, and discover its connection to the derivative. You will encounter functions that you cannot integrate without a computer and develop a big bag of tricks to attack the functions that you can integrate by hand. The integral is vital in engineering design, scientific analysis, probability and statistics. You will use integrals to find centers of mass, the stress on a beam during construction, the power exerted by a motor, and the distance traveled by a rocket.

1. Modeling the Integral

- Differentials and Antiderivatives
- Differential Equations
- Separation of Variables

2. Theory of Integration

- Mean Value Theorem
- Definition of the Integral and the First Fundamental Theorem
- Second Fundamental Theorem

3. Applications

- Areas and Volumes
- Average Value and Probability
- Arc Length and Surface Area

4. Techniques of Integration

- Numerical Integration
- Trigonometric Powers, Trig Substitutions, Completing the Square
- Partial Fractions, Integration by Parts

This course, in combination with Part 1, covers the AP* Calculus AB curriculum.

This course, in combination with Parts 1 and 3, covers the AP* Calculus BC curriculum.

This course was funded in part by the Wertheimer Fund.

Learn more about our High School and AP* Exam Preparation Courses

Calculus 1C: Coordinate Systems & Infinite Series

**Advanced Placement and AP are registered trademarks of the College Board, which was not involved in the production of, and does not endorse, these offerings.*

Louv1.2x and its predecessor computer-2751#.VBBX97xdUnQ">Louv1.1x together give an introduction to all major programming concepts, techniques, and paradigms in a unified framework. We cover the three main programming paradigms: functional, object-oriented, and declarative dataflow.

The two courses are targeted toward people with a basic knowledge of programming. It will be most useful to beginning programming students, but the unconventional approach should be insightful even to seasoned professionals.

Louv1.1x (Fundamentals) covers functional programming, its techniques and its data structures. You’ll use simple formal semantics for all concepts, and see those concepts illustrated with practical code that runs on the accompanying open-source platform, the Mozart Programming System.

Louv1.2x (Abstraction and Concurrency) covers data abstraction, state, and concurrency. You’ll learn the four ways to do data abstraction and discuss the trade-offs between objects and abstract data types. You’ll be exposed to deterministic dataflow, the most useful paradigm for concurrent programming, and learn how it avoids race conditions.

To learn more about the practical organization of the two courses, watch the introductory video.

This course is about modeling and how computer models can support managerial decision making. A model is a simplified representation of a real situation and modeling is the process of developing, analyzing and interpreting a model in order to help make better decisions. Models can be invaluable tools in managing and understanding the complexity and risk inherent in many business problems. As a result, models have become an increasingly important part of business at all levels from daily operations to strategic decision making.

This course will help learners become intelligent users and consumers of these models. To this end, we will cover the basic elements of modeling – how to formulate a model and how to use and interpret the information a model produces. The course emphasizes “learning by doing” so that students will be expected to formulate, solve, and interpret a number of different optimization and simulation models using Excel spreadsheets. An important theme in the course is to understand the appropriate use of models in business and the potential pitfalls from using models incorrectly or inappropriately.

The course has two distinct parts:

- The first half of the course we will cover supervised learning techniques for regression and classification. In this framework, we possess an output or response that we wish to predict based on a set of inputs. We will discuss several fundamental methods for performing this task and algorithms for their optimization. Our approach will be more practically motivated, meaning we will fully develop a mathematical understanding of the respective algorithms, but we will only briefly touch on abstract learning theory.
- In the second half, we shift to unsupervised learning techniques. In these problems the end goal less clear-cut than predicting an output based on a corresponding input. We will cover three fundamental problems of unsupervised learning: data clustering, matrix factorization, and sequential models for order-dependent data. Some applications of these models include object recommendation and topic modeling.

How did Newton describe the orbits of the planets? To do this, he created calculus. But he used a different coordinate system more appropriate for planetary motion. We will learn to shift our perspective to do calculus with parameterized curves and polar coordinates. And then we will dive deep into exploring the infinite to gain a deeper understanding and powerful descriptions of functions.

How does a computer make accurate computations? Absolute precision does not exist in the real world, and computers cannot handle infinitesimals or infinity. Fortunately, just as we approximate numbers using the decimal system, we can approximate functions using series of much simpler functions. These approximations provide a powerful framework for scientific computing and still give highly accurate results. They allow us to solve all sorts of engineering problems based on models of our world represented in the language of calculus.

- Changing Perspectives
- Parametric Equations
- Polar Coordinates

- Series and Polynomial Approximations
- Series and Convergence
- Taylor Series and Power Series

This course, in combination with Parts 1 and 2, covers the AP* Calculus BC curriculum.

Learn more about our High School and AP* Exam Preparation Courses

This course was funded in part by the Wertheimer Fund.

**Advanced Placement and AP are registered trademarks of the College Board, which was not involved in the production of, and does not endorse, these offerings.*

In data science, data is called “big” if it cannot fit into the memory of a single standard laptop or workstation.

The analysis of big datasets requires using a cluster of tens, hundreds or thousands of computers. Effectively using such clusters requires the use of distributed files systems, such as the Hadoop Distributed File System (HDFS) and corresponding computational models, such as Hadoop, MapReduce and Spark.

In this course, part of the Data Science MicroMasters program, you will learn what the bottlenecks are in massive parallel computation and how to use spark to minimize these bottlenecks.

You will learn how to perform supervised an unsupervised machine learning on massive datasets using the Machine Learning Library (MLlib).

In this course, as in the other ones in this MicroMasters program, you will gain hands-on experience using PySpark within the Jupyter notebooks environment.