Every day around the world, billions of people listen to music of one sort or another, and millions listen to Western classical music. Why do we do it? Because it’s fun? Because it energizes or relaxes us? Because it keeps us current, allows us to understand what’s happening in past and popular culture? The pull of music–especially classical music—has never been explained. The aim of this course is to do just that: To explicate the mysteries and beauties of some of Western cultures greatest musical compositions—among them masterpieces of Bach, Mozart, Beethoven, Wagner, and Puccini.
In this course you will learn several fundamental principles of algorithm design. You'll learn the divide-and-conquer design paradigm, with applications to fast sorting, searching, and multiplication. You'll learn several blazingly fast primitives for computing on graphs, such as how to compute connectivity information and shortest paths. Finally, we'll study how allowing the computer to "flip coins" can lead to elegant and practical algorithms and data structures.
This course aims to teach everyone to learn the basics of programming computers using Python. The course has no pre-requisites and avoids all but the simplest mathematics. Anyone with moderate computer experience should be able to master the materials in this course.
This is a follow-on for the Coursera class Principles of Functional Programming in Scala, which so far had more than 100’000 inscriptions over two iterations of the course, with some of the highest completion rates of any massive open online course worldwide.
Sound has always been a significant part of human experience. It shapes and transforms our everyday world. Sounds and music are embedded in almost every aspect of daily life, from communication and artistic expression to commerce, politics, and our social and cultural identities.
This course introduces the cornerstones of functional programming using the Scala programming language. Functional programming has become more and more popular in recent years because it promotes code that’s safe, concise, and elegant. Furthermore, functional programming makes it easier to write parallel code for today’s and tomorrow’s multiprocessors by replacing mutable variables and loops with powerful ways to define and compose functions.